“In preparing for battle I have always found that plans are useless, but planning is indispensable.”[1] is an apparently paradoxical statement made by Dwight D. Eisenhower[2], ex-president of the U.S.A. He liked it so much that he quoted a similar expression again in a speech in November 1957, “Plans are worthless, but planning is everything[3]”. However, to make things clearer, he went on, “in an emergency, the first thing to do is to take all the plans off the top shelf and throw them out the window, but if you haven’t been planning you can’t start to work, intelligently at least[4]”. Here the very definition of an “emergency” is that it is unexpected, therefore it is not going to happen the way we are planning. The details of plans which were designed in advance are often out-of-date or even incorrect, which you should not be tied to while knowledge gained during the planning process is crucial to the selection of appropriate actions (or decision-making).
Big Design Up Front (BDUF)[5] is a software development approach in which the program’s design is to be completed and perfected before that program’s implementation is started. Proponents of BDUF argue that, a requirements bug in the requirements phase can be fixed at a fraction of the cost of that same bug in the implementation phase. I agree with them. Thorough exploration of options and contingencies should be done before we begin. Fixing bugs in the implementation phase may scrap some design work which has already been completed. However, my question is what if the requirements change in the implementation phase, so that what was right in the requirement phase is not right any more in the implementation phase? It is not a scenario existing only in assumption, and we could always come across it in daily work. Under such conditions, there are two alternative approaches. First, advocates of Sufficient Design are suggesting to make high-quality design for stuff that is critical to our products and less design quality for stuff that isn’t critical. Second, proponents of Scrum are insisting that on a Scrum project, intentional design should be done incrementally.
Anyway, in my opinion, plans are crucial to success which cannot be thrown out. But flexibility should be applied to approaches with poor adaptability to changing requirements such as DBUF.
[1] https://www.brainyquote.com/quotes/dwight_d_eisenhower_164720
[2] https://en.wikipedia.org/wiki/Dwight_D._Eisenhower
[3] https://medium.com/@dlog/plans-are-worthless-but-planning-is-everything-94cb82c889ab
[4] https://books.google.co.jp/books?id=4r-pXgNiVCQC&pg=PA7&lpg=PA7&dq=in%C2%A0an%C2%A0emergency,%C2%A0the%C2%A0first%C2%A0thing%C2%A0to%C2%A0do%C2%A0is%C2%A0to%C2%A0take%C2%A0all%C2%A0the%C2%A0plans%C2%A0off%C2%A0the%C2%A0top&source=bl&ots=EfcePeDznV&sig=ACfU3U337BSU8IHh9_mvJF0M9lJSUzDonA&hl=en&sa=X&ved=2ahUKEwjplc2t5PzhAhVHQN4KHTA9BR0Q6AEwAHoECAkQAQ#v=onepage&q=in%C2%A0an%C2%A0emergency%2C%C2%A0the%C2%A0first%C2%A0thing%C2%A0to%C2%A0do%C2%A0is%C2%A0to%C2%A0take%C2%A0all%C2%A0the%C2%A0plans%C2%A0off%C2%A0the%C2%A0top&f=false
[5] https://en.wikipedia.org/wiki/Big_Design_Up_Front
网友评论