Разработка успешного продукта не кросс-функциональной командой

23.01.25

Управление проектом - Инструменты управления проектом

Когда команда начинает применять в разработке продукта гибкие методологии, возникает масса вопросов – подойдет ли Scrum, как организовать структуру Kanban-доски, как сбалансировать загрузку команды и вовлечь всех участников в развитие продукта. Расскажем об организации слаженной работы не кросс-функциональной команды и опыте применения гибких методологий в продуктовой разработке.

Меня зовут Екатерина Александрова, я продакт-менеджер решения EmplDocs.

Основной продукт компании - портал для автоматизации кадровых процессов и самообслуживания сотрудников с использованием КЭДО «EmplDocs». Причем со стороны бэкенда наше решение использует расширение 1С, поэтому бесшовно интегрируется с 1C:ЗУП и 1С:ERP, а со стороны фронта – веб-приложение на Angular.

Расскажу про наш опыт взаимодействия, про организацию работы не кросс-функциональной команды, про опыт проведения командных встреч (дейли, ретро), как устроена доска задач и как проводить встречи по наполнению, обзорам.

 

Scrum или Kanban

 

 

Если вы думаете, что работаете по фремворку Scrum, то иногда вы можете ошибаться. Если в течении спринта ваш руководитель просит взять объемную задачу, потому что клиенту «очень нужно» – это не совсем Scrum. В Scrum, если спринт распланирован, в него нельзя добавлять задачи – вы уже взяли обязательства, и их нужно выполнить.

Наша команда – гибкая, поэтому мы работаем в рамках каденций Kanban. Мы тоже берем на себя обязательства за определенный перечень задач, но при определенных условиях можем все переиграть или сместить приоритеты – например, если изменилось законодательство или нужно быстро взять в работу другую задачу.

Вот чем кардинально отличаются методологии.

 

 

При переходе на гибкую методологию как такового продукта еще не существовало – мы были просто командой сервис-деска, и просто решали задачи, которые нам ставили.

Когда задумались о продуктовом подходе, то первый инструмент, который подключили в работе – была доска задач из методологии Kanban.

 

 

Мы собрались вместе с командой и решили, как будет выглядеть доска задач – визуализировали на ней существующий процесс, ничего в нем не меняя, чтобы команда не стрессовала.

В качестве системы для визуализации и согласования наименования статусов первоначальной доски использовали Confluence.

 

 

Важная особенность Kanban – любой процесс разделен на Discovery и Delivery.

В части Discovery по задаче принимаем решение: “готовы ли мы взять ее в работу?”, “несет ли она какую либо ценность для продукта,”зачем мы будем это делать?”.

Delivery - отражен сам процесс реализации задачи. При перемещении задачи с процесса Discovery в Delivery, команда берёт на себя обязательство, что сделает задачу как можно быстрее. В этот момент возникает «Точка принятия обязательств». Такое разделение позволяет максимально быстро выполнять обязательства и отдавать пользователю/бизнес-заказчику готовую функциональность.

На этом слайде показано, как выглядела левая часть нашей первоначальной доски.

 

А примерно так выглядела ее правая часть.

 

В дальнейшем после начала работы по Kanban мы обсуждали все пожелания к внешнему виду этой доски на совместных встречах-ретроспективах.

Например, когда к нашей команде присоединился новый коллега, с новой ролью– дизайнер, мы добавили на доску статус «Дизайн». Этот статус позволял после анализа требований ставить задачи на дизайнера. Точнее, дизайнер самостоятельно вытягивал задачи в работу, поскольку Kanban – это вытягивающая система.

Кроме того, на одной из ретроспектив мы выявили еще одну проблему. Поскольку наша команда не была кросс-функциональной, возникла необходимость сбалансировать загрузку между бэкенд и фронтенд-разработкой, потому что ранее единый статус «Разработка» не позволял определить, кто из разработчиков перегружен. На встрече было решено разделить этот статус на два: «Разработка Back» и «Разработка Front», добавив для каждого свои WIP-лимиты, чтобы ограничить объем задач, которые разработчики могли выполнять одновременно. Это решило проблему, когда, например, 1С-разработка (наши бэкенд-разработчики) простаивали, а фронтенд-разработка перегружена или ожидает задачи со стороны бэкендеров.

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

 

Как сейчас выглядит доска задач

 

На слайде показано, как доска задач выглядит сейчас – для управления задачами мы используем Jira.

На доске видно, что количество задач в статусах ANALYSES и FRONT IN PROGRESS превысило WIP-лимиты. Но, поскольку один человек в один момент времени может работать только над одной задачей, максимум над двумя – вторая может быть в блоке или в обратной связи, то при превышении лимитов, о которых вы договорились с командой ранее, необходимо провести анализ, почему это происходит.

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

 

Проведение Daily

 

 

Следующее, что было сделано при переходе на гибкие методологии – проведение дейли. Вначале проводили их раз в неделю, затем перешли на ежедневные встречи, в процессе которых мы отвечаем на три вопроса:

  1. Что было сделано вчера?

  2. Что будет сделано сегодня?

  3. Есть ли какие-то блокировки в работе – сюда относятся те проблемы, которые возникают у команды, разработчиков, аналитиков, тестировщиков.

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

 

Ретро

 

 

Чтобы стать лучше, стали проводить ретроспективы – это взгляд на прошлое с точки зрения тех процессов, которые хотели бы улучшить в команде.

 

 

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

Стараемся не обсуждать негатив – не обвинять условного «Васю», что он что-то не так сделал. Обсуждение ведется всегда в позитивном ключе.

 

 

Вот так выглядит результат ретроспективы. Мы используем Miro – в него встроены специальные шаблоны, которые помогают проводить ретроспективы.

  • Вначале мы устраиваем небольшой разогрев – например, просим каждого участника команды выбрать смайл, описывающий своё отношение к продукту. Так мы настраиваем команду на работу по ретро-формату.

  • Далее анализируем, что было сделано по результатам прошлого ретро.

  • И выделяем несколько минут для выводов: что в предыдущем месяце было сделано хорошо, а что могло быть лучше. Важно всегда описывать эти процессы в позитивном ключе.

  • Далее команда накидывает идеи – какие мысли или инсайты им пришли в течение месяца.

  • И в конце мы принимаем решение, что наша команда может сделать лучше к следующему ретро.

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

 

Встречи по наполнению

 

Чтобы решить, что будем делать в рамках каденции и какую ценность принесем пользователю, мы организуем с бизнесом встречи по наполнению.

 

 

Для встреч по наполнению мы тоже используем доски, но это доски не для задач типа Task, а доски для задач типа UserStory.

 

Вот так выглядит процесс работы с UserStory – здесь также есть доски Discovery и Delivery, и переход между ними также является точкой принятия обязательств.

На встречах по наполнению мы решаем:

  • какие UserStory нам необходимо доисследовать к следующей встрече по наполнению;

  • а также решаем, что будем делать в текущей каденции с точки зрения разработки.

 

Примерно так выглядит карточка UserStory – на слайде скриншот из Jira.

Каждая UserStory несёт ключевую клиентскую ценность – без ценности будет сложно продать продукт бизнесу:

  • Во-первых, стейкхолдерам, которые верят в ваш продукт.

  • А во-вторых, клиентам – потому что если вы работаете с клиентами, вы должны заранее подумать, какую ключевую ценность будете им нести.

В UserStory вы описываете, что пользователь будет делать в рамках данной функциональности, и что он в итоге получит.

Например: в UserStory «Создание заявок по авансовым отчётам из ЛКС» у нас описано:

КАК СОТРУДНИК
ХОЧУ регистрировать все свои расходы в командировке через сервис ЛКС
ЧТОБЫ отчитаться по всем расходам в командировке и вернуть свои деньги.

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

Кроме клиентской ценности важно определиться с критериями готовности этой UserStory – когда будет считаться внутри вашей команды, что она выполнена. Критерии готовности по-другому называются Definition of Done, DoD. Причем на ретроспективах вы можете эти критерии готовности пересматривать вместе с командой.

Например, для веб-продукта критериями готовности может быть: разработка дизайна, разработка фронта, бэка, проведение тестирования и т.д. Набор критериев определяется командой.

 

 

Расскажу, как процесс наполнения для UserStory у нас организован в Jira.

 

 

В Jira настроены отдельные доски для процессов Discovery и Delivery.

Причем изначально на доске Discovery свимлайны change и run были настроены в разрезе всех продуктов, которые у нас есть:

  • В свимлайн change попадали все UserStory, которые несут клиентскую ценность – то, что можно попробовать и пощупать.

  • А свимлайн run – это то, что не видно пользователям, но это то, что сделает продукт лучше с технической точки зрения или повысит качество обслуживания. Или, возможно, какая-то функциональность станет разрабатываться быстрее. Например, когда на стороне веб-разработки мы сделали свой конструктор заявок, тем самым теперь разработчикам не нужно подключаться и дорабатывать каждую заявку – это все настраивается в пользовательском режиме. Тем самым мы несем ценность через технические фичи, но опосредованно даем пользовательскую ценность.

 

 

Когда нас в команде стало более 15 человек, и мы решили разделиться на две команды, нам стало сложно управлять свимлайнами в разрезе change и run.

Плюс продуктов стало больше – появился «Портал кандидата», мобильное приложение и Cloud-версия. Поэтому приняли решение сменить свимлайны change и run на продуктовые направления: EmplDocs, Portal, Mobile, Cloud. Таким образом сформировали понимание, что мы делаем по тому или иному продукту.

Еще один момент – когда разделяли UserStory только на свимлайны change и run, не всегда получалось продать бизнесу идею, зачем нужно что-то улучшать с технической точки зрения. При переходе на продукты это стало намного проще, потому что так получается лучше описывать ключевую пользовательскую ценность, которую бизнес может в итоге оценить. А поскольку бизнес всегда все оценивает в цифрах, это можно и подсчитать.

 

 

На слайде – скриншот еще одной доски EmplDocs_integrarion, которая у нас появилась совсем недавно.

Так как мы сейчас активно наращиваем клиентскую базу и в рамках продукта есть некоторые кастомные решения, которые дорабатываем именно с точки зрения продуктового развития, мы дополнительно настроили доску EmplDocs_integrarion, куда относим UserStory, касающиеся:

  • пресейлов при работе с клиентами;

  • интеграций;

  • задач по подключению сервиса;

  • и вынесли туда же техподдержку.

Это все происходит на отдельной доске, чтобы нам было более эффективно, более понятно и прозрачно наполняться на встречах по наполнению.

 

 

Чтобы во время встречи по наполнению понять, что хватает задач на всех участников команды, и вся команда будет загружена на ближайшую каденцию, мы считаем Team Capacity, т.е. загрузку команды.

Причем есть варианты расчета Team Capacity в рамках трудочасов или в стори-поинтах.

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

 

Поэтому мы отказались от оценки трудочасах и перешли на Story Points – они намного проще в оценке.

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

В результате сейчас планирование тех UserStory, которые мы берём на встрече по наполнению, стало намного проще и прозрачнее.

Когда я показывала доску EmplDocs_Integration, вы могли видеть на ней UserStory, которая относится к поддержке продукта – на каждый спринт мы эту UserStory оцениваем в определенном количестве стори-поинтов.

 

 

На слайде показаны таски на доске тасков, которые мы и делаем в в рамках этой UserStory по техподдержке. Сюда относим:

  • таски, которые приходят к нам на доску от первой линии поддержки с темами «БЛОК» или «КОНС» (ошибка или консультация) – привязываем эти задачки к UserStory по техподдержке;

  • и идеи, которые приходят от клиентов – их мы аккумулируем в рамках этой же доски тасков и рассматриваем на дополнительных встречах, решая, что будет отдельной UserStory, а что нет. Например, если это небольшая задача до 8 часов, мы протягиваем эту задачу в рамках нашей поддержки. Если же это большая задача, на которую требуется несколько недель, то, конечно, такие таски у нас превращаются в отдельные UserStory.

 

 

Ранее упоминала, что Kanban - это вытягивающая система, поэтому на встречах по наполнению мы вытягиваем задачи из статуса BACKLOG в Очередь, которые планируем делать в следующуюу каденцию. С этой целью у нас хитро настроена доска Delivery.
В Jira, которую мы используем в качестве трекер-системы, для доски Delivery в разделе Column management включили переключатель «Epic panel».

В этом случае становится активной вкладка «Kanban backlog» – в ее рамках можно настраивать те статусы, из которых вы будете наполняться.

В данном случае здесь один статус – BACKLOG, но можно перетащить сюда и другие статусы.

 

 

После выполнения такой настройки доска управления UserStory приобретает вид, как на слайде.

В этом случае, когда вы на встрече по наполнению будете обсуждать дальнейшие действия со стейкхолдерами и ключевыми пользователями – наполнять каденцию на те стори-поинты или на то capacity, которое посчитали – вы будете из статуса Backlog вытягивать задачи в очередь, переводить в статус Queue.

Это визуально понятно и прозрачно покажет, что вы планируете делать в ближайший спринт, не только для вас, но и для команды, а также для бизнеса – для ключевых пользователей.

Важно: поскольку у нас не кросс-функциональная команда, мы иногда помечаем UserStory, которые касаются или только разработки на стороне веба, или 1С. В таком случае нам проще рассчитывать наши ресурсы в разрезе ролей исполнителей.

 

Подготовка к релизу: встречи по обзору, подготовка документации, сборка

 

 

В конце каденции вместе с командой и бизнесом проводим встречу по обзору.

 

 

Для этого используем формат демо-презентации – каждый участник команды показывает, что полезного было сделано для продукта в рамках этой каденции.

Выступают не только аналитики, но и разработчики. И это очень хорошая практика.

Конечно, самый лучший формат проведения встречи по обзору – это когда вы к ней уже подготовите релиз, чтобы присутствующие пользователи могли его «пощупать» и дать обратную связь.

Но поскольку у нас продукт сложный и с нюансами, заранее подготовить релиз к встрече получается не всегда. Поэтому используем формат встречи по обзору – в виде демонстрации, по результатам которой уже перетаскиваем то, что у нас было реализовано, из «Разработки» (статус IN PROGRESS) в «Релиз» (статус IN RELEASE).

 

 

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

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

При этом разработчики обращают внимание на метки Current или LTS, потому что у нас есть две версии продукта – LTS и Current:

  • LTS – это версия с более длительной поддержкой, где мы правим только баги.

  • а Current – это версия с новой функциональностью.

Поэтому когда мы готовимся к релизу, обращаем внимание на эти метки.

Если у задачи стоит метка Current и второй приоритет, можем принять решение, что это некритично для выпуска релиза, и даже ее отложить на следующий релиз – это решается командно на дейли.

 

 

В релиз попадут не только фичи, но и исправления багов и доработки – поэтому в рамках Confluence мы создаем страницу, где описываем, что будет включенов релиз.

  • Фичи мы привязываем к UserStory.

  • А доработки и баги у нас чаще всего относятся к небольшим таскам, которые мы выполнили в процессе каденции.

Еще один момент – привязываем к фиче не только UserStory, но и инструкции.

 

 

У нас есть специальный ресурс GitBook, в рамках которого документируем, что сделали – не только с точки зрения функциональности для сотрудников или кадровых специалистов, но и в виде подробной документации для технических специалистов.

Это полностью открытый ресурс, где можно посмотреть, как устроен наш продукт – мы ничего не скрываем.

В рамках релизов мы также публикуем официальные релизноты.

Если в Confluence мы пишем черновые заготовки, то в GitBook мы пишем реально то, что отдадим клиентам и нашим пользователям с точки зрения ролей, которые представлены в продукте:

  • сотрудникам и руководителям;

  • кадровому специалисту;

  • и техническим специалистам.

 

 

Важно: в Jira есть бесплатный плагин по выпуску релизов – Releases.

В нашем подразделении каждая команда работает в отдельном проекте Jira. И когда мы попробовали работать с плагином Releases, разделившись на две команды, оказалось, что он не подразумевает выпуска версий продукта в рамках двух проектов Jira.

 

 

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

 

 

И второй нюанс-неудобство – приходилось к каждой версии прикреплять те задачи и UserStory, которые выпускаем в рамках релиза. Это вообще неудобно.

Поэтому пока отказались от этого плагина и формируем релизы вручную. Но имейте в виду, что такой плагин есть, и возможно, он вам подойдет.

 

Что важно при переходе на продуктовый подход?

 

 

Как итог – с чего я бы начала, если бы заранее знала о тех трудностях, с которыми столкнется наша команда при переходе на Agile и продуктовый подход:

  1. Укомплектовать команду – без команды продукт не будет разработан.

  2. Определиться со статусами, которые планируются использовать на доске задач. Статусы следует согласовать с командой и, в случае возникновения вопросов, обсуждать их на ретроспективах. Так команда становится намного более открытой и сплоченной.

  3. Добавить WIP-лимиты – ограничения одномоментной работы над задачами. Желательно донести команде важность соблюдения WIP-лимитов, чтобы можно было понять, над какими задачами сотрудник работает и решать вопросы загрузки в моменте, а не по итогу каденции или квартала.

  4. Начать проводить дейли и ретроспективы.

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

  6. Готовиться к встречам по наполнению и слушать команду. На встречах по наполнению вы можете продвигать не только идеи для бизнеса, но и те, которые нужны команде – это тоже важно. Например, если команда хочет провести рефакторинг или перейти на EDT, важно подсветить те ключевые ценности, которые могут показать, что это важно не только для команды, но и для бизнеса – по итогу с течением времени.

 

Вопросы и ответы

 

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

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

Идеи и предложения, озвученные на ретроспективе, мы превращаем в таски или UserStory – в зависимости от того, насколько большая идея.

А если это техническая идея, у нас есть CTO продукта – мы с ним также встречаемся каждую неделю и обсуждаем технические проблемы, которые у нас возникают.

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART Анализ & Управление в ИТ-проектах.

См. также

Продуктовый подход Бесплатно (free)

В сфере 1С все чаще появляется новая роль – Product Owner или менеджер/руководитель продукта. Но у большинства компаний до сих пор нет общего понимания, что это такое. Одни говорят, что для руководителя продукта главное – сильные Soft Skills, другие выступают за математическое мышление и аналитику, третьи – за технические навыки. Расскажем об основных обязанностях, карте коммуникаций, навыках и личных качествах, необходимых для роли продукт-оунера.

22.01.2025    230    0    JBulanova    0    

2

Продуктовый подход Бесплатно (free)

Казалось бы, продуктовый подход и инхаус-разработка – понятия несовместимые. Однако если разбить конфигурацию 1С на продукты, вовлечь бизнес в совместную работу с ИТ и по каждому направлению измерить процесс разработки и его результаты, можно найти «бутылочные горлышки», оптимизировать их и прийти к взаимопониманию с бизнесом по поводу возможностей команды. Расскажем о том, как продуктовый подход помог выстроить процессы в инхаус-разработке.

14.01.2025    899    0    Fejerverk    2    

14

Инструменты управления проектом Канбан и поставка ценности Бесплатно (free)

Постоянное разграничивание документации для разработчиков и пользовательских инструкций зачастую приводит к полной неразберихе. К тому же ведение документации и учета задач обычно ведется в разных системах. Расскажем о том, как восстановить правдивую картину проделанных работ и создать структурированную систему управления документацией с использованием JIRA и Confluence на базе конфигурации Управление задачами.

10.01.2025    3313    0    VKuser161765031    2    

6

Личная эффективность Продуктовый подход Работа с заинтересованными сторонами Бесплатно (free)

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

18.11.2024    357    0    Radio_Analyst    0    

2

Продуктовый подход Кейсы продуктов Бесплатно (free)

В пятом выпуске третьего сезона подкаста Радио “Аналитик“ обсудили, что важно знать и уметь аналитикам для работы с 1С:ERP, поговорили про историю развития 1С:ERP и планы на будущее.

08.11.2024    420    0    Radio_Analyst    0    

3

Продуктовый подход Бесплатно (free)

В четвертом выпуске третьего сезона подкаста Радио “Аналитик“ обсудили, что такое метрики, для чего они нужны в B2B и B2C приложениях и как с ними работать.

21.10.2024    351    0    Radio_Analyst    0    

5

Инструменты управления проектом Бесплатно (free)

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

19.09.2024    1263    0    Dangien    3    

6

Инструменты управления проектом Внедрение изменений Бесплатно (free)

Кризисная ситуация характерна тем, что привычные средства, методы и окружение меняются. Но эти изменения приносят с собой не только потери, но и новые возможности. Об опыте принятия решений в критических точках проекта расскажем в статье.

12.09.2024    490    0    ermakovalekseyv    0    

2
Оставьте свое сообщение