«工欲善其事, 必先利其器» 《論語.魏靈公》

 « Чтобы хорошо выполнять работу, ремесленнику нужны лучшие инструменты » Конфуцианские аналекты 

Программный подход — это практика использования выбранных методов процесса для повышения качества усилий по разработке программного обеспечения, что приводит к уменьшению количества дефектов и, следовательно, в конечном итоге обеспечивает более короткие сроки поставки и большую ценность. Часто утверждается, что один программный подход лучше, чем любой другой, и это всегда является предметом бесконечных дебатов Я должен сказать, что не существует одного лучшего подхода к разработке, разные методы лучше всего подходят для разных контекстов проекта. Что лучше, зависит от того, для кого предназначен метод, при каких обстоятельствах, для какой цели и т. д.; сказать, что ни один метод не является лучшим для разработчиков программного обеспечения, означает также сказать, что разные методы лучше всего подходят для разных команд или для разного характера проектов.

Грэди Буч говорит об этом:

«Если вы хотите построить собачью будку, вы можете начать с кучи пиломатериалов, нескольких гвоздей и нескольких основных инструментов, таких как молоток, пила и рулетка. Через несколько часов вы, скорее всего, получите достаточно функциональную собачью будку… Если вы хотите построить высотное офисное здание, вам нужно будет тщательно спланировать… Вы будете просто частью гораздо большей группы. отвечает за разработку и развертывание здания, поэтому команде потребуются всевозможные чертежи и модели, чтобы общаться друг с другом…».

Вы бы использовали тот же подход для небольшого веб-приложения и космического зонда НАСА? Скорее всего нет. Применили бы вы тот же подход к команде из шести человек, что и к команде из шестидесяти человек? Еще раз, скорее всего, нет. Очевидно, что разные ситуации требуют разных подходов, как отмечает Скотт Амбер. Не существует универсального решения для разработки программного обеспечения, на самом деле дизайнеры должны иметь в своем распоряжении широкий набор инструментов, понимать плюсы и минусы каждого из них и быть в состоянии быстро выбрать наиболее подходящие инструменты для своей задачи. применение в желаемом рабочем процессе для данного контекста .