A critical part of software development and project management is ensuring that you agree with your client on the requirements and the scope of the project. Since everything in the software lifecycle is driven from requirements, all tasks following the requirements gathering will be flawed if the requirements are not correct. A technique for improving the requirements gathering process is prototyping, where your team works with the client to collect requirements. Normally, this is done during Joint Application Development (JAD) sessions. Steve Miller's article will help you and your technical team implement the practice of prototyping.
Best Practices for Software Projects: Prototyping