TL;DR: Здесь о том, как одна команда управленцев от разработки захотела жить по-другому, сформулировала образ будущего, прониклась устремлением, приспособилась выкраивать время и проводить изменения даже когда накрывает авралами.
Привет всем!
Я - Дмитрий Денисов, отвечаю за продуктовую разработку в компании, имя которой не столь важно в контексте этой статьи.
На протяжении ~5 лет наша команда пилит системный софт. В первое время это было очень похоже на заказную разработку под единственного клиента, а о результативности судили лишь по тому, оказывался ли этот клиент удовлетворён (или не оказывался).
Но чем более взрослым становился продукт, чем больше к нему становился интерес со стороны рынка, тем острее вставали вопросы, насколько прогнозируемо и управляемо он развивается. Собственно, для их решения пару лет назад я и пришёл в компанию.
В первый год из этих двух мы довольно круто приросли по фичам, хоть и вывезли с языками на плечах. В том числе благодаря этому росту нас стали заметно чаще звать в конкурсы (работаем в крупном B2B со сделками длиною в несколько кварталов). И было ясно, что дальше будет только интереснее.
Одновременно с ростом ожиданий от продукта, всё чаще вставали вопросы зрелости команды и того, как она делает свою работу. Здесь про всё сразу: начиная с бас-фактора и готовности к масштабированию, заканчивая регуляторикой.
Разумеется, эффект первого года был не потому, что якобы раньше люди кодили медленно, а потом вдруг начали быстро. За это время мы выстроили гигиенически необходимые продуктовые подходы, командную работу, запустили и оттюнили базовые воркфлоу.
Вроде бы всё как минимум неплохо, но большинство этих изменений проводилось, во-первых, полудирективно, а во-вторых, только когда удавалось выдохнуть от рутины. А хотелось с одной стороны системности и поступательности, с другой - полной вовлечённости на уровне как минимум лидов, с третьей - независимости от перманентного пуша со стороны варяга-манагера (то бишь меня).
Пусть не с первого раза, но у нас родился подход, который...
не загнулся за ~полгода боевого применения,
даёт результаты, очень похожие на то, ради чего всё затевалось,
удовлетворяет озвученным чуть выше критериям: системность, поступательность, вовлечённость и децентрализация.
Для начала разложим его на этапы (в которых ничего экстраординарного), а ниже подробнее остановлюсь на каждом из них:
собрать группу особо неравнодушных,
сформулировать себе цели,
декомпозировать цели так, чтобы они стали достижимы,
собственно, достигать, не взирая на обстоятельства.
Могучая кучка
Команда у нас не слишком большая, в районе 40 человек, к тому же состоящая частично из аутстаферов (но постоянных и очень вовлечённых). И мы хорошо представляли, у кого чего болит и что друг от друга ожидать.
Так почти сама собой подобралась группа пятерых, готовых выныривать из операционки и воплощать светлое будущее: CPO, QA-лид, один из дев-лидов, проджект-менеджер и я.
За 5 месяцев один участник выбыл, другой прибыл.
Ставим цели
Выделили шесть главных направлений (позднее стало семь) и коротко, одной фразой, сформулировали сверхцели по каждому из направлений.
Следующим шагом нужно было конкретизировать эти сверхцели на горизонте +9 месяцев (столько оставалось до конца финансового года компании). Поэтому по каждой сверхцели мы сформулировали три варианта образа будущего.
И здесь важно подробнее остановиться на двух вещах:
"Образ будущего" - это definition of done. Как наша жизнь будет выглядеть для условного стороннего наблюдателя. И какими характеристиками (качественными и количественными) обладать. А вовсе не то, какие действия нужно выполнить, какие задачи решить и т.д. Действия и задачи будут тоже, но позже.
Почему версии - три.
Первая - это то, куда придём, если продолжим жить "как сейчас". Условно, это то, ниже чего никак и ни при каких условиях нельзя провалиться, ибо это будет чистой воды деградация. В нашей терминологии это уровень ленивца.
Вторая - что получим, применив достаточно высокую, но всё ещё разумную долю амбициозности и упорства. Неслабо так напряжёмся, но пупок ещё не надорвём. В нашей терминологии - уровень здорового человека.
Третья - то, к чему могли бы прийти, отвергнув всё мирское и посвятив достижению сверхцели себя без остатка. Как на освободительной войне. Назвали это уровнем бога. Он важен, чтобы лучше видеть, как же далеки мы от идеала на самом деле. И чтобы не расслабляться, если уровень здорового человека вдруг окажется слишком лёгок.
Далее мы согласились, что уровень здорового человека - это то, что при реалистичном взгляде нас более чем устроит. На том и сосредоточились.
Декомпозируем цели
Видение на 9 месяцев вперёд - это здорово и, казалось бы, надо теперь засучить рукава и превратить его в реальность.
Сначала разложили видение на три квартала, остававшихся до часа Х. По сути, для каждого DoD'а выделили по две промежуточные вехи. Вехи могли включать как поочерёдное выполнение целей, так и инкрементальное, когда цель крупная и выполняется постепенно.
Также, кое-где рядом с целями оказался "контроль установления привычек": это когда практика уже введена в обиход, но на протяжении некоторого времени нужно последить за тем, чтобы она не усохла.
Описаний образа будущего там было по-прежнему много, но они стали более конкретными, плюс начали проступать некие экшны. Получился микс в пропорции где-то два к одному.
Ну и, наконец, первый из трёх кварталов по тому же принципу разложили по месяцам.
В результате получились довольно подробные цели на ближайшие 3 месяца, приблизительные - ещё на 3 и на 6. И, в качестве путеводной звезды, карточка с уровнем бога. На этом стратегия закончилась, переходим к тактике.
Фигачим
Итак, цели разбиты по крупным итерациям. Выглядело логичным двигаться итерациями и при их достижении. Нам привычен ритм двухнедельных спринтов, которыми живут наши команды. И в остальном мы зачастую меряем жизнь не календарными неделями или месяцами, а спринтами по 2 недели.
Но, во-первых, не очевиден смысл делить таким образом месяцы.
Во-вторых, у "могучей кучки" очень много операционки с командами, а некоторые вовлечены ещё и в бурную жизнь нашего бизнеса. Угадать загрузку на две недели вперёд практически нереально.
В-третьих, было серьёзное опасение, что если синхронизироваться по целям развития всего лишь раз в две недели, то утеряем фокус и привычно съедем в операционку.
Поэтому спринты развития (назвали их MNG) сделали недельными.
Каждый четверг - стандартный ритуал на 1,5-2,5 часа:
ревьюим прошедший MNG-спринт,
проводим ретро,
отбираем из карточек текущего месяца цели на новый спринт,
обсуждаем необходимые и достаточные решения,
заводим таски,
запускаем новый спринт.
Инструментарий довольно ординарный: проект в Jira, а эпики - это цели уровня квартала. Да, таски пока никак не оцениваем, как-то сами собой пришли к консенсусу, что ради развития можно и поовертаймить при необходимости. Пока это работает.
Формальных ролей в нашей MNG-команде нет, но для каждой сверхцели найдётся хотя бы один из нас, кто фактически выступает product owner'ом, а фасилитация на мне. Таски делают абсолютно все. Либо своими руками, либо привлекая кого-то внутри могучей кучки или за её пределами (но ответственность за таск всё равно на том, кто взял его себе в спринт).
Каждое (почти) утро - стандартный дейли стендап синк на 3-5 минут. И с этим связан ещё один момент, о котором хочется рассказать.
Поначалу было сложно фокусироваться на задачах MNG, рутина захлёстывала. И периодически случалось, что про таски MNG-спринта на дейли стендапе рассказать и нечего. И тогда мы решили... а почему бы не докидывать в MNG-спринт и рутинные задачи? Пару спринтов так пожили, но на одной из ретроспектив договорились всё-таки так больше не делать: реальный прогресс по MNG-целям терялся за видимостью бурной деятельности и бесконечными влётами.
Ну и понятно, что по итогу каждого месяца красим карточки в зависимости от успешности достижения того, что на них написано. И, если квартал подошёл к концу, декомпозируем на месяцы следующий, заодно проверяя цели и приоритеты на актуальность.
Что сейчас
Напомню, до финала текущего забега осталось ещё 4 месяца, едва-едва перевалили через экватор.
Определённо можно сказать, что подход себя оправдывает. Не смотря на то, что время от времени нас всех смывает в очередной аврал, прогресс в части суперцелей виден невооружённым взглядом, а кое-где даже опережает ожидания: сильно подтянули планирование продуктов, релиз-менеджмент, уверенно движемся к победе над хаосом в пресейле и саппорте.
Но есть цели, на которые, по большому счёту, забили, не получив поддержки от материнской компании там, где только своими силами точно не справимся (например, в упорядочивании регуляторики и рекрутинге).
Если говорить по всем целям в общем, то кажется, что сейчас мы где-то в районе нижней границы уровня здорового человека. Кое-где всё же отстаём, помимо нескольких целей, отброшенных сознательно (о них см. выше).
Ещё один профит - сегодня у нас общее на пятерых видение того, куда бежим, зачем бежим и как бежим. Каждый транслирует видение тем, с кем общается. И недавний уход одного из участников не привёл к параличу по тем целям, которыми он занимался. Быстро нашлись те, кто смог подхватить практически бесшовно. Хотя, конечно, забот прибавилось всем.
Ну и, если поначалу были сомнения в реалистичности того, что мы себе навыдумывали на берегу, некоторая небольшая доля в свете глобальных изменений действительно потеряла актуальность, но основная часть оказалась более чем в точку.
Что дальше
Абсолютно однозначно, мы продолжим играть в эту игру.
В целом, штука выглядит, во-первых, легко масштабируемой на команду до ~10 человек. Во-вторых, универсальной относительно предметной области - никаких завязок только на управление разработкой в ней нету вообще.
В будущем хочется научиться понятно и нетрудозатратно сохранять логику декомпозиции каждой крупной цели, иначе за несколько месяцев детали теряются, приходится тратить время на их воссоздание. Также, всё-таки нужно приладить количественные оценки и замеры скорости. Но пока не придумалось, как сделать это правильно, учитывая многозадачность участников. И, в качестве "бантика", нужно развить контроль "привычек", ибо сейчас это просто карточки вперемежку с целями, которые оказываются на глазах на каждом спринт ревью. А кажется, что у них должен быть какой-то другой воркфлоу.
В статье я сознательно избегал прямых отсылок к известным фреймворкам. Разумеется, каждый из нас что-то где-то читал, слышал, видел и набивал собственные шишки. Но в целом, это чистой воды самоделка из заимствований, смазанных местным контекстом и собственным опытом. Текущая зрелость подхода такова, что всё эмпирически прилаживалось "по месту" без каких-либо теоретических изысканий. Далеко от совершенства и всего лишь полезно.
Потому я и сел за статью, чтобы сублимировать опыт и продвинуться в осознании, за счёт чего эта штука работает и куда её двигать дальше. Очень жду комментариев и рассчитываю на критику и мнения со стороны.