- PVSM.RU - https://www.pvsm.ru -

Я — PM в сервисе рассылок UniSender [1]. 6 лет назад я пришёл программистом, а теперь отвечаю за взаимодействие между командами продукта. Раньше наша разработка состояла из одной распределённой команды и у нас было 2 беды. Но не дураки и дороги, а задержки по спринтам и скучные стендапы на полчаса.
Расскажу, как мы их решили.
Как я уже говорил, у нас было 2 беды:
Некоторое время мы жили с этими проблемами, потом пробовали бороться.
Ожидаемого результата эти попытки не давали. Пришло понимание, что без радикальных изменений не обойтись.
Тут надо пару слов сказать о продукте.
Мы — SaaS-решение, доступное 24/7. Кроме видимой пользователям части — GUI — у нас есть еще большой пласт системной логики, который работает независимо от времени суток или политической ситуации в стране. То есть, разработка и обновление сервиса идет непрерывно, без остановки.
Первая масштабная революция случилась, когда мы поняли: «Scrum нам не подходит».
Решили переходить на Kanban. Мы, конечно, не Toyota и внедрять полную реализацию не стали. Поэтому «наш канбан» будет отличаться от «вашего канбана».

В двух словах о нашей версии:
При этом команда должна была делать спринт от начала и до конца. Это касалось и этапа тестирования: ошибки исправляли те же люди, которые работали над спринтом.
Результат.
Стендапы преобразились — на них ходило по одному представителю от каждой команды, которая работала над отдельным спринтом.
Результат.
Таким образом мы смогли решить критичные проблемы.
После перехода на Kanban у нас появилась выделенная frontend-команда, а в backend и продуктовой команде стало больше сотрудников. Взаимодействие между отделами усложнилось — над одним проектом могли работать несколько команд.
Одни проблемы мы решили, но на передний план вышли новые:
Некоторое время мы жили по новым правилам и боролись с новыми вызовами. Попробовали разные подходы и набили много шишек.
В итоге, мы снова начали подозревать, что что-то идет не так. Новой революции быть.
Мы проанализировали процессы от зарождения идеи до деплоя готовой реализации в прод. Посмотрели, как работают agile-методологии в других компаниях. Поняли, что наши подходы к процессу разработки были не такими уж и плохими.
Не нужно ломать работающую систему, нужно исправлять моменты, которые причиняют боль.
Вот, что мы изменили в процессе разработки.
Мы всё ещё оперировали понятием «спринта». Спринт — это «околодвухнедельный» скоуп работ для команды.
В чём плюс. Код не «протухает» и попадает на прод без существенных задержек. Если команда собирается делать спринт за 2 недели — нужно постараться, чтобы затянуть его до месяца.
Что можно улучшить. Часто «промахиваемся» с оценкой и спринты немного затягиваются. Время на работу над некоторыми спринтами изначально тяжело оценить (например, большой рефакторинг). Эту проблему нам предстоит решить.
Мы разбили одну большую команду на несколько команд поменьше. В каждую из них входят 2-3 разработчика и один выделенный QA. Сейчас команды стабильны и не меняются от проекта к проекту. Иногда люди переходят между командами для оптимизации составов или добавления требуемой экспертизы в команду. BA участвует в работе команды, но одновременно может вести 2-3 проекта.

Хотя отдыхаем всё равно одной командой)
При этом вся команда работает над одним проектом от начала и до его завершения. Один проект может состоять из нескольких спринтов.
В чём плюс.
Что можно улучшить. Хотелось бы полноценно ввести BA в команды. Это проблематично, потому что ВА обычно приступает к работе раньше остальной команды.
У команды в работе может быть не больше двух спринтов: «тот, который всё ещё на тесте» и «новый, который будем пилить». Как правило, после окончания разработки, все по мере освобождения начинают работу по новому спринту.
В чём плюс. Работа команды стала более предсказуемой, все знакомы с кодом и могут саппортить спринт во время тестирования. Участники стали реже переключаться между задачами, а сам процесс переключения теперь происходит быстрее.
Что можно улучшить. В идеале — у команды должен быть только один спринт в работе. Но пока идеальный мир — не наш мир.
Каждая команда на одну неделю становится избранной. Эта команда реагирует на все внешние раздражители: обращения других отделов, аномальное поведение сервиса, хотфиксы. Мы называем эту команду «Fireteam».
В чём плюс. Fireteam-неделя не засчитывается команде во времени спринта. В перерывах между тушением пожаров сотрудники могут сосредоточиться на своих задачах:
Недостаток. В fireteam-неделю жизнь команды очень насыщена событиями. Этих людей любят и знают в лицо все отделы, особенно техподдержка. Приходится постоянно переключаться между разными задачами: дебажить, вычитывать логи, пилить срочные задачи и тушить все пожары. Делать всё это нужно одновременно.
Мы ввели 2 типа стендапов:
В чём плюс.
Недостаток. Информацию до команды по прежнему доносит тимлид.
Таким образом, постепенно изменяя процесс мы решили большинство актуальных проблем:
Что ж, работаем дальше.

Автор: altersun
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/agile/313124
Ссылки в тексте:
[1] UniSender: https://www.unisender.com
[2] Источник: https://habr.com/ru/post/446074/?utm_campaign=446074
Нажмите здесь для печати.