О культе карго в ИТ

“У тихоокеанских островитян есть религия самолетопоклонников. Во время войны они видели, как приземляются самолеты, полные всяких хороших вещей, и они хотят, чтобы так было и теперь. Поэтому они устроили что-то вроде взлетно-посадочных полос, по сторонам их разложили костры, построили деревянную хижину, в которой сидит человек с деревяшками в форме наушников на голове и бамбуковыми палочками, торчащими как антенны — он диспетчер, — и они ждут, когда прилетят самолеты. Они делают все правильно. По форме все верно. Все выглядит так же, как и раньше, но все это не действует. Самолеты не садятся. Я называю упомянутые науки науками самолетопоклонников, потому что люди, которые ими занимаются, следуют всем внешним правилам и формам научного исследования, но упускают что-то главное, так как самолеты не приземляются.”
Р. Фейнман, “Вы конечно шутите, мистер Фейнман”

Говорят, что использовать термин “карго-культ” начали после этой речи Фейнмана. Я встречаю это явление и в управлении проектами, и в дизайне, и в программировании, но карго-культ распространен и в других профессиональных сферах.

Когда вы делаете что-то, не имея иных причин к этому, кроме “в крутой компании делают так ” — вы становитесь адептом культа карго.


Почему это так работает?

Мозг человека легче всего строит простые логические связи.

Если засунуть руку в огонь, то это больно и появляются ожоги.
Вывод: Огонь — больно и ожоги. Не буду засовывать руку в огонь.

Я пошел в лес на севере и нашел вкусные ягоды.
Вывод: Лес на севере — вкусные ягоды. Пойду туда снова.

Так познают мир дети. И это работает пока мы рассматриваем простые явления. Но анализируя сложные вещи, таких рассуждений следует избегать .

У меня не работал телевизор. Я видел, как сосед ударил по своему телевизору кулаком и он заработал.
Вывод: когда что-то не работает, нужно бить по этому инструменту кулаком. Ударю по своему телевизору.

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

Аналогично и для сферы информационных технологий:

В одной крупной компании используют Hadoop. Компания крутая и зарабатывает много денег.
Вывод: Использую в своем интернет-магазине запчастей Hadoop — буду зарабатывать много денег.


Опасность карго-культа в голове менеджера

Менеджер проекта или продукта — это инициатор множества значительных изменений. Чем бы он ни занимался: внедрением новых подходов к управлению проектами, новых функций, или новых технологий — все это важные вещи. Результаты таких изменений должны быть спрогнозированы и впоследствии тщательно проанализированы.

В случае с телевизором, ты быстро понимаешь, что удары по корпусу не устраняют поломку, и задумываешься о причинах.

Менеджер получает информацию о результатах большинства изменений через призму восприятия людей, с которыми он работает. Если он инициирует изменения в продукте, то обратную связь он получает от пользователей. Если изменения касаются процесса разработки — от членов команды.

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

Обратная связь поступает с задержкой

Вы заимствуете функцию у более крупного игрока на рынке и внедряете в свой проект. Какой срок вам потребуется, чтобы понять, что внедрение этой функции было верным решением?

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

Обратную связь тяжело однозначно интерпретировать

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

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

Заметные пользователям изменения в продукте могут вызывать негативные отзывы в первые несколько месяцев после релиза, даже если сами изменения “хороши”.

Следует помнить, что такие данные всегда сложно интерпретировать однозначно.


Чем вреден карго-культ?

Вы не можете понять, полезны ли были эти изменения

Обратную связь сложно анализировать. Но если причиной ваших действий был “карго-культ” — у вас нет ни единого шанса понять последствия ваших решений.

Потеря мотивации

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

Вы можете все испортить

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


Чем полезен карго-культ?

Карго-культ — вреден. Точка. Но также вредна и обратная ситуация, когда вы убеждены в том, что вы — самый умный.

“Скрам — для хипстеров”, “Автотесты — пустая трата времени!” — все это ошибочно.

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


Избавляемся от карго-культа в голове

“Серебряной пули — нет”
Фредерик Брукс

Помните, что “серебряной пули” не существует. У каждого подхода и технологии есть своя область применения, недостатки и достоинства, стоимость и последствия внедрения.

Довольно часто мы бываем вдохновлены и идеализируем предмет своего вдохновения. Чтобы оставаться объективным, задайте себе несколько вопросов:

  1. Почему и как это работает?
  2. Что нам нужно будет сделать, чтобы это заработало для нас?
  3. Какие у этого недостатки? В какой ситуации ее категорически нельзя использовать? А в какой рекомендуется? Почему мы не использовали это раньше?
  4. Сколько нам будет стоить внедрение и сопровождение этого? Какие преимущества мы получим от использования?
  5. Какие возможны негативные последствия? Насколько они вероятны?