Although it may seem wasteful to spend so much time on the specification, this phase is probably more important than design in software development! If handled incorrectly, the specification can become the bottleneck of the development. A flexible interface has the advantage of simplifying the experimentation. If prototypes can be refined without changing the interface, the iterations are significantly reduced. As well as practical benefits, there are also design advantages:
These benefits very often outweigh the difficulty of establishing the specification such as taking into account restrictions, comparing options, making compromises. |