One of the essays from the famous
MythicalManMonth.
The idea of the plan is that you'll throw one away anyway, so you may as well plan to do so.
So, in a given time frame, plan to achieve something worthwhile in half the time, throw it away, then rebuild what has to be a better version, given the advantages of hindsight.
The corollary to this is that if you plan to throw one away, you will end up throwing away two.
This is and has been an impractical suggestion. Plan to build something as quickly as possible and modify it as needed in the future.
Note: Brooks recants this in the latest version of
MythicalManMonth, where he says something to the effect of, "When I wrote that, I wasn't thinking in terms of a Spiral model. In a
SpiralModel, you're constantly writing and throwing away and rewriting, so the need to throw the whole code away is eliminated."
(Todo: Get the actual quote)
Brooks also acknowledges that if
PlanToThrowOneAway and the
SecondSystemEffect are taken to their logical conclusions in the same project, the first version of a system that you don't throw away will be a SecondSystem
?.
Brooks advises that in order to avoid this problem, one must not read his essays so literally.