Введение

Подход к разработке программного обеспечения, при котором проектирование доводится до совершенства до начала реализации.

Большой объем проектирования на старте (BDUF) — это подход к разработке программного обеспечения, при котором проектирование программы должно быть завершено и доведено до совершенства до начала её реализации. Он часто ассоциируется с каскадной моделью разработки программного обеспечения. Синонимами большого объема проектирования на старте (BDUF) являются большой объем моделирования на старте (BMUF) и большой объем определения требований на старте (BRUF). В гибкой разработке программного обеспечения они рассматриваются как антипаттерны.

Аргументы против

Критики (особенно те, кто практикует гибкую разработку программного обеспечения) утверждают, что BDUF плохо приспосабливается к меняющимся требованиям и что BDUF исходит из предположения, будто проектировщики способны предвидеть проблемные области без масштабного прототипирования и хотя бы некоторых инвестиций в реализацию. Для значительных проектов требования пользователей нуждаются в уточнении по мере получения первых результатов, а потребности бизнеса развиваются быстрее, чем завершаются крупные проекты, что делает Большой Дизайн устаревшим к моменту завершения системы. Они также утверждают, что необходимо находить баланс между временем, затраченным на планирование, и стоимостью исправления дефекта. Это иногда называют параличом анализа. Если затраты на планирование превышают стоимость исправления, то время, потраченное на планирование, расходуется впустую. Непрерывная поставка, автоматические обновления и связанные с ними концепции стремятся существенно снизить стоимость дефектов в рабочей среде, чтобы их исправление во время работы системы обходилось дешевле, чем планирование в начале. В реальности, исправления во время работы системы значительно дороже, чем исправления на этапе проектирования, поэтому крайне важно использовать гибкие методологии, такие как частые демонстрации и обратная связь от пользователей в процессе разработки, для устранения проблем в цикле разработки. Совершенствование программного обеспечения на основе отзывов пользователей, как правило, обходится дешевле, чем попытки предвидеть и задокументировать каждый аспект системы с помощью BDUF. Кроме того, в большинстве проектов наблюдается существенный недостаток полных письменных (или даже чётко сформулированных) требований. Поэтому в BDUF делается множество предположений, которые впоследствии оказываются неверными, но на их основе ведётся проектирование и, возможно, даже написание кода.