If You Have Time to Do It Twice

There’s a saying that I’m fond of quoting:

If you have time to do it twice, you had time to do it right the first time.

That is, any time spent correcting the work done the first time around could have been spent during the first iteration to do it correctly in the first place. Until recently, I couldn’t really think of an exception to this rule, though I was sure that an exception did exist.

Then I came across a scenario where perhaps this doesn’t hold true.

A project with a fixed time line might actually have enough time to do some work twice, but not correctly the first time. That is, because each stage of the project has a fixed time frame, it might not be possible to get everything done within its set window. As a result, components that don’t work properly are moved to the next stage, and are then corrected later on in the project.

This might be most familiar to people comfortable working in an Agile environment. At any iteration, the errors from previous iterations are resolved (doing some work a second time) and new pieces are added that could not have been worked on had the previous iteration not finished.

That is, dependencies might exist in the project which allow for errors to move forward and be fixed at a later time, for the simple reason that other people cannot wait for all the corrections to be made.

As an example, take the construction of a chair. In the first iteration, the carpenter might build the frame. There may be some flaws in the frame, but its size is correct. The upholsterer can now cut the fabric needed while the carpenter goes back and sands down the imperfections.

In a perfect world, the upholsterer would wait for the carpenter to finish before starting to cut. But in the real world, a customer might be waiting, and the delivery date might be fixed. As a result, the two workers do their jobs side-by-side, even though one depends on the other to complete their work properly. But at least they can start working once a tentative version is complete, even if it will end up being done twice.