Кросс-функциональность — обязательное свойство Scrum-команды. Идея простая: чтобы каждый спринт выдавать готовый инкремент, все нужные роли должны быть внутри команды.
Типичный состав кросс-функциональной команды для веб-продукта:
- 2–3 бэкенд-разработчика
- 1–2 фронтенд-разработчика
- 1 инженер по тестированию (QA)
- 1 дизайнер (часто частично, на 50%)
- 1 инженер по инфраструктуре (DevOps), по необходимости, на 25%
- плюс Product Owner и Scrum Master
Альтернатива — функциональные команды (только бэкенд, только фронтенд), где каждая новая возможность требует координации между несколькими командами. Это медленно и порождает взаимные блокировки.
- Делаете полноценный продукт с фронтендом, бэкендом и инфраструктурой
- Хотите уменьшить число межкомандных блокировок
- Можете выделить команде «своих» дизайнера и тестировщика
- Очень маленькая команда (2–3 человека) — каждый и так делает всё
- Узкоспециализированный домен (высокочастотная торговля, исследования в ML) — иногда специализация важнее кросс-функциональности
В компании 4 кросс-функциональные команды по 7 человек. Каждая делает свой эпик целиком: команда А — биллинг, команда Б — мобильное приложение, команда В — интеграции, команда Г — личный кабинет. Зависимостей между командами почти нет, каждая выпускает релизы независимо.
При переходе от функциональных команд к кросс-функциональным пригодится модель Spotify: постоянные команды по продуктовым направлениям («отряды») и регулярные «гильдии» — встречи специалистов одной роли из разных команд для обмена знаниями.