опубликовано: 21.04.2024
Это пересказ моего доклада с AgileDays 2023. Краткое содержание можно прочитать в блоге enabling.team
Team Topologies - подход к организации команд для ускорения потока создания ценности.
Когда в отделе много команд, то ускорить их работу внедрением новых технологий или обучением уже недостаточно. Работу отдела начинают замедлять зависимости между командами и необходимость во взаимодействии большого количества людей. Team Topologies позволяет смоделировать организацию отдела и выявить узкие места.
Для моделирования Team Topologies предлагает пять типов команд:
Три типа взаимодействия:
И таблицу способов взаимодействия типичных для всех типов команд:
Контекст компании:
Основные проблемы:
Шаги применения Team Topologies:
Выписать все существующие команды компании, затем расположить их по потоку создания ценности. Места передачи результата работы из одной команды в другую отмечаем барьером.
На этом этапе обнаружилось что разработка идет этапами, передавая артефакт из отдела в отдел.
Критерии enabling team команды:
В нашем случае команда product owners соответствовала всем этим критериями. Теперь обозначаем их как enabling team.
Чаще всего команда разработки это stream-aligned команда. Пробуем конвертировать.
Критерии stream-aligned команды:
Проверив как работают команды разработки, выяснили что у команд все сервисы общие, нет четкой ответственности за свою часть системы, в командах не хватает компетенций для выполнения задачи от начала до конца. Обозначаем команды разработки как undefined team.
Критерии platform team:
В данном случае команда эксплуатации фокусировалась на закрытии тикетов и делала релизы руками, вместо повышения автономности команд разработки. Каких-то сервисов или продуктового подхода в команде не было, поэтому обозначаем как undefined team.
Так же как и команда эксплуатации, команда первой линии не выполняла ни один критерий platform team, поэтому на схеме обозначаем ее как undefined team.
Команды тестирования не подходят под основные 4 типа, поэтому их обозначаем как undefined team.
Почему не подходят? Они не создают продукт, как stream-aligned команды, не занимаются помощью другим или фасилитацией, как enabling team, не работают на повышение автономности, как platform team, не закрывают собой какую-то сложную область знаний как complicated subsystem. Получается что для них остается только 1 тип - undefined team.
Неожиданно оказалось что команда тех поддержки это stream-aligned team. Она подошла под все критерии:
Команда тех поддержки полностью закрывала собой решение проблем пользователей, создавала и обслуживала собственные инструменты, была полностью автономной. Обозначаем ее как stream-aligned team.
В Team Topologies есть 3 типа взаимодействия команд и таблица, по которой можно понять какие взаимодействия типичны для каждого типа команд и их стоит оставить. А какие типы взаимодействия команде не свойственны и от них лучше отказаться, они ее замедляют.
Выявили все типы взаимодействия и обозначили их на схеме. Видно, что помимо поэтапной передачи артефактов все команды еще очень плотно взаимодействуют друг с другом.
На схеме выше видно, что между командами очень много коллабораций, но при этом невозможно понять какие из них полезные, ускоряющие работу, а какие замедляющие.
Для визуализации разных типов коллаборации мы добавили собственные обозначения:
Проанализировав и обозначив каждое взаимодействие между командами мы выяснили что команда эксплуатации участвует на всех этапах разработки и всех блокирует. Дальше мы будем повторять алгоритм применения Team Topologies для разблокирования команд.
Теперь команда эксплуатации занимается только предоставлением услуг и сервисов для других команд и не участвует в процессе поставки ценности. Эксплуатация больше не блокирует другие команды.
Тестирование было отдельным этапом, на котором QA занимались ручным тестированием. Для разблокирования нужно было перенести возможность тестирования в команды разработки.
Остался последний блокер — взаимодействие команд разработки между собой. Причины такого взаимодействия были следующие:
Переделывание бекенда, полное владение сервисов командами и проведение жестких границ ответственности — большая задача, которая решалась уже без моего участия. Но компания сделала выводы и второе направление бизнеса запустила уже с учетом этих ошибок:
Нужна помощь? Напиши мне в telegram @aladmit или на почту [email protected]