Кофейные заметки
@coffee_notes
Помню, ушел у меня ключевой сотрудник. Главный разработчик, мозг, человек, который знал абсолютно всю архитектуру продукта до последней детали. Каждый модуль, каждую интеграцию с внешними системами, каждый костыль, который мы когда-то сделали наспех под горящий релиз. Когда что-то ломалось в проде - звонили ему, он чинил за полчаса. Когда нужно было добавить новую фичу - он знал точно, где и как это сделать без последствий. Документации, понятное дело, толком не было. И вот он приходит ко мне в один прекрасный день, говорит спокойно - ухожу в другую компанию, офер хороший получил. Я сижу, слушаю его и думаю - все, приехали полностью. Продукт встанет, клиенты начнут разбегаться, бизнес рухнет нафиг. Потому что как без него работать? Он же незаменимый совершенно.
Две недели он пытался передать знания команде изо всех сил. Честный парень. Сидел с разработчиками, показывал код построчно (ха-ха), объяснял логику решений, рисовал схемы на доске. Ничего толкового не происходит. Люди кивают головами, старательно записывают в блокноты, задают вопросы, но реально понимают от силы процентов 20 максимум. Потому что контекст решений не передается за пару недель. Да и за пару месяцев. Почему вот тут сделано именно так, какие были ограничения, какие альтернативы рассматривались, почему отказались от них. Это понимание системы приходит только через опыт работы с ней, через набитые шишки, через исправленные баги.
Он ушел в пятницу. Первый месяц после его ухода был настоящим адом, помню как сейчас. Прод падал раз в неделю, причем по разным причинам - то одно сломается, то другое. Баги вылезали из мест, про которые мы вообще забыли. Клиенты жаловались на глюки, которых раньше не было. Команда металась в панике, пыталась разобраться в коде, который писали не они, логику которого не до конца понимали. Я каждый день просыпался с мыслью - вот оно, конец бизнесу, классический менеджерский факап. А теперь поздно, придется идти работать в Сбер.
Но знаете, что произошло дальше, месяца через три? Продукт работал, причем стабильно. Не идеально, конечно, но работал без критических проблем. Команда полностью разобралась в архитектуре, поняла все узкие места, все зависимости. Более того - они начали активно переписывать куски кода, к которым раньше вообще боялись прикасаться, потому что это была зона ответственности того самого незаменимого разработчика. Оказалось, там была просто куча технического долга, костылей сомнительных, которые «незаменимый» тянул за собой годами просто по привычке. Потому что он знал, как с ними жить и работать, а на переписывание всего этого никогда не было времени и мотивации. И вот парадокс получается. Уход незаменимого человека - это кризис, больно, да, спору нет. Но это еще и огромная возможность, на самом деле. Возможность наконец разобраться в том, что раньше было черным ящиком. Возможность переосмыслить архитектуру с нуля. Возможность вырастить команду, которая не зависит критически от одного человека. Потому что пока есть незаменимый - остальные не растут профессионально. Зачем напрягаться, разбираться глубоко? Есть же тот, кто все знает и решит любую проблему.
Сейчас, спустя много лет после той истории, продукт стал значительно сильнее технически. Команда выросла и окрепла. И я иногда думаю - а может быть, его уход тогда был лучшим, что могло случиться с проектом? Может, если бы он остался еще на пару лет, мы бы так и продолжали тянуть технический долг, так и зависели от одного человека, так и боялись что-то менять кардинально в системе? Мы никогда не знаем заранее, как будет правильнее и лучше для развития. Мы думаем интуитивно - незаменимый человек обязательно должен остаться, это же стабильность, это надежность, это предсказуемость. Но стабильность очень часто на практике означает застой и отсутствие движения вперед. А уход такого ключевого человека - это боль острая, хаос временный, кризис управленческий. Но именно через этот кризис иногда и приходит настоящее развитие системы и людей.
Две недели он пытался передать знания команде изо всех сил. Честный парень. Сидел с разработчиками, показывал код построчно (ха-ха), объяснял логику решений, рисовал схемы на доске. Ничего толкового не происходит. Люди кивают головами, старательно записывают в блокноты, задают вопросы, но реально понимают от силы процентов 20 максимум. Потому что контекст решений не передается за пару недель. Да и за пару месяцев. Почему вот тут сделано именно так, какие были ограничения, какие альтернативы рассматривались, почему отказались от них. Это понимание системы приходит только через опыт работы с ней, через набитые шишки, через исправленные баги.
Он ушел в пятницу. Первый месяц после его ухода был настоящим адом, помню как сейчас. Прод падал раз в неделю, причем по разным причинам - то одно сломается, то другое. Баги вылезали из мест, про которые мы вообще забыли. Клиенты жаловались на глюки, которых раньше не было. Команда металась в панике, пыталась разобраться в коде, который писали не они, логику которого не до конца понимали. Я каждый день просыпался с мыслью - вот оно, конец бизнесу, классический менеджерский факап. А теперь поздно, придется идти работать в Сбер.
Но знаете, что произошло дальше, месяца через три? Продукт работал, причем стабильно. Не идеально, конечно, но работал без критических проблем. Команда полностью разобралась в архитектуре, поняла все узкие места, все зависимости. Более того - они начали активно переписывать куски кода, к которым раньше вообще боялись прикасаться, потому что это была зона ответственности того самого незаменимого разработчика. Оказалось, там была просто куча технического долга, костылей сомнительных, которые «незаменимый» тянул за собой годами просто по привычке. Потому что он знал, как с ними жить и работать, а на переписывание всего этого никогда не было времени и мотивации. И вот парадокс получается. Уход незаменимого человека - это кризис, больно, да, спору нет. Но это еще и огромная возможность, на самом деле. Возможность наконец разобраться в том, что раньше было черным ящиком. Возможность переосмыслить архитектуру с нуля. Возможность вырастить команду, которая не зависит критически от одного человека. Потому что пока есть незаменимый - остальные не растут профессионально. Зачем напрягаться, разбираться глубоко? Есть же тот, кто все знает и решит любую проблему.
Сейчас, спустя много лет после той истории, продукт стал значительно сильнее технически. Команда выросла и окрепла. И я иногда думаю - а может быть, его уход тогда был лучшим, что могло случиться с проектом? Может, если бы он остался еще на пару лет, мы бы так и продолжали тянуть технический долг, так и зависели от одного человека, так и боялись что-то менять кардинально в системе? Мы никогда не знаем заранее, как будет правильнее и лучше для развития. Мы думаем интуитивно - незаменимый человек обязательно должен остаться, это же стабильность, это надежность, это предсказуемость. Но стабильность очень часто на практике означает застой и отсутствие движения вперед. А уход такого ключевого человека - это боль острая, хаос временный, кризис управленческий. Но именно через этот кризис иногда и приходит настоящее развитие системы и людей.
🔥 60
👍 25
💯 15
❤ 14
7 22 2.5K
Обсуждение 7
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram