Кросс-функциональные команды и реальность скрытых зависимостей
Узнайте, как кросс-функциональные Scrum-команды находят и устраняют скрытые зависимости, чтобы поставлять полезный и ценный Инкремент в каждом Спринте.
Большинство организаций полагают, что создали кросс-функциональные команды. На самом деле это просто мультидисциплинарные группы, которые по-прежнему зависят от внешних контролеров. Руководство по Scrum 2020 года подчеркивает, что кросс-функциональные команды обладают всеми навыками, необходимыми для создания ценности в каждом Спринте. Если команда не способна поставить готовый Инкремент без посторонней помощи, скрытые зависимости незаметно тормозят процесс. Такие зависимости редко видны на схемах организационной структуры, однако они мгновенно проявляются, когда работа неожиданно останавливается.
Иллюзия полной автономии
Нередко компания объединяет фронтенд-разработчика, бэкенд-разработчика и тестировщика, объявляя получившуюся группу кросс-функциональной. Затем наступает второй Спринт. Команде требуется изменить схему базы данных, но право вносить правки в продуктивные таблицы есть только у централизованной команды администраторов баз данных. Следом требуется согласование по безопасности, а комитет по безопасности собирается лишь раз в месяц. Разработчики простаивают, ожидая ответов по заявкам от специалистов, которые не разделяют их Цель Спринта.
Подобные передачи работы представляют собой скрытые зависимости. Они маскируются под необходимые процедуры контроля или специализированные технические функции. Если работа должна покинуть пределы команды, чтобы достичь состояния Готово, на практике такая команда не является кросс-функциональной. Это все тот же традиционный конвейер, который просто свернули в круг.
Где скрываются зависимости
Скрытые зависимости обычно концентрируются вокруг согласований, общей инфраструктуры и унаследованного кода. Сначала они кажутся незначительными неудобствами, но их совокупная цена оказывается колоссальной. В Scrum цель каждого Спринта заключается в создании полезного и ценного Инкремента. Любая зависимость от внешней группы превращает это обязательство в лотерею.
Обнаружить скрытые зависимости можно, если проследить, на каких этапах работа регулярно замирает в течение Спринта:
- Ожидание согласования внешнего архитектурного комитета перед началом разработки
- Зависимость от централизованного отдела эксплуатации при развертывании тестовых сред
- Передача кода отдельной службе комплаенса для аудита безопасности
- Необходимость ждать, пока внешняя платформенная команда обновит внутренний сервис, чтобы завершить пользовательскую функцию
Путь к выполнению Definition of Done
Чтобы устранить скрытые зависимости, сначала их необходимо сделать видимыми. Главным диагностическим инструментом здесь выступает Definition of Done. Проанализируйте вместе с командой каждый пункт вашего Definition of Done. Задайте простой вопрос по каждому критерию: способна ли команда выполнить этот шаг самостоятельно, не запрашивая разрешений и помощи у кого-то извне?
Если ответ отрицательный, вы обнаружили структурную зависимость. У вас есть два практических решения. Можно включить этот навык или полномочия внутрь команды, либо автоматизировать процесс, полностью исключив согласующее звено. Если команде необходимо развернуть код для проверки Инкремента, предоставьте ей прямой доступ и настройте автоматизированные проверки безопасности.
Развитие навыков вместо раздувания штата
Руководители часто пытаются избавиться от зависимостей путем найма новых специалистов в каждую команду. Это раздувает состав команды, увеличивает коммуникационные издержки и порождает внутренние передачи задач. Кросс-функциональной команде не нужны десять узких экспертов в десяти отдельных областях. Ей нужны сотрудники, готовые расширять свои компетенции в смежные направления.
Когда бэкенд-разработчик осваивает написание инфраструктурных скриптов для настройки пайплайна развертывания, внешняя зависимость исчезает. Когда тестировщик обучает разработчиков написанию надежных автотестов, исчезает узкое место в контроле качества. Кросс-функциональность представляет собой коллективное свойство команды, а не требование, обязывающее каждого сотрудника знать абсолютно все.
Автономия требует структурных изменений
Скрытые зависимости редко возникают случайно. Они представляют собой пережитки обособленных функциональных колодцев, сохранившихся в организации, которая называет себя гибкой. Если руководство рассчитывает на скорость и фокус, которые дает Scrum, лидерам необходимо ликвидировать барьеры согласований, привязывающие команды к внешним отделам.
Дайте Разработчикам полномочия, доступы и обучение, необходимые для поставки готового Инкремента от начала до конца. Когда команда действительно управляет своей работой, ответственность становится прозрачной, а прогресс становится предсказуемым.
