В этой статье мы кратко расскажем про Нексус — подход для масштабирования Скрама, который предложил создатель Скрама Кен Швабер. Мы также проиллюстрируем ключевые идеи этого подхода на примере реального большого Продукта, который разрабатывают более 200 человек.
Аджайл и Скрам становятся всё более востребованными для больших компаний и больших продуктов. Есть несколько известных подходов к тому, как «масштабировать Аджайл», то есть организовывать работу нескольких аджайловых команд над одним большим Продуктом, — это SAFe, LeSS, Нексус и другие. У каждого подхода есть свои особенности и свои преимущества.
Что касается Нексуса, он отражает практический опыт масштабирования создателя Скрама Кена Швабера и его сподвижников из организации Scrum.org. Этот опыт говорит о том, что при разработке большего Продукта существуют две самые болезненные проблемы:
Важно отметить, что эти проблемы в принципе отсутствуют, если над Продуктом работает только одна Команда. Они возникают именно при масштабировании, при этом в Руководстве по Скраму практически ничего не говорится о таких «масштабированных» ситуациях.
Идея Нексуса очень проста: нужно дополнить Скрам несколькими простыми элементами, чтобы решить проблемы с зависимостями и интеграцией. Эти дополнительные элементы описаны в кратком и бесплатном Руководстве по Нексусу (Nexus Guide), доступном на сайте Scrum.org.
Давайте теперь рассмотрим обе проблемы на реальном примере.
На схеме ниже изображён набор функциональных модулей реального Продукта для ритейл-домена, который разрабатывает распределённая интернациональная Команда из 200 человек. Размер каждого эллипса зависит от оценки трудоёмкости требований в данном модуле: чем больше трудоёмкость, тем больше эллипс. Два эллипса пересекаются, если между модулями есть зависимости: связанные требования, общий код и другие.
Схема функциональных модулей Продукта для ритейл-домена, в котором участвует 200 человек
Из схемы видно: компонент Order Management связан ещё с семью другими компонентами. Это значит, что Команда, которая разрабатывает Order Management, должна синхронизироваться с семью другими командами. И это не считая так называемых внешних зависимостей, связанных со специалистами, находящимися вне Команды. В жизни такие зависимости неоднократно приводили к простою команд, вынужденной работе над низкоприоритетными фичами, недостижению Цели Спринта и другим негативным последствиям. Особенно остро проблема ощущалась в начале разработки.
Нексус и Scaled Professional Scrum помогают справится с этими проблемами за счёт ряда практик:
Прочитать про это подробнее можно в Руководстве по Нексусу и на страничке Scrum.org/Nexus.
Давайте вернёмся к нашей ритейл-компании и Продукту. Более 20 команд непрерывно добавляют новый код в общий репозиторий, забирают из него свежий код коллег, пересобирают, тестируют, исправляют баги, показывают Продукт представителям бизнеса, снова пишут код. И при этом в конце каждого недельного Спринта команды должны иметь полностью интегрированную и готовую к выпуску версию Продукта. Не отдельных 20 кусочков, а новую версию всего Продукта!
Каждый, кто участвовал в разработке, понимает, насколько это сложная задача. Часто команды не могут довести даже небольшой Продукт к концу Спринта до состояния Done. А здесь и команд много, и сложность задачи увеличивается многократно. Как обеспечить решение этой задачи? Кто должен нести за это ответственность?
Для решения этой важнейшей задачи в Нексусе добавляется специальная роль — Nexus Integration Team.
Схема Команды Интеграции в Нексусе
Эта новая Команда в основном состоит из представителей команд разработки и, несмотря на название, её задачей не является «руками» интегрировать Продукт вместо отдельных команд. Nexus Integraion Team отвечает (Accountable) за внедрение инженерных и процессных практик, которые позволят иметь общий Интегрированный Инкремент как минимум в конце каждого Спринта.
Вот лишь некоторые из активностей, в которые вовлечены члены Команды Интеграции из нашего реального примера:
Как видно из примера, большая часть действий Команды Интеграции направлена на достижение инженерного совершенства, и это не случайно: хорошие технические практики и автоматизация при масштабировании критически необходимы.
При этом крайне важно, чтобы Команда Интеграции не принимала решения за команды, не делала их работу и никаким другим способом не препятствовала самоорганизации команд. Научиться держать эту тонкую грань можно на тренинге Scaled Professional Scrum with Nexus.
В рамках небольшой статьи невозможно осветить все нюансы Нексуса. Но ручаемся, за кадром осталось не так уж и много. Взглянем на официальную визуализацию Нексуса:
Официальная визуализация Нексуса
Большинство людей, знакомых со Скрамом, при виде этой картинки воскликнут: «Да это же просто… Скрам!» И они правы, Нексус — это Скрам, в котором участвуют 3–9 команд (если больше, нужно несколько связанных Нексусов). При этом в процесс добавлено несколько дополнительных элементов, самые важные из которых мы уже упомянули выше.
Таким образом, Нексус — легковесный фреймворк, основанный на Скраме. Именно поэтому он прекрасно сочетается с LeSS, другим фреймворком для масштабирования Скрама. Кроме того, LeSS содержит массу полезных руководящих указаний и экспериментов, которые можно и нужно использовать в контексте Нексуса.
Суммируем то, что мы узнали из статьи:
Проблема в том, что на философском и практическом уровне иерархия со своими управленческими процессами противоположна переменам. Она стремится уничтожить аномалии, стандартизировать процессы, решить краткосрочные задачи и добиться быстрой работы при текущем режиме.Некоторые оптимизационные цели иерархии подразумевают использование контроля и ресурсов или попросту «время, проведённое сидя в кресле». Иерархия выстраивает такой дизайн организаций, при котором они становятся группами одной функции. Работу групп по ключевым показателям тоже оценивают менеджеры одной функции.
Например, существуют группы, которые специализируются только на заключении контрактов или выставлении счётов. Другие группы специализируются на технологиях типа Java, .NET, Oracle. Есть группы со специализацией на тестировании, архитектуре, безопасности и проектном менеджменте.В иерархии нет ничего плохого, если оптимизационные цели соответствуют задачам. Но если вы хотите стать гибким, цели нужны другие:
Представим, что Продукт завалился из-за недостаточного тестирования. Менеджер обычной компании первым делом создаст детальный процесс и закрепит за ним ответственного или целый департамент. Но тогда ответственности лишится Команда. Мы верим, что излишнюю сложность в структурах и процессах надо убирать, извлекая большее из меньшего: отказываться от подготовительных и стабилизационных Спринтов, выделенных команд анализа требований, архитекторов и очередей из задач для каждой команды.В LeSS команды кросс-функциональные. Они разбираются в бизнес-домене, дизайне и архитектуре, делят между собой общую кодовую базу для всех компонентов, сами анализируют требования заказчиков и конечных пользователей. В итоге они доставляют полноценную функциональность, а не внутренние компоненты или данные. Условия для наращивания кросс-функциональных навыков создают Скрам-мастера и менеджеры. А ещё есть мы — быстрорастущее комьюнити практиков и коучей LeSS. Мы призываем вас превратить машинообразные бездушные организации в организации со смыслом, где людям будет приятно работать. Не ожидайте, что этот процесс будет безболезненным. Но если вы возьмёте курс на гибкость, то упростите организацию, адаптируете её к быстро меняющимся условиям и реализуете скрытый потенциал.