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.
Brooks recants this in the latest version of MythicalManMonth
, where he says "This I now perceived to be wrong, not because it is too radical, but because it is too simplistic. The biggest mistake in the 'Build one to throw away' concept is that it implicitly assumes the classical sequential or waterfall model of software construction." -- The Mythical Man-Month, 20th Anniversary Edition, pg. 265 ISBN 0201835959
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.