Directed Evolution

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.

[audio] 6 [real] 6 Text to accompany slide 6, in Chapter 2 of An Introduction to Object-Oriented Programming