Just as there is no one right programming language for every application, there is no one right way to develop the more detailed specifications. Different environments call for different techniques, and the requirements managers and requirements writers will probably need to develop a mix of skills suited to various circumstances.
Software Development Process
The team’s development process defines who is doing what, when, and how.
In the waterfall model, software activities proceed through a sequence of steps, with each step based on the activities of the previous step.
The spiral model begins with a series of risk-driven prototypes, followed by a structured waterfall-like process.
The iterative approach, a hybrid of the waterfall and spiral models, decouples the lifecycle phases from the software activities that take place in each phase.
No matter what model you use, you must develop at least one early prototype to get customer feedback.
Why can we not allow for a process that creates detailed requirements and design information for each feature so that we can create more meaningful estimates?
Some people may think that the best way to estimate a project is to have detailed requirements and design information for each feature. They may argue that this is the most professional and accurate way to approach the problem. However, I disagree with this view. I think that it is more important to be able to make quick decisions about the scope of the project without spending too much time and resources on detailed estimates. Why? Because detailed estimates often turn out to be wrong or irrelevant later on, and they create “wasted inventory” that could have been used for more valuable activities. I’d suggest you only do detailed estimates when the schedule allows for it, and when you have a clear understanding of the value and priority of each feature.