Chapter 3: Measure Twice, Cut Once: Upstream Prerequisites

As with building construction, much of the success or failure of the project has already been determined before construction begins. If the foundation hasn’t been laid well or the planning is inadequate, the best you can do during construction is to keep damage to a minimum.

The carpenter’s saying, “Measure twice, cut once” is highly relevant to the construction part of software development, which can account for as much as 65 percent of the total project costs.

Importance of Prerequisites

Testing can’t detect a flaw such as building the wrong product or building the right product in the wrong way. Such flaws must be worked out earlier than in testing—before construction begins.

By far the most common project risks in software devel- opment are poor requirements and poor project planning

Causes of Incomplete Preparation

If the work isn’t being done well in the first place, doing more of it will not be useful!

Utterly Compelling and Foolproof Argument for Doing Prerequisites Before Construction

you know that before you implement a system, you need to understand what the system is supposed to do and how it’s supposed to do it.

Sometimes users aren’t entirely sure what they want at first, so it might take more effort than seems ideal to find out what they really want. But that’s cheaper than building the wrong thing, throwing it away, and starting over.

you don’t put your shoes on before your socks. You have to do things in the right order in software, too.

Programmers are at the end of the software food chain. The architect consumes the requirements; the designer consumes the architecture; and the coder consumes the design.

In programming, if you have healthy food at each stage in the food chain, the result is healthy code written by happy programmers.