2 июл. 2008 г.

Стратегия максимальной детализации дизайна

Недавно получил ценнейший комментарий от Vernor к посту «Том Демарко. Deadline. Роман об управлении проектами». Среди прочих полезных замечаний (см. коммент), Юра поднял одну животрепещущую тему. Её-то и планирую обсудить в этом посте:

Слава, хочу узнать у тебя — как ты относишься к тезису «Код — в последнюю очередь»? Оправдана ли стратегия максимальной детализации дизайна? Cейчас работаю над проектом, где лидер выделил порядка 60% времени на дизайн, а остальные 40% — код, отладка, инспекции, тестирование. И многие разработчики пищат от нехватки времени на написание кода.

Перво-наперво хотелось бы отметить некорректную постановку задачи. Почему от стремления к максимальной детализации дизайна страдает время на создание кода, отладку и т.п.?

Я понимаю так. Руководитель проекта (РП) готовит общее описание проекта, согласовывает детали, разрабатывает совместно с заказчиком ТЗ (0). Уже это ТЗ содержит достаточно деталей для того, чтобы оценить трудозатраты на (1) детализацию дизайна и (2) последующие работы. Если первый этап затягивается — это говорит о том, что этап (0) был недостаточно хорошо проработан.

Детализация дизайна — это такая же работа, как и кодинг. К этой работе применимы те же критерии оценки — сложность, ориентировочные сроки, стоимость. Если сроки не выдерживаются — где-то прокол. Либо план нереальный, либо исполнитель — оболтус. :-)

Теперь что касается отношения к максимально подробному описанию дизайна.

Я за то, чтобы описание было максимально подробным, но до определённой степени. Я считаю, что профессионалы, которым приходится исполнять (проектировать, кодировать) задумку «бизнеса» достойны того, чтобы им предоставлять определённую свободу, полагаться на их высокий профессионализм.

Поэтому предельный уровень детализации мне видится как описание требований, общей архитектуры приложения, а также интерфейсов (методики, протоколов) взаимодействия с другими приложениями системы. Остальное должны решать профессионалы, которые с нами работают. Уж точно они сделают это лучше РП и всяких там архитекторов.

Ясно, что идеальных условий не бывает. В жизни приходится делать проекты как вовсе без детализации (стыд-позор, но это факт), по натитию, так и с определённой степенью проработки. Мой опыт показывает, что чем больше деталей описано по проекту, тем более гладко идёт дальнейшая работа, сроки на разработку, подготовку методик и средств тестирования и само тестирование при этом сокращаются.

Повторюсь, что в любом деле важно знать, когда остановиться и не заставлять дизайнера перекрашивать кнопки или учить программиста кодить. :-)

v-kostin.blogspot.com

Подписаться на новые статьи: RSS (Что это такое?) или Email