Теорема: в любой организации разработки программного обеспечения участники разработки тратят основное время на выполнение не более двух из трех видов деятельности:
- Думать -- участники обдумывают или планируют свои действия в индивидуальном порядке
- Обсуждать -- участники обсуждают планируемые действия друг с другом
- Программировать -- участники пишут код
Рассмотрим основные сочетания.
Cовет Элронда хорошо иллюстрирует паралич анализа.
ДО -- думать и обсуждать, но не программировать. Литература описывает такой феномен под названием
паралич анализа. Как следствие, основные работы ведутся в переговорных комнатах и на бумаге. Чаще всего проблема при этом остается нерешенной.
ДП -- думать и программировать, но не обсуждать. Широко встречающийся на практике выход из ДО. У одного или у нескольких разработчиков пропадает желание участвовать в дальнейших дискуссиях, они возвращаются на рабочие места и начинают писать код. При этом каждый участник пишет код согласно своему видению решения проблемы. Как следствие, частые и долгие доработки и переработки решения из-за плохой согласованности его частей, либо провал проекта по причине высоких затрат или невыполнения ключевых требований. Следует также учесть, что паттерн ДП может появляется и без ДО.
ОП -- обсуждать и программировать, но не думать. При внешне кажущемся благополучии этот паттерн поведения не приводит к решению проблемы. Участники охотно обсуждают текущее положение дел, а в перерывах между обсуждениями пишут код. Бесконечная череда возникающих задач переводит работу из проектного режима в операционный. Характерным признаком ОП может служить ориентированность участников на события во времени ("дедлайны"), либо на демонстрацию прогресса ("пятничные демо"). Как правило, общее видение проблемы или решения размыто, а степень приближенности проекта к желаемому результату не измеряется. Дата окончания работ не известна, либо же перенос известной даты не приводит к негативным последствиям.
Вырожденные случаи Д (думать, но не обсуждать и не программировать) и О (обсуждать, но не думать и не программировать) -- близки к ДО, приводят к тем же результатам. Случай П (не думать, не обсуждать, только программировать) -- широко описан в
литературе и фольклоре.