In the traditional waterfall model of software development, the first phase of requirements analysis is also the most important one. This article discusses some of the more common problems that analyst experience during Lyfe Cycle of a project.
Problem 1: Customers don’t (really) know what they want:
Possibly the most common problem in the requirements analysis phase is that customers have only a vague idea of what they need.
To solve this problem, you should:
- Ensure that you spend sufficient time at the start of the project on understanding the objectives, deliverables and scope of the project.
- Make visible any assumptions that the customer is using, and critically evaluate both the likely end-user benefits and risks of the project.
Problem 2: Requirements change during the course of the project:
The second most common problem with software projects is that the requirements defined in the first phase change as the project progresses. This may occur because as development progresses and prototypes are developed, customers are able to more clearly see problems with the original plan and make necessary course corrections; it may also occur because changes in the external environment require reshaping of the original business problem and hence necessitates a different solution than the one originally proposed.
To solve this problem, you should:
- Have a clearly defined process for receiving, analyzing and incorporating change requests, and make your customer aware of his/her entry point into this process.
- Ensure that change requests (and approvals) are clearly communicated to all stakeholders, together with their rationale, and that the master project plan is updated accordingly.
Problem 3: Customers have unreasonable timelines:
It’s quite common to hear a customer say something like “it’s an emergency job and we need this project completed in X weeks”. A common mistake is to agree to such timelines before actually performing a detailed analysis and understanding both of the scope of the project and the resources necessary to execute it.
To solve this problem, you should:
- Convert the software requirements specification into a project plan, detailing tasks and resources needed at each stage and modeling best-case, middle-case and worst-case scenarios.
- Ensure that the project plan takes account of available resource constraints and keeps sufficient time for testing and quality inspection.
Problem 4: Communication gaps exist between customers, engineers and project managers
Often, customers and engineers fail to communicate clearly with each other because they come from different worlds and do not understand technical terms in the same way.
To solve this problem, you should:
- Take notes at every meeting and disseminate these throughout the project team.
- Be consistent in your use of words. Make yourself a glossary of the terms that you’re going to use right at the start, ensure all stakeholders have a copy, and stick to them consistently.
Written by 
Agile can solve some of those issues