Работа и управление
Анти-паттерн «Разработка комитетом»

Анти-паттерн «Разработка комитетом»

Сегодня мы рассмотрим один из лучших инструментов уничтожения проектов — разработку комитетом. Прелесть этого подхода в том, что вам ничего и делать не придётся для того, чтобы развалить проект.

Сегодня мы рассмотрим один из лучших инструментов уничтожения проектов — разработку комитетом. Прелесть этого подхода в том, что вам ничего и делать не придётся для того, чтобы развалить проект.

“Как же так?” — спросите вы. Ведь в предыдущие разы, чтобы отправить работу под откос, вам приходилось нагнетать истерию вымышленными дедлайнами и приписками “Срочно!”, отчитывать случайных людей за случайные действия… А тут прямо всё само?

Почти. Вам достаточно лишь позвать своих коллег, и они закопают проект за вас!

Что же это за анти-паттерн

Разработка комитетом (design by committee) — уничижительная характеристика стиля проектирования и полученного результата, когда группа участников объединяется для создания чего-либо (обычно технического устройства или стандарта) при плохом или некомпетентном руководстве. Отличительными чертами «разработанного комитетом» проекта являются излишняя сложность, неполнота, логические противоречия, банальность и отсутствие целостной структуры.

Как использовать этот анти-паттерн

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

Первое (и последнее, на самом деле), что нужно сделать “ответственному” — это составить техническое задание или спецификацию и утвердить со всеми “заинтересованными людьми”.

Вот тут то и кроется скрытое коварство.

Первый круг ада — собрать со всех список хотелок. Казалось бы — разослал по почте, получил результат. Но нет, ответа в большинстве случаев не последует: свободные сотрудники на то и свободные, что ничего не делают, а занятым — как всегда, некогда.

Поэтому придётся брать каждого “за пуговицу” и выдавливать технические требования.

Второй круг ада — согласовать набор неясных и противоречивых требований. Задача воистину сравнимая с чисткой авгиевых конюшен. Так как каждый видит проект со своей стороны, каждый хочет своё. В результате попыток удовлетворить всех, ТЗ превращается в огнедышащую химеру с over 9000 уровней абстракции и случаев использования. Будет весело заставить “ответственного” сделать схему полученного процесса, чтобы полюбоваться на старый логотип хабрахабра.

Казалось бы всё...

Но тут подстерегает третий круг ада — собрания для согласования полученного технического задания. Начнём с того, что получившуюся кипу бумаги никто не осилит, поэтому первое “заседание” будет потрачено на объяснение общей концепции. Ко второму — исполнитель догадается сделать реферат сего документа. Но и тут нежданчик — найдутся эксперты по всему и заявят, что всё сделано неправильно, а надо вот так.

Ух, вроде получили ТЗ. Осталось лишь реализовать ЭТО… Получив подобное противоречивое и запутанное ТЗ, разработчик если и не уйдёт в запой, то неприменно погрустнеет надолго. После того, как он даст документу проникнуть в свой мозг, появляется четвёртый круг ада — полученный документ мало того, что несовместим, так ещё и нереализуем. По крайней мере, в ближайшие 5 лет… Нужно выкинуть 90% хотелок. Возвращаемся к первому кругу, с той только оговоркой, что “заинтересованные лица” будут ещё менее готовы к диалогу — они уже “всё сказали”.

Возможные опасности

“Ответственный” может начать рассказывать окружающим о таких странных вещах как “Минимально ценный продукт” (MVP), о первой версии, об итеративной разработке. Негодяй! — Хочет таки выкрутиться.

Но не тут то было! Собираем совещание по обсуждению “важных” возможностей. А ведь для каждого члена комитета свои фичи важнее… И начинается “перетягивание одеяла”.

Ну и требуем план по разработки всего продукта перед началом первой итерации — нам же надо представлять, что происходит!

Также при использовании этого анти-паттерна будет уместно применить “управление грибами”. Но об этом — в другой статье.

Также может быть вам интересно:

Компьютерщики / IT Crowd. О выживании IT-шников в бетонных джунглях

В чём же успех этого сериала? Пожалуй, причина такого успеха схожа с успехом "Теории большого взрыва" — ситуационная комедия с гиками.

Читать »

В поисках практики. История одной девушки

Одна девушка, пройдя обучение в ВУЗе по специальности, не захотела идти на практику по распределению. Обратилась к одному из моих сотрудников на предмет возможности пройти практику в нашей компании. Меня попросили посодействовать. Ну что же, ок.

Читать »
Фото Нет слов, одни... однострочники

Нет слов, одни... однострочники

На днях вышел пост со списком полезных однострочников для JavaScript программистов. Памятуя Perl-овую молодость, заглянул туда.

Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.

Фото Панель администрирования Django - подключение, настройка, поиск, фильтрация

Панель администрирования Django - подключение, настройка, поиск, фильтрация

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

Фото Только одна из десяти компаний ожидает, что все работники вернутся в офисы

Только одна из десяти компаний ожидает, что все работники вернутся в офисы

Проведённое в США исследование показывает, что далеко не все компании ожидают возвращение к старому образу работы после пандемии.

Фото Антипаттерн "Заочный менеджер". Ниндзя офисного мира

Антипаттерн "Заочный менеджер". Ниндзя офисного мира

Менеджер, который не мешает работать... ну не идеал ли? Другое дело, если он и не помогает - зачем он нужен?

Фото История typeof null в JavaScript – ошибка, необходимая для обратной совместимости

История typeof null в JavaScript – ошибка, необходимая для обратной совместимости

В JavaScript есть множество исключений и просто забавных подходов к преобразованию типов. Про "один из них" и хочется рассказать.

Фото Антипаттерн "Дойная корова"

Антипаттерн "Дойная корова"

Приятно, когда проект приносит деньги. Можно расслабиться и упражняться в эффективном менеджменте. Митинги крутятся, лавеха мутится!

Фото Столлман мне друг, но этикет дороже

Столлман мне друг, но этикет дороже

Столлман – активист и лидер GNU, бывший директор Фонда Свободного Программного обеспечения. Кому и почему он неудобен?