8.5.24

Мысли кросс-функционально. Как мы прокачали скорость и гибкость разработки

Мысли кросс-функционально. Как мы прокачали скорость и гибкость разработки
No items found.

В 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 и др.) и системных лидов, которые отвечают за техническую экспертизу в рамках одного стека. Кажется, что сейчас мы обмениваемся знаниями друг с другом чаще, чем когда мы работали в функциональных командах.

Eщё про команду:
C PHP/Python на Go: как мы помогаем разработчикам (почти) безболезненно сменить стек
C PHP/Python на Go: как мы помогаем разработчикам (почти) безболезненно сменить стек
Команда Golang-разработчиков
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Go в тулинг! Какие внутренние инструменты мы пишем на Go
Go в тулинг! Какие внутренние инструменты мы пишем на Go
Команда Golang-разработчиков
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Чем живёт IT-комьюнити в Lamoda Tech
Чем живёт IT-комьюнити в Lamoda Tech
Команда Golang-разработчиков
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Главное о команде Golang-разработчиков
Главное о команде Golang-разработчиков
Команда Golang-разработчиков
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Почитать о других:
Work hard party hard: как мы сняли самолёт и улетели на корпоратив в Сочи
Work hard party hard: как мы сняли самолёт и улетели на корпоратив в Сочи
Команда Digital маркетологов
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Главное о команде
Главное о команде
Команда архитекторов ПО
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Как мы придумали внутренний хакатон
Как мы придумали внутренний хакатон
Команда разработки внутрибанковского ПО
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Главное о команде
Главное о команде
Команда технического департамента
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Круги неколлег: как устроена холакратия в Точке
Круги неколлег: как устроена холакратия в Точке
Команда React-разработчиков
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Как мы настроили каталогизацию дашбордов и стримов
Как мы настроили каталогизацию дашбордов и стримов
Команда BI платформы
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.