As I mentioned in a previous slide, earlier software development techniques often began with the assumption that you had a complete formal specification. But this assumption denies human nature. Clients seldom have a complete and through description of what they want, instead they have a vague idea or a concept. Thus, specifications as they occur in reality are imprecise, ambiguous, and unclear.
Rather than attempting to change human nature -- that is, to make all clients describe their ideas only in terms of a formal specification language, let us instead take specifications as they commonly occur, and turn a necessity into a virtue by using the evolution of the more complete understanding of the specification into a chance to design the corresponding software system.