I read a lot that doing all specifications completely at the beginning of a project is not a good idea. However, is there no situation left where you should do this?
This concept is known as the "Big Design Upfront" (BDU). The reason why many people are against BDU is that the specifications are used as a feedback mechanism with the users to see if you understood correctly what the users meant. By doing this in multiple loops, you can refine this, as most likely you will not have it correct the first time.
However, the alternatives to BDU (iterative, close user involvement, etc.) have their risks:
- Miscommunication when there is a distance in team members in time or geographic location
- More vulnerability to changes in project team members
- Shorter planning horizon, so more difficulty in planning/estimating costs for the whole (not every customer can handle this)
- Risk of requirements inflation (end user communicates directly with developer)
So, yes, there are situations were you can still consider it an option.
Dig Deeper on Topics Archive