Кертис Цзан 4 августа 2016 0 комментариев
“Чтобы хорошо выполнить работу, ремесленник должен обладать лучшими инструментами” 《Конфуцианские афоризмы》
Подход к разработке программного обеспечения — это практика использования отобранных методов процесса для повышения качества разработки программного обеспечения, что приводит к меньшему количеству ошибок и, в конечном итоге, обеспечивает более короткие сроки доставки и большую ценность. Часто утверждают, что один подход к разработке программного обеспечения лучше других, но это всегда вызывает бесконечные споры. Я должен сказать, что нет единого лучшего подхода к разработке, разные методы лучше подходят для разных контекстов проектов.Что лучше, зависит от того, для кого предназначен метод, в каких обстоятельствах, с какой целью и так далее; утверждение, что ни один метод не является лучшим для разработчиков программного обеспечения, означает, что разные методы лучше подходят для разных команд или для разных типов проектов.
Грейди Буч говорит об этом:
«Если вы хотите построить будку для собаки, вы можете начать с кучи досок, гвоздей и нескольких простых инструментов, таких как молоток, пила и рулетка. За несколько часов вы, скорее всего, получите будку, которая будет достаточно функциональной… Если вы хотите построить многоэтажное офисное здание, вам нужно будет провести обширное планирование… Вы будете всего лишь частью гораздо более крупной группы, ответственной за разработку и внедрение здания, и поэтому команде понадобится множество чертежей и моделей для взаимодействия между собой…»
Вы будете использовать один и тот же подход для небольшого веб-приложения и космического аппарата НАСА? Скорее всего, нет. Вы будете использовать один и тот же подход для команды из шести человек, как и для команды из шестидесяти человек? Опять же, скорее всего, нет. Разные ситуации, очевидно, требуют разных подходов, как отмечено Скоттом Эмбером. Нетуниверсального решениярешения для разработки программного обеспечения, на самом деле,дизайнеры должны иметь широкий выбор инструментов, понимать плюсы и минусы каждого, и уметь быстро принимать решение о наиболее подходящих инструментах для применения в желаемом рабочем процессе в конкретном контексте.