- Big Design Up Front
Big Design Up Front (BDUF) is the methodology in
software development that a program's design should be completed and perfected before that program's implementation is started. It is often associated with thewaterfall model of software development.The argument between the proponents and critics of BDUF has somewhat degenerated into a "
holy war ", with most people believing that a compromise between BDUF and the more extreme variants ofagile software development is the best solution to most software development problems.Arguments for Big Design Up Front
Proponents of BDUF argue that time spent in planning is a worthwhile investment, and reference numerous studies which have concluded that less time and effort is spent fixing a bug in the early stages of a software products lifecycle than when that same bug is found and must be fixed later. That is, it is much easier to fix a requirements bug in the requirements phase than to fix that same bug in the implementation phase, as to fix a requirements bug in the implementation phase requires scrapping at least some implementation and design work which has already been completed.
Joel Spolsky , a popular online commentator on software development, has argued strongly in favor of Big Design Up Front: [cite web
author =Joel Spolsky
date =2005-08-17
url = http://www.joelonsoftware.com/articles/AardvarkSpec.html
title = The Project Aardvark Spec
work = Joel on Software
accessdate = 2006-04-26]"Many times, thinking things out in advance saved us serious development headaches later on. ... [on making a particular specification change] ... Making this change in the spec took an hour or two. If we had made this change in code, it would have added weeks to the schedule. I can’t tell you how strongly I believe in Big Design Up Front, which the proponents of Extreme Programming consider anathema. I have consistently saved time and made better products by using BDUF and I’m proud to use it, no matter what the XP fanatics claim. They’re just wrong on this point and I can’t be any clearer than that."
However, some argue that what Joel calls Big Design Up Front doesn't resemble the BDUF criticized by advocates of XP and other agile software development methodologies ["A 20 page spec for a 3 month project is a great thing! But it's not BDUF, it's SDUF" Rich Rogers [http://discuss.joelonsoftware.com/default.asp?joel.3.186204.9#discussTopic186230] ] ["Unfortunately, looking at his spec., it seems to bear little relation to the type of BDUF that XP and other agile programmers inveigh against." Curt Sampson [http://discuss.joelonsoftware.com/default.asp?joel.3.187269.14#discussTopic187335] ] .
Arguments against Big Design Up Front
Critics (notably those from an
agile software development background) argue that BDUF is poorly adaptable to changing requirements, that its proponents are "dinosaurs" clinging to an outdated and invalidated methodology, and that BDUF assumes that designers are able to foresee problem areas without extensive prototyping and at least some investment into implementation.ee also
*
List of software development philosophies
*Waterfall model
*Agile software development References
Wikimedia Foundation. 2010.