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

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С сложно – не хватает средств гибкой визуализации, недостаточно производительности для анализа и расчетов в реальном времени, недоступны многопоточные вычисления в режиме in-memory. Расскажем о том, как интегрировать APS-систему с 1С:ERP УХ, спрятав ее за фасадом привычного 1С-интерфейса.

20.02.2025    399    0    user1934826    1    

2

Удобство использования (UX) Продуктовый подход Анализ предметной области Бесплатно (free)

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

27.01.2025    262    0    Radio_Analyst    0    

2

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

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

22.01.2025    442    0    JBulanova    0    

3

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

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

14.01.2025    1150    0    Fejerverk    2    

14

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

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

10.01.2025    3524    0    VKuser161765031    2    

6

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

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

18.11.2024    437    0    Radio_Analyst    0    

2

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

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

08.11.2024    484    0    Radio_Analyst    0    

3

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

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

21.10.2024    389    0    Radio_Analyst    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RailMen 829 28.01.25 16:36 Сейчас в теме
Не плохо бы расписать роли: Зайчика и Волка
И зоны их ответственности

А то ведь Волк может вместо "Все будет готово" абсолютно справедливо блокировать Зайчика.
Оставьте свое сообщение