Крайние за фичи
В 2ГИС налажен процесс ведения фич, когда фича закрепляется за ответственным — фичекрайним.
Два года назад я загорелся стать фичекрайним. Мы тогда только взяли курс на реалистичность карт, и так я стал крайним за фичу «реалистичные дороги».
![Это мы умеем так сейчас Это мы умеем так сейчас](https://habrastorage.org/getpro/habr/upload_files/01b/f51/b42/01bf51b42f65fdf6f155bb362c1f33c2.png)
В самом начале мы считали, что это «путешествие туда-обратно» всего на несколько кварталов. Планировали генерировать дорожное полотно и разметку автоматически из существующих данных. Но это не получилось, а сама фича невероятно разбухла.
Теперь это уже не та задача, в которой мелкие менеджерские недочёты можно перекрыть собственной работоспособностью. Мне предстояло решить задачу такого объёма, с которым я никогда не сталкивался. Чтобы не облажаться (спойлер — почти облажался) я захотел сделать шаг назад и получше разобраться в матчасти «фичекрайности».
Что вообще хотят от фичекрайнего
Для начала провёл расследование. Опросил 15-20 человек: продактов, проджектов, разработчиков, тестировщиков и лидов. Хотелось узнать, что на их взгляд должен делать фичекрайний (я).
Ответы получились разнообразными. Кто-то ожидал, что я буду принимать продуктовые решения и писать брифы, кто-то — что буду трясти продактов или планировать задачи во всех командах. Яснее от таких ответов не стало, поэтому я вернулся к теоретическим основам.
На нашем курсе для фичекрайних говорилось, что от меня ждут достижения целей (слева) при помощи определенных инструментов (справа).
![](https://habrastorage.org/getpro/habr/upload_files/5e4/80c/faa/5e480cfaa5ec48bd12c11ed174eff78f.png)
Я решил уточнить у незаинтересованного лица, кто всем этим занимается. ChatGPT выдал список должностей: Product manager, Project Manager, Scrum Master, Delivery Manager, Team Lead. И главное, на что обращала внимание нейросеть:
![](https://habrastorage.org/getpro/habr/upload_files/e6b/582/0ec/e6b5820ecbc3ab088d6e0383c08eefd2.png)
Всё это чисто менеджерское, а ведь я разработчик…
Дальше я обратился к Саше Картавцеву — теперь уже продакт-лиду 2GIS KIT. Пять лет назад на конференции он выступал про фичекрайних, и на его доклад часто ссылаются в компании.
Вот, что говорил Саша. Представим пирамиду «движения идеи». Наверху — продакт, который занимается стратегией. «Под ним» команда: аналитики, разработчики, тестировщики, девопсы. Из-за большого количества «ступеней» реализация идеи может идти долго и без обратной связи.
![](https://habrastorage.org/getpro/habr/upload_files/6b5/c6f/496/6b5c6f4962484e06dd854b35fe2228ab.png)
А в концепции с фичекрайним продакт может напрямую коммуницировать с разработчиком.
![](https://habrastorage.org/getpro/habr/upload_files/af7/574/93b/af757493b3e57dfb46724bd767234099.png)
Преимущества этого подхода:
Продакт всегда может узнать, что происходит на уровне исполнителей, не общаясь с другими менеджерами.
Разработчик может с другими исполнителями накидывать продакту обратную связь и пожелания.
А ещё разработчик может попробовать себя в роли менеджера, прокачать новые скиллы.
Поэтому для себя я вывел такую суть: фичекрайний — это просто тот, кто помогает доставить фичу. Всё. А что конкретно делать, знает только этот самый человек в конкретный момент времени для этой конкретной фичи.
![](https://habrastorage.org/getpro/habr/upload_files/f62/856/ef3/f62856ef3ff36fae4a1c7e175422909d.png)
Но как начинающий фичекрайний я этого не знал. И тем более не мог сформулировать ожидания от своей работы: как для коллег, так и для себя самого. Получилась размытая ответственность, от которой мне было очень сложно в самом начале.
Доставляем фичу
Многие знакомы с эффектом Даннинга-Крюгера — кривая на графике показывает, насколько меняется уверенность человека в себе при накоплении опыта. У этой кривой четыре основные стадии, которые проходят практически все. Эти стадии я прошёл за 16 месяцев.
![](https://habrastorage.org/getpro/habr/upload_files/65f/cdf/020/65fcdf020000cd13df2f00cc955ffd97.png)
Первая стадия: «Ого, прикольно!»
На этой стадии я, молодой фичекрайний, объединился с другими опытными разработчиками и менеджерами, чтобы вместе продумать, как реализовать новую фичу. Это была интенсивная и драйвовая работа, полная экспериментов, аналитики и планирования. На этом этапе мы изучали нормативные документы о строительстве дорог в России. Спойлер: их редко используют. На этой же стадии я проходил наш внутренний курс фичекрайних: узнавал, как управлять проектами и учился навыкам ведения переговоров.
![](https://habrastorage.org/getpro/habr/upload_files/305/5ff/052/3055ff0522d2096d3dc0792312ae7662.png)
Всё круто, но есть нюанс: опыта ноль.
Например, я что-то узнал про фасилитацию: книжку прочитал, но навыками не овладел. Не знал, что стабильно будут нефиксироваться договорённости, не оговариваться дедлайны, не назначаться ответственные. Я думал, что все и всё сделают вовремя и хорошо. Если мы обсуждали что-то на встрече, то задача точно попала в планы нужной команды.
Но самое опасное, что случилось — «гиперответственность». Я считал, если принимаю решение о техническом виде фичи, то у меня должна быть самая полная техническая экспертность и, на всякий случай, нетехническая. Я должен точно знать, что делает любой код — иначе как мы будем решение принимать?
В голове начало формироваться ощущение, что я должен быть повсюду. Внутренний уровень высокой ответственности приводил к страху что-то упустить. И мозг подбросил «самое очевидное» решение — микроменеджмент.
![](https://habrastorage.org/getpro/habr/upload_files/460/0d6/96e/4600d696e96b6574819b2da47451d810.png)
Вторая стадия: «Блин, чота сложна»
На это стадии уже не так весело, эйфория от нового опыта спадает, а давление в это же время растёт. На горизонте проявлялись дедлайны. Это был нервёж и постоянное «страшно, страшно». И потихоньку начало всплывать всё, что по неопытности не учли в первой стадии.
![](https://habrastorage.org/getpro/habr/upload_files/feb/4d3/27e/feb4d327edc79bc58793bc51b21b7b9e.png)
Я как гиперответственный человек считал, что если ничего не получается, то это я косячу. И что же я делал? Ещё больше работал. Изо всех сил.
Все вопросы обязательно обговаривал голосом, работал по вечерам и выходным, когда все в рабочих чатах неактивны. И да, не забывал писать код, ведь техническая же экспертность только у фичекрайнего.
Вот так выглядело моё расписание:
![](https://habrastorage.org/getpro/habr/upload_files/4cf/8bc/24f/4cf8bc24f62858791233291e1fbb552a.png)
Я даже бронировал время на написание кода, но большая часть — созвоны, а остальное «решение очень важных вопросов в маттермосте, которые нельзя решить без меня». В таком режиме я жил где-то полгода.
И вот наш первый прототип дорог и разметки, которые мы генерировали из данных:
![Март 2023 года Март 2023 года](https://habrastorage.org/getpro/habr/upload_files/21a/8a9/dee/21a8a9dee51a51dfe9819bb598a23f0e.png)
Когда я впервые принёс этот прототип на синк команд, которые занимаются реалистичными картами, все были в восторге. Но вот как фича выглядела в конце апреля, при том что релиз ставили на май:
![Что-то пошло не так... Что-то пошло не так...](https://habrastorage.org/getpro/habr/upload_files/a8e/249/624/a8e2496243e0a2ab38ce1a3dd050525f.png)
Наш эксперимент не взлетел. Пришло понимание, что доставка фичи усложняется. И как бы ни хотелось сделать хорошо, сразу всё не получается. Так я попал на следующую стадию.
Третья стадия: «Чистилище»
![](https://habrastorage.org/getpro/habr/upload_files/ca8/d66/522/ca8d66522b5da4f0401abd17fbb42134.png)
Произошёл надлом: я понял, что ничего не понял. И не понимал, накосячил ли именно я и где накосячил. Из этого состояния было три выхода:
Сдаться. Выгореть и отстраниться от фичи.
Тащить, превозмогая. Взять волю в кулак, включить режим робота и дотащить.
Успокоиться и подумать. Просветиться, пытаться понять, что сделал не так, рефлексировать. Вспомнить про делегирование, прозрачные коммуникации, шаринг контекста.
А что, сразу нельзя было пойти по третьему пути? Нет, потому что не умел. Я наломал дров, фултайм занимался тушением пожаров и не замечал системные проблемы.
Мой цикл работы выглядел примерно так несколько месяцев:
![](https://habrastorage.org/getpro/habr/upload_files/831/330/b67/831330b6787c69203605e71b32c60a13.png)
Я был уверен, что нужно просто написать код. Но нет. Нужно было написать код, протестировать, отдать дизайнерам, опять протестировать, понять, что что-то забыли, переписать половину кода, протестировать. При этом команд много, и некоторые напрямую друг с другом даже не работали. И нужно было научиться работать такой большой компанией. Вместо этого я сидел и страдал.
Но потом случился отпуск, который изменил мою жизнь. Когда я вернулся, мне сказали, что без меня работа встала. Для меня показатель моей эффективности в качестве менеджера — это то, насколько работа продвигается и функционирует, даже когда меня нет. Я оказался плохим менеджером.
Мне дали на помощь двух пиэмов, с которыми цикл сразу преобразился:
![](https://habrastorage.org/getpro/habr/upload_files/df4/1ff/72c/df41ff72cfe95f188e92420f7dd9a4ee.png)
Вместе мы начали исправлять процессы, и это воодушевило меня.
Четвёртая стадия: «Всё будет хорошо»
В этот момент я как фичекрайний постиг истину: ах, вот как оно надо! Я учился оценивать свой труд, что делаю правильно, а что происходит не так. Удовольствие и драйв росли!
Пятая стадия: «Атлант расправил плечи»
Здесь я понял важность и крутость позиции фичекрайнего. Фичекрайний находится внизу пирамиды, но участвует в процессах, что позволяет видеть глубоко. Такой человек находится на стыке продуктовых хотелок и технических ограничений, что позволяет фичекрайнему:
Подсвечивать глубинные процессы на стыке интеграции.
Озвучивать, когда фичи технически идут совсем не туда.
Исправлять всё это в налаженных процессах.
![](https://habrastorage.org/getpro/habr/upload_files/a20/9fa/1d3/a209fa1d3c8411f5d27a63cc6912e89e.png)
Сейчас я считаю, что миссия фичекрайнего не просто доставить фичу, а доставлять лучше. Чтобы следующие фичи релизились лучше, красивее и дешевле. Я нашёл этот смысл для себя, и он мне приносит удовлетворение.
Как-то сложно, оно вообще надо?
Для меня единственный критерий, чтобы решиться стать фичекрайним — огромное желание. Если этого хочет руководитель или хочется пройти «очередной курс», то скорее всего, ничего не выйдет.
Быть фичекрайним — это не на пикник съездить. Но если гореть идеей — будет крутой опыт! Это возможность вложить существенный вклад в продукт, которые используют ваши близкие: ваши дети и семьи, может быть, в будущем и собаки.
В роли фичекрайнего разработчик прокачивается как инженер. Решать технические задачи с оглядкой на продукт — уровень синьора.
В конце добавлю: не нужно бояться. Не бойтесь ругаться с коллегами. Если этого нет, то скорее всего всем скучно и неинтересно, да и плевать на фичу. Не стоит бояться менеджерских книжек: там много базы, и нужно пропустить через себя этот опыт. Не стоит бояться задавать вопросы. Не нужно бояться ошибаться. Ошибки будут, и придётся их исправлять.
Всем ребятам, которые работали над дорогами — я вас очень-очень люблю, спасибо! ?
Комментарии (7)
Apoheliy
07.05.2024 10:38Собственно, основной вопрос: чем "фичекрайний" отличается от менеджера проекта обыкновенного?
Уж очень похоже, судя по описанию.
А если в роли фичекрайнего начинается ощущаться убыль программистских навыков (например, когда пытаешься что-то реализовать сам, вдруг ощущаешь, что навык-то просел: что-то в коде упустил, где-то сделал глупые ошибки) -
Вот тогда это точно: менеджер проекта обыкновенный.
sereje4kin
07.05.2024 10:38чем "фичекрайний" отличается от менеджера проекта обыкновенного?
Обычно — размером задачи. И тем, что фичекрайний — это роль, а не закреплённая обязанность.
tentecool
07.05.2024 10:38Прикольный подход. Как я понимаю, у вас нет в структуктуре какого-то проджекта, которого можно было бы сделать менежержским фичекрайним? Есть продакт, который стратегия и вижн, и есть команда исполнителей, из которой отбирается один фикрайний?
FurySeer
Использование дворового сленга - наследие времен, когда дубльгис располагался на левом берегу в Новосибирске, или это уже сбербанк постарался?
sereje4kin
Вас какие-то конкретные слова смутили?
FurySeer
После продажи сбербанку смущаться чем-либо кажется поздно, но да, уличное "крайний" вместо вариации на "ответственный" вызывает вопросы к культуре внутри компании.
Я далек от поддержки сугубо делового языка в командах и межкомандном пространстве. При этом сожалею, что всем нормально оставаться во дворе - с крайними, смотрящими, чушпанами (а что, подходящее имя сотруднику, чей проект закончился, и он в подвешенном состоянии, пока не подключится к новому).
Конечно же это "ничеготакого" - менеджер проекта не зажмет новичка, которому выписали первую премию, в туалете из-за того, что у вас в компании бывают крайние. Наверное, надеюсь. И все-таки
alexbutav
Крайний звучит так, как будто на человека "спихнули" фичу, как будто его вынудили быть ответственным. В тексте же говорится о том, что человек обладает желанием и инициативой вести её развитие, быть фичеведом.