Я ТЕБЯ ВНЕДРИЛ, Я ТЕБЯ И УБЬЮ

— А не может быть такого, Миша, что ты просто плохой менеджер и не смог приучить команду к какому-нибудь хорошему аджайлу там или скраму, и внедрить эти бест-практикс?

Шла 25-я минута сессии вопросов и ответов после нашего с Дзимкой выступления про то, «Почему все ненавидят дейли».

Первые вопросы были либо комплиментарные, либо непонятные. И вот первая атака.

«За что ж ты так с нами, Виталик? Больше не пойду с тобой пиво пить», — подумал я.

И нет, я расстроился не потому, что меня критиковали. Критика — это хорошо. Даже такая.

Я расстроился, потому что мне предстояло объяснять человеку, верующему в бест практикс, что ...

Best practices не существует

Так говорить — это жестоко. Это всё равно что рассказать ребёнку, что никакого Деда Мороза нет. И что тот бородатый дядя в торговом центре — просто бывший КВНщик. И что пахло от него не соснами, а Егермейстером.

Кто-то мог бы справедливо подметить: как же вообще тогда появилось такое выражение «best practices», если их не бывает? Отвечу: они бывают, но только в определённом контексте. В таком, который в рамках Cynefin-фреймворка называют Простой.

Cynefin разделяет «контексты принятия решений» на 4 категории: Простой, Сложный, Запутанный, Хаотичный. Один отличается от другого предсказуемостью: насколько точно мы можем объяснить причину, глядя на следствие.

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

Ваш контекст Cложный, если вам приходится хорошенько подумать, какую конкретно кнопку нужно нажать. Инструкций нет. Есть наборы советов «бывалых». Ситуации могут отличаться мелкими нюансами, от которых зависит, что вы в итоге нажмёте. С годами вы становитесь лучше в этом деле, становитесь экспертом и совершаете меньше ошибочных нажатий, которые приводят к катапультированию, хотя вы хотели откинуть сиденье. Пример: управление автомобилем.

Ваш контекст Запутанный, если для того, чтобы получить результат, похожий на то, что вам нужно, приходится наугад нажимать разные клавиши и следить, что получится. Получаться будет, как правило, не то. Но если вам удастся натыкать что-то подходящее, в следующий раз получить то же самое у вас уже не получится. Или получится, но только если перед этим чихнуть раз. И только если вам сегодня исполняется 15.

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

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

Ничто не вечно

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

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

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

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

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

Группа людей, никогда не слышавших о парном программировании, и группа тех, кто уже попробовал его, полюбил или возненавидел, будут по-разному себя вести. Равнодушие пропадёт, люди начнут реагировать. Кто-то станет атаковать, критиковать, кто-то защищать, а кто-то избегать практику.

Практика сможет выжить только если будет способна адаптироваться к изменившимся обстоятельствам. Но адаптация приведёт к новому витку обратной связи, и практике придётся меняться снова и снова. Поклонникам стабильности best practices эта новость явно придётся не по душе.

Совет: после привнесения в команду новой практики будьте готовы к постоянным переменам. Подстраивайте правила под вкусы людей. Постарайтесь не влюбляться в практику, помните, что ...

Любая практика достойна быть умерщвлённой

Согласно ТРИЗ, идеальная система — это та, которая выполняет свою функцию и при этом не существует. Да, ТРИЗ разрабатывали для решения проблем в инженерном деле, рассматривая механизмы и технические системы, но, думаю, менеджеры тоже могут перенять оттуда некоторые идеи.

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

Внедрение практики — это ответ на какую-то проблему. Функция практики — эту проблему исправить. Любые накладные расходы для выполнения функции отдаляют практику от точки идеальности.

Точка идеальности наступает, когда КПД достигает 100%. Когда на исполнение практики уходит 0 секунд, денег потрачено 0 €, а побочных эффектов нет вовсе.

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

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

На крайний случай воспользуйтесь принципом Тараса Бульбы: «Я тебя породил — я тебя и убью».