
10.10.2013
Автор: Виктор Рудь
Что есть проектирование? Проектирование — это первый этап в создании чего-то нового. Первый? — ну, нет. Второй. Нулевой этап — это попытка сформулировать цели (задачи, идею) создания чего-то нового. И формулировка цели, и само проектирование — серьезные интеллектуальные задачи. Как правило, это задачи без четкого алгоритма решения. А если алгоритм и существует, то он направлен на поиск решения в пространстве вариантов этого решения. И это пространство можно считать бесконечным или более точно — неисследуемым в рамках всегда имеющихся ограничений бюджета и времени.
Предполагается, что ПРОЕКТ — это образ будущего материального объекта (или программного продукта). Проект будет полезным, если условия, в которых он создавался, будут неизменными в ходе последующего дизайна/разработки конечного продукта согласно данным в проекте. Но что делать в том случае, когда мир, обстановка, ситуация перестали быть стабильными даже на протяжении одного месяца? В таком случае ПРОЕКТ нуждается в изменениях. В постоянных уточнениях и корректировках. И эти уточнения/корректировки должны тут же учитываться в производственном цикле, где уже началось создание продукта. И чем чаще происходят такие изменения, в том числе из за новых бюджетных или временных ограничений, тем больше обесценивается фаза ПРОЕКТИРОВАНИЯ.
Мир разработки программного обеспечения ответил на это методиками экстремального программирования, суть которых лежит в итеративной разработке и максимальном сближении проектирования и программирования. Идея экстремальных методов программирования (agile методик) заключается в исключении формальных спецификаций и замене их пользовательскими историями (user story), описывающими главные идеи/фичи того или иного экрана/функции системы. Это дает следующие возможности:
Пользование системой на ранних стадиях ее существования сужает пространство проектных решений в сторону вариантов с максимальной полезностью в самой краткосрочной перспективе. Но самое важное, «реализация создает пространство, в котором должен быть выполнен еще один цикл проектирования» — цитата Фредерика Брукса, послужившая поводом для написания данной заметки.