Хочу рассказать об одной команде. Они делали продукт для управления логистикой. Штуку сложную, многослойную и критически важную для бизнеса. Когда всё работало, никто их не замечал. Но если ломалось ...
Я начал наблюдать за командой одновременно с их новым тимлидом - Андреем. Он был спокойный, с чувством юмора и репутацией «человека, который умеет договариваться». До него командой руководил Паша, который ушёл в другую компанию, оставив в наследство культуру здорового пофигизма: оценки давали неспешно, обсуждали долго, зато почти никогда не проваливали дедлайны. Менеджмент считал их медленными, но предсказуемыми. Идеальный баланс.
Но в один непрекрасный день всё сломалось. Началось с того, что генеральный директор пригласил нового топ-менеджера - Артура. Он пришёл из e-commerce и привык, что «скорость - это всё». Его первое появление в опенспейсе команды я запомнил очень хорошо. Он стоял в проходе, широко расставив ноги, и смотрел на доску с бэклогом. «Ребята, у нас через месяц крупнейшая отраслевая выставка. Или мы там показываем новую интеграцию с таможней, или мы проигрываем конкурентам».
То, что случилось дальше, я мог бы назвать «коллективным помешательством». Но если разобраться, это был чистый страх.
Артур не был злым человеком. Он был энергичным, харизматичным и искренне верил, что команда может всё. На совещаниях он говорил: «Я знаю, что вы профессионалы. Вы лучшие. Неужели пара недель переработок решит вопрос? Мы все потом поедем на шашлыки за мой счёт». И команда, которая ещё вчера скептически хмурилась, постепенно проникалась духом героизма.
Первый тревожный звоночек прозвучал на дейлике через два дня после того разговора. Обсуждали интеграцию. Лена, старший разработчик, обычно осторожная и дотошная, вдруг сказала: «Ну, если забить на рефакторинг модуля отправки и взять готовую библиотеку, можно попробовать за две недели». Андрей, тимлид, поднял бровь: «Библиотека сырая. Ты уверена?» Лена пожала плечами: «А что делать?».
Это стало триггером. Команда начала оценивать задачи, исходя из желаемого срока, а не из реальной сложности. Саша, отвечавший за документооборот, сказал, что сделает адаптер за три дня. «Адаптер, который в прошлый раз занял три недели?», — спросил Андрей. Саша отвёл глаза: «Тогда было другое время. Я стал лучше знать архитектуру». Чистая правда. Только архитектура с тех пор не стала проще.
Я видел, как Андрей мучился. Он понимал, что оценки нереалистичны. Но каждый раз, когда он пытался вернуть разговор в рациональное русло, натыкался на стены. Первая стена - сам Артур, который на совещаниях излучал уверенность и говорил: «Я верю в вас». Вторая стена - сама команда. Люди не хотели быть «слабым звеном». Никто ведь не говорит «я не справлюсь» под взглядом большого начальника, который обещает премии и шашлыки. Это социальная ловушка.
А потом случилось то, что должно было случиться. За неделю до выставки Лена упала с серверной ошибкой в три часа ночи. Библиотека оказалась несовместима с версией их фреймворка. Сашин адаптер падал на каждом втором запросе. Команда работала ночами, убирая костыли, но поезд уже сошёл с рельсов. На выставку поехали без демо. Артур выглядел растерянным. Он не кричал, не ругал. Он просто сказал: «Как же так? Вы же говорили, что успеваете».
И вот в этот момент проявился самый страшный эффект давления сроками. Команда перестала доверять себе. Они больше не могли отличить правдивую оценку от вымученной. Лена на ретроспективе сказала с горечью: «Я сама поверила, что смогу. Я не обманывала. Я просто очень хотела». И это было ключевое открытие. Оптимистичные оценки под давлением - это не ложь. Это когнитивное искажение уставших, мотивированных людей, которых поставили в нечеловеческие условия.
После провала на выставке Артур куда-то ушёл (поговаривали, что его переманили обратно в e-commerce). В команде началась депрессия.
Два человека уволились. Оставшиеся чувствовали себя выпотрошенными. Андрей пытался восстановить нормальный ритм, но тут на горизонте нарисовался новый стейкхолдер - заказчик из коммерческого департамента, Елена Владимировна. Женщина с огромным списком «хотелок» и непробиваемой верой в то, что IT должны быть «сервисной функцией».
Елена Владимировна пришла на стратегическую сессию с пачкой распечаток. Там было тридцать два пункта: от «кнопки массового импорта» до «интеграции с BI-системой в реальном времени». Она положила бумаги на стол и сказала: «Рынок требует всего этого. Давайте оценим, сколько нужно времени, и я пойду отбивать бюджет».
И тут команда ударилась в другую крайность.
Первую задачу — «Добавить фильтр по дате закрытия рейса» — оценивали сорок минут. Спорили о каждом пункте требований, выискивали неочевидные зависимости, вспоминали ошибки пятилетней давности. В итоге Лена сказала: «Ставлю 21 сторипоинт». Андрей удивился: «Это же выпадающий список с датой. Ты серьёзно?» Лена ответила с вызовом: «Ты не знаешь, что там в старом коде. Я не хочу опять ночевать в офисе».
Это был защитный механизм. Команда пережила травму дедлайнов. Теперь каждый пункт требований вызывал реакцию: «Мы должны предусмотреть всё». Разработчики начали оценивать не реальный объём работ, а уровень своего страха. Чем страшнее задача, тем выше оценка. Причём страх был иррациональный - не перед сложностью, а перед последствиями возможной ошибки. Ведь в прошлый раз их подвела вера в лучшее.
Я помню, как Саша, тот самый, который когда-то обещал адаптер за три дня, теперь на любое обсуждение говорил: «Так, стоп. Давайте сначала напишем технический документ, разберём архитектуру, согласуем с командой безопасности. А потом ещё раз оценим. Я думаю, не меньше двух месяцев». Задача по добавлению логотипа в отчёт превращалась в эпопею. Команда страшно переоценивала всё!
Елена Владимировна была в шоке. На планерке она пыталась давить: «Это же просто кнопка! Почему сорок дней?». Тимлид Андрей, наученный горьким опытом, вставал на сторону команды: «Они знают систему, им виднее». Но в глубине души он понимал, что тут что-то не так. Они перегнули палку. Продукт начал гнить на корню. Бизнес не мог получить фичи в разумные сроки, и конкуренты уже дышали в спину. А команда сидела в башне из слоновой кости, окружённая валами завышенных оценок.
Самый показательный случай произошёл на одной из встреч., где обсуждали интеграцию с платёжным шлюзом. Андрей назвал оценку: сто пятьдесят часов. У многих дёрнулся глаз. Ведь многие знали этот шлюз - ранее его подключали за две недели. На осторожный вопрос: «А что именно вы закладываете?», Лена открыла таблицу: «Разработка, тестирование, рефакторинг старого кода, нагрузочное тестирование, написание автотестов, документация, резерв на непредвиденные блокеры, время на подтверждение у архитектора и аналитиков…». Всё по уму. Идеальный план. План, который гарантированно защищал от любого риска. Кроме одного - риск никогда не запустить функцию и потерять рынок.
Однажды Андрей меня спросил: «Слушай, у вас оценки вменяемые. Как вы это делаете?». Я не стал читать лекций. Я показал ему наш график. Там не было чисел. Были интервалы.
Мы начали разговаривать. Не как на формальных встречах, а как на кухне. Андрей пригласил Лену, Сашу. Я спросил: «Ребята, что самое страшное в оценке?». Лена ответила сразу: «Что меня потом ткнут носом. Скажут, что я обещала, а не сделала». Саша добавил: «Или заставят переделывать аврально». То есть корень проблемы был не в технике. Он был в отсутствии психологической безопасности.
Вместе с Андреем они придумали гениальную вещь. Он пошёл к новому СТО (наконец-то наняли адекватного) и выбил эксперимент: один квартал команда работает без жёстких дедлайнов, но с публичным прогнозом надёжности.
СТО, мужик пожилой и битый жизнью, согласился: «Хуже, чем сейчас, уже не будет».
Команда ввела правило трёх цифр. Для каждой задачи они теперь называли не один срок, а три:
Но главное было не в цифрах. Главное - они начали говорить не «Я сделаю за пять дней», а «С вероятностью 80% уложусь в пять дней. Но есть риск вылезти за рамки, если API поставщика окажется кривым. Давайте заранее подумаем, что делать в таком случае». Это сместило фокус с обещания на управление рисками.
Первый месяц было тяжело. Елена Владимировна хваталась за голову: «Что значит "вероятность"? Мне нужна дата!». Андрей учился быть адвокатом команды. Он приглашал её на их встречи и говорил: «Смотрите, мы даём честную вилку. Вместо одного вранья, которое всех бесит, вы получаете реальный коридор. Вы можете планировать бюджет и маркетинг, закладывая буфер». Сработало не сразу.
Поворотный момент случился, когда один проект всё-таки вылез за реалистичный сценарий. Раньше это была бы трагедия. Но теперь команда сказала: «Мы же предупреждали, что есть 15% вероятность. Давайте включим план Б, который мы обсудили». И план Б был наготове - упрощённая версия фичи. Продукт вышел вовремя, просто чуть урезанный. И никто не кричал.
После того случая Лена на ретроспективе сказала: «Я вдруг поняла, что могу говорить правду. Мне не нужно больше занижать оценку, чтобы угодить, и не нужно завышать, чтобы защититься. Я просто говорю как есть». Это было возрождение.
Постепенно исчезли и страхи. Команда стала оценивать задачи, отталкиваясь от реального опыта, а не от травм. Они перестали закапываться в бесконечную предварительную аналитику, чтобы «точно ничего не забыть». Вместо этого брали задачу, определяли самый рискованный кусок и быстренько делали исследование на день-два. Это давало реальную информацию, а не фантазии.
Андрей наладил отношения с бизнесом по-новому. Он перестал быть транслятором требований и стал их партнёром. Когда пришла очередная горящая просьба «сделать вчера», он спокойно отвечал: «Хорошо, давайте посмотрим. Если нужно вчера, то объём будет вот такой, а качество вот сякое. Если хотим хорошо и полно, то нужно три недели. Выбирайте». Елена Владимировна сначала бесилась, но быстро поняла, что это честный разговор, а не отмазки.
Спустя время команда уже не была ни героями, ни параноиками. На одной из последних планерок я услышал, как Саша оценивал задачу: «Оптимистично - день, пессимистично - четыре, реалистично - два с половиной. Берём в работу, риски понятны, поехали». И никакой дрожи в голосе.
Что я вынес:
Оценки - это не цифры. Это разговор о страхе и доверии. Если команда систематически занижает оценки, она защищается от наказания за правду. Если систематически завышает - она защищается от наказания за ошибки. В обоих случаях виноваты не разработчики, а атмосфера, в которой им страшно быть честными.
Андрей и его ребята прошли оба круга этого ада. Они не нанимали консультантов и не внедряли сложные фреймворки. Они просто поняли, что единственный способ жить - выстроить отношения, в которых можно сказать: «Я не знаю», «Я ошибся», «Я боюсь». И тогда магия исчезает. Остаются работа, реальные риски и люди, которые умеют договариваться.
Я вспоминаю их историю каждый раз, когда слышу на совещании сакраментальное «Ну скажите, сколько вам надо времени». Ведь ответ на этот вопрос - всегда начало переговоров.
Я начал наблюдать за командой одновременно с их новым тимлидом - Андреем. Он был спокойный, с чувством юмора и репутацией «человека, который умеет договариваться». До него командой руководил Паша, который ушёл в другую компанию, оставив в наследство культуру здорового пофигизма: оценки давали неспешно, обсуждали долго, зато почти никогда не проваливали дедлайны. Менеджмент считал их медленными, но предсказуемыми. Идеальный баланс.
Но в один непрекрасный день всё сломалось. Началось с того, что генеральный директор пригласил нового топ-менеджера - Артура. Он пришёл из e-commerce и привык, что «скорость - это всё». Его первое появление в опенспейсе команды я запомнил очень хорошо. Он стоял в проходе, широко расставив ноги, и смотрел на доску с бэклогом. «Ребята, у нас через месяц крупнейшая отраслевая выставка. Или мы там показываем новую интеграцию с таможней, или мы проигрываем конкурентам».
***
То, что случилось дальше, я мог бы назвать «коллективным помешательством». Но если разобраться, это был чистый страх.
Артур не был злым человеком. Он был энергичным, харизматичным и искренне верил, что команда может всё. На совещаниях он говорил: «Я знаю, что вы профессионалы. Вы лучшие. Неужели пара недель переработок решит вопрос? Мы все потом поедем на шашлыки за мой счёт». И команда, которая ещё вчера скептически хмурилась, постепенно проникалась духом героизма.
Первый тревожный звоночек прозвучал на дейлике через два дня после того разговора. Обсуждали интеграцию. Лена, старший разработчик, обычно осторожная и дотошная, вдруг сказала: «Ну, если забить на рефакторинг модуля отправки и взять готовую библиотеку, можно попробовать за две недели». Андрей, тимлид, поднял бровь: «Библиотека сырая. Ты уверена?» Лена пожала плечами: «А что делать?».
Это стало триггером. Команда начала оценивать задачи, исходя из желаемого срока, а не из реальной сложности. Саша, отвечавший за документооборот, сказал, что сделает адаптер за три дня. «Адаптер, который в прошлый раз занял три недели?», — спросил Андрей. Саша отвёл глаза: «Тогда было другое время. Я стал лучше знать архитектуру». Чистая правда. Только архитектура с тех пор не стала проще.
Я видел, как Андрей мучился. Он понимал, что оценки нереалистичны. Но каждый раз, когда он пытался вернуть разговор в рациональное русло, натыкался на стены. Первая стена - сам Артур, который на совещаниях излучал уверенность и говорил: «Я верю в вас». Вторая стена - сама команда. Люди не хотели быть «слабым звеном». Никто ведь не говорит «я не справлюсь» под взглядом большого начальника, который обещает премии и шашлыки. Это социальная ловушка.
***
А потом случилось то, что должно было случиться. За неделю до выставки Лена упала с серверной ошибкой в три часа ночи. Библиотека оказалась несовместима с версией их фреймворка. Сашин адаптер падал на каждом втором запросе. Команда работала ночами, убирая костыли, но поезд уже сошёл с рельсов. На выставку поехали без демо. Артур выглядел растерянным. Он не кричал, не ругал. Он просто сказал: «Как же так? Вы же говорили, что успеваете».
И вот в этот момент проявился самый страшный эффект давления сроками. Команда перестала доверять себе. Они больше не могли отличить правдивую оценку от вымученной. Лена на ретроспективе сказала с горечью: «Я сама поверила, что смогу. Я не обманывала. Я просто очень хотела». И это было ключевое открытие. Оптимистичные оценки под давлением - это не ложь. Это когнитивное искажение уставших, мотивированных людей, которых поставили в нечеловеческие условия.
***
После провала на выставке Артур куда-то ушёл (поговаривали, что его переманили обратно в e-commerce). В команде началась депрессия.
Два человека уволились. Оставшиеся чувствовали себя выпотрошенными. Андрей пытался восстановить нормальный ритм, но тут на горизонте нарисовался новый стейкхолдер - заказчик из коммерческого департамента, Елена Владимировна. Женщина с огромным списком «хотелок» и непробиваемой верой в то, что IT должны быть «сервисной функцией».
Елена Владимировна пришла на стратегическую сессию с пачкой распечаток. Там было тридцать два пункта: от «кнопки массового импорта» до «интеграции с BI-системой в реальном времени». Она положила бумаги на стол и сказала: «Рынок требует всего этого. Давайте оценим, сколько нужно времени, и я пойду отбивать бюджет».
И тут команда ударилась в другую крайность.
Первую задачу — «Добавить фильтр по дате закрытия рейса» — оценивали сорок минут. Спорили о каждом пункте требований, выискивали неочевидные зависимости, вспоминали ошибки пятилетней давности. В итоге Лена сказала: «Ставлю 21 сторипоинт». Андрей удивился: «Это же выпадающий список с датой. Ты серьёзно?» Лена ответила с вызовом: «Ты не знаешь, что там в старом коде. Я не хочу опять ночевать в офисе».
Это был защитный механизм. Команда пережила травму дедлайнов. Теперь каждый пункт требований вызывал реакцию: «Мы должны предусмотреть всё». Разработчики начали оценивать не реальный объём работ, а уровень своего страха. Чем страшнее задача, тем выше оценка. Причём страх был иррациональный - не перед сложностью, а перед последствиями возможной ошибки. Ведь в прошлый раз их подвела вера в лучшее.
Я помню, как Саша, тот самый, который когда-то обещал адаптер за три дня, теперь на любое обсуждение говорил: «Так, стоп. Давайте сначала напишем технический документ, разберём архитектуру, согласуем с командой безопасности. А потом ещё раз оценим. Я думаю, не меньше двух месяцев». Задача по добавлению логотипа в отчёт превращалась в эпопею. Команда страшно переоценивала всё!
Елена Владимировна была в шоке. На планерке она пыталась давить: «Это же просто кнопка! Почему сорок дней?». Тимлид Андрей, наученный горьким опытом, вставал на сторону команды: «Они знают систему, им виднее». Но в глубине души он понимал, что тут что-то не так. Они перегнули палку. Продукт начал гнить на корню. Бизнес не мог получить фичи в разумные сроки, и конкуренты уже дышали в спину. А команда сидела в башне из слоновой кости, окружённая валами завышенных оценок.
Самый показательный случай произошёл на одной из встреч., где обсуждали интеграцию с платёжным шлюзом. Андрей назвал оценку: сто пятьдесят часов. У многих дёрнулся глаз. Ведь многие знали этот шлюз - ранее его подключали за две недели. На осторожный вопрос: «А что именно вы закладываете?», Лена открыла таблицу: «Разработка, тестирование, рефакторинг старого кода, нагрузочное тестирование, написание автотестов, документация, резерв на непредвиденные блокеры, время на подтверждение у архитектора и аналитиков…». Всё по уму. Идеальный план. План, который гарантированно защищал от любого риска. Кроме одного - риск никогда не запустить функцию и потерять рынок.
***
Однажды Андрей меня спросил: «Слушай, у вас оценки вменяемые. Как вы это делаете?». Я не стал читать лекций. Я показал ему наш график. Там не было чисел. Были интервалы.
Мы начали разговаривать. Не как на формальных встречах, а как на кухне. Андрей пригласил Лену, Сашу. Я спросил: «Ребята, что самое страшное в оценке?». Лена ответила сразу: «Что меня потом ткнут носом. Скажут, что я обещала, а не сделала». Саша добавил: «Или заставят переделывать аврально». То есть корень проблемы был не в технике. Он был в отсутствии психологической безопасности.
Вместе с Андреем они придумали гениальную вещь. Он пошёл к новому СТО (наконец-то наняли адекватного) и выбил эксперимент: один квартал команда работает без жёстких дедлайнов, но с публичным прогнозом надёжности.
СТО, мужик пожилой и битый жизнью, согласился: «Хуже, чем сейчас, уже не будет».
Команда ввела правило трёх цифр. Для каждой задачи они теперь называли не один срок, а три:
- Оптимистичный (если повезёт, если не будет багов, если никто не заболеет),
- Реалистичный (скорее всего),
- Пессимистичный (если всё пойдёт наперекосяк).
Но главное было не в цифрах. Главное - они начали говорить не «Я сделаю за пять дней», а «С вероятностью 80% уложусь в пять дней. Но есть риск вылезти за рамки, если API поставщика окажется кривым. Давайте заранее подумаем, что делать в таком случае». Это сместило фокус с обещания на управление рисками.
Первый месяц было тяжело. Елена Владимировна хваталась за голову: «Что значит "вероятность"? Мне нужна дата!». Андрей учился быть адвокатом команды. Он приглашал её на их встречи и говорил: «Смотрите, мы даём честную вилку. Вместо одного вранья, которое всех бесит, вы получаете реальный коридор. Вы можете планировать бюджет и маркетинг, закладывая буфер». Сработало не сразу.
Поворотный момент случился, когда один проект всё-таки вылез за реалистичный сценарий. Раньше это была бы трагедия. Но теперь команда сказала: «Мы же предупреждали, что есть 15% вероятность. Давайте включим план Б, который мы обсудили». И план Б был наготове - упрощённая версия фичи. Продукт вышел вовремя, просто чуть урезанный. И никто не кричал.
После того случая Лена на ретроспективе сказала: «Я вдруг поняла, что могу говорить правду. Мне не нужно больше занижать оценку, чтобы угодить, и не нужно завышать, чтобы защититься. Я просто говорю как есть». Это было возрождение.
Постепенно исчезли и страхи. Команда стала оценивать задачи, отталкиваясь от реального опыта, а не от травм. Они перестали закапываться в бесконечную предварительную аналитику, чтобы «точно ничего не забыть». Вместо этого брали задачу, определяли самый рискованный кусок и быстренько делали исследование на день-два. Это давало реальную информацию, а не фантазии.
Андрей наладил отношения с бизнесом по-новому. Он перестал быть транслятором требований и стал их партнёром. Когда пришла очередная горящая просьба «сделать вчера», он спокойно отвечал: «Хорошо, давайте посмотрим. Если нужно вчера, то объём будет вот такой, а качество вот сякое. Если хотим хорошо и полно, то нужно три недели. Выбирайте». Елена Владимировна сначала бесилась, но быстро поняла, что это честный разговор, а не отмазки.
***
Спустя время команда уже не была ни героями, ни параноиками. На одной из последних планерок я услышал, как Саша оценивал задачу: «Оптимистично - день, пессимистично - четыре, реалистично - два с половиной. Берём в работу, риски понятны, поехали». И никакой дрожи в голосе.
Что я вынес:
Оценки - это не цифры. Это разговор о страхе и доверии. Если команда систематически занижает оценки, она защищается от наказания за правду. Если систематически завышает - она защищается от наказания за ошибки. В обоих случаях виноваты не разработчики, а атмосфера, в которой им страшно быть честными.
Андрей и его ребята прошли оба круга этого ада. Они не нанимали консультантов и не внедряли сложные фреймворки. Они просто поняли, что единственный способ жить - выстроить отношения, в которых можно сказать: «Я не знаю», «Я ошибся», «Я боюсь». И тогда магия исчезает. Остаются работа, реальные риски и люди, которые умеют договариваться.
Я вспоминаю их историю каждый раз, когда слышу на совещании сакраментальное «Ну скажите, сколько вам надо времени». Ведь ответ на этот вопрос - всегда начало переговоров.