The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, and to other software systems. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later.
Therefore, the most important function that the software builder performs for the client is the iterative extraction and refinement of the product requirements. For the truth is, the client does not know what he wants. The client usually does not know what questions must be answered, and he has almost never thought of the problem up the detail necessary for specification. Even the simple answer–”Make the new software system work like our old manual information-processing system” –is in far too simple. One never wants exactly that.
(Link: No Silver Bullet – Requirements refinement and rapid prototyping.)


March 18, 2010

No comments yet... Be the first to leave a reply!