Absolute Rule #2: People Don’t Really Know What They Want Until They Have It

“ And God saw every thing that he had made, and, behold, it was very good. And the evening and the morning were the sixth day.” – Genesis, The King James Bible

Te classic scenario: customer specifies software, developers write to specification, customer claims software is unusable, big explosive mess ensues.

The fundamental difficulty here is that customers don’t know what they need until they have it. If we accept their preliminary specification at face value, and run a full-blown project to meet these specifications, we will build unusable software.

While this is painful, it is manageable – and it must be managed, or else we court disaster. It certainly does not mean that we should ignore the customer! Rather, it means that we need to guide the development process to accommodate the customer. We must use a process that: