Мысли кросс-функционально. Как мы прокачали скорость и гибкость разработки
В Spotify за два года команда разработки выросла в 8 раз — с 30 до 250 инженеров. Чтобы разработать удобную модель управления разработкой, компания провела эксперимент и объединила разных специалистов в одной команде под предводительством продакт-менеджера или продакт-оунера. Такая команда могла решить почти все задачи без привлечения дополнительной экспертизы со стороны. К тому же делала это быстрее, так как вся коммуникация была сосредоточена внутри команды.
Эксперимент оказался успешным, и вскоре Spotify полностью перешёл на эту модель взаимодействия. А мы взяли их идею за основу и создали свой формат кросс-функционального взаимодействия для Lamoda Tech — VTeams.
VTeams или Virtual Teams — это кросс-функциональные команды, которые собираются для реализации определенной задачи: бизнес-стрима, продуктового или технического проекта.
В состав одной VTeam входят несколько специалистов, которые необходимы для реализации проекта. Обычно это продакт-менеджер, разработчики разных стеков, дизайнер, QA, системный аналитик.
Работа в vTeams обеспечивает нам гибкость в управлении ресурсами и скорость вывода новой функциональности в прод. Теперь проектам не нужно дожидаться своей очереди в бэклоге конкретной системы — например, доставки, оплаты или b2b-платформы. В рамках одного проекта команды сами могут вносить туда изменения.
Стримы
Сейчас в Lamoda Tech около 30 команд, которые бывают двух типов: Flex и Solid.
Flex — это продуктовые стримы. Например, персонализация, навигация, команда лояльности. Туда попадают проекты, которые направлены на достижение определённых продуктовых метрик.
Solid — это большие проекты, например, FC2 (открытие второго склада).
Главное отличие Flex от Solid: Solid-команды следуют строго по плану, Flex-команды ориентированы на достижение продуктовых целей. Чтобы понять, как дальше стоит развивать продукт, Flex-команды постоянно запускают эксперименты. Если результат эксперимента не соответствует нашим ожиданиям, бэклог задач и направление развития продукта могут поменяться.
Состав команд
Мы следуем квартальному планированию, поэтому каждый квартал продакт-менеджеры презентуют свой план действий и запрашивают необходимый набор ресурсов для того, чтобы их реализовать.
Состав команд может быть очень разный в зависимости от жизненного цикла проекта. Например, на начальном этапе команда может ограничиваться только техлидом и системным аналитиком. Когда проект находится в активной фазе развития, то в команде собирается весь состав необходимых ресурсов разных специальностей. Чаще всего в оптимальном составе команды находится по 2 и более разработчика одного стека, чтобы обеспечить взаимозаменяемость и митигировать риски.
Жизненный цикл VTeams — от одного до нескольких кварталов. Сейчас состав команд с продолжительным жизненным циклом меняется редко, только если требуется дополнительное количество ресурсов или кто-то покидает компанию.
Процессы
В зависимости от целей, Project manager выстраивает процессы, в которых команда работает максимально комфортно и эффективно (Scrum, kanban, waterfall и т.д.). При этом у нас есть общие для всех правила и требования для внесения изменений в ключевые системы.Длина итерации зависит от специфики команды, но большинство придерживается двух недель.
На старте квартала продакт-менеджер формирует бэклог, затем команда проводит груминг и оценку задач, обозначает сроки.
После этого собирается документ, который содержит информацию о целях, сроках и этапах. Каждая команда обновляет его раз в неделю, чтобы прогресс был прозрачен для всех сотрудников.
Что изменилось
Изменения в процессах позволили нам сделать разработку прогнозируемой и гибкой. Если мы понимаем, что что-то идёт не так, то всегда можем развернуться на 180 градусов. А ещё переход на VTeams способствовал появлению технических сообществ (Go, Java, iOS, Android и др.) и системных лидов, которые отвечают за техническую экспертизу в рамках одного стека. Кажется, что сейчас мы обмениваемся знаниями друг с другом чаще, чем когда мы работали в функциональных командах.