новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts

МасштабируемСкрамс помощьюНексуса

В этой статье мы кратко расскажем про Нексус — подход для масштабирования Скрама, который предложил создатель Скрама Кен Швабер. Мы также проиллюстрируем ключевые идеи этого подхода на примере реального большого Продукта, который разрабатывают более 200 человек.

Две проблемы масштабирования Скрама

Аджайл и Скрам становятся всё более востребованными для больших компаний и больших продуктов. Есть несколько известных подходов к тому, как «масштабировать Аджайл», то есть организовывать работу нескольких аджайловых команд над одним большим Продуктом, — это SAFe, LeSS, Нексус и другие. У каждого подхода есть свои особенности и свои преимущества.

Что касается Нексуса, он отражает практический опыт масштабирования создателя Скрама Кена Швабера и его сподвижников из организации Scrum.org. Этот опыт говорит о том, что при разработке большего Продукта существуют две самые болезненные проблемы:

Важно отметить, что эти проблемы в принципе отсутствуют, если над Продуктом работает только одна Команда. Они возникают именно при масштабировании, при этом в Руководстве по Скраму практически ничего не говорится о таких «масштабированных» ситуациях.

Идея Нексуса очень проста: нужно дополнить Скрам несколькими простыми элементами, чтобы решить проблемы с зависимостями и интеграцией. Эти дополнительные элементы описаны в кратком и бесплатном Руководстве по Нексусу (Nexus Guide), доступном на сайте Scrum.org.

Давайте теперь рассмотрим обе проблемы на реальном примере.

Зависимости-киллеры

На схеме ниже изображён набор функциональных модулей реального Продукта для ритейл-домена, который разрабатывает распределённая интернациональная Команда из 200 человек. Размер каждого эллипса зависит от оценки трудоёмкости требований в данном модуле: чем больше трудоёмкость, тем больше эллипс. Два эллипса пересекаются, если между модулями есть зависимости: связанные требования, общий код и другие.

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

Нексус для масштабирования Скрама

Суммируем то, что мы узнали из статьи:

  1. При масштабировании возникают проблемы, которых нет при «однокомандной» разработке: зависимости и сложность интеграции.
  2. Нексус помогает решать эти проблемы за счёт добавления нескольких новых элементов в дополнение к обычным правилам Скрама. Эти новые элементы описаны в кратком Руководстве по Нексусу.
  3. Нексус отлично сочетается с LeSS, так как оба основаны на правильном Скраме, а эксперименты из LeSS помогают дополнить Нексус конкретными практиками.
  4. При масштабировании возрастает важность инженерных практик и автоматизации.
  5. Наш реальный опыт внедрения Нексуса показал, что даже продуктовая группа из 200 человек может иметь Production-Ready версию Продукта как минимум раз в неделю.

Плюсануть
Поделиться
Отправить
Класснуть
Линкануть
Вотсапнуть
Запинить
Ещё по теме
Иногда компании разрабатывают Продукт десятками и сотнями людей без добавления новых ролей, событий или процессов Скрама. Они так могут, потому что оптимизировали организационный дизайн компании. У организации тоже есть дизайн, как у грузовика или болида «Формулы-1». Большой грузовик спроектирован для того, чтобы перевозить груз из пункта А в пункт Б. Ради такой эффективности приходится мириться с долгим обслуживанием. Например, для замены шин нужны пара человек, подъёмное оборудование и несколько часов. Дизайн болида «Формулы-1» оптимизирован для скорости и гибкости. Гоночная машина не рассчитана на то, чтобы работать долго, — только одну гонку. Но во время пит-стопа 20 человек работают вместе и меняют шины быстро. У всех людей конкретные задачи, и большую часть времени они ждут, пока другие выполнят свою работу. Благодаря такому дизайну шины меняют в разы быстрее, чем на грузовике, — мировой рекорд составил 1,92 секунды. Если вы хотите заменить шины большого грузовика за 1,92 секунды, команда из пит-стопа «Формулы-1» не поможет. У вас просто будут новые роли, инструменты и процессы. Дизайн большого грузовика не оптимизирован для скорости, и вам придётся заново его проектировать. Масштабирование Скрама не поможет компании стать гибкой

Организационный дизайн компании — основа гибкости

Иерархия — типичный организационный дизайн. Она оптимизирована под многие вещи, но не для скорости и гибкости. Джон Коттер выделяет и другую проблему иерархии:
Проблема в том, что на философском и практическом уровне иерархия со своими управленческими процессами противоположна переменам. Она стремится уничтожить аномалии, стандартизировать процессы, решить краткосрочные задачи и добиться быстрой работы при текущем режиме.
Некоторые оптимизационные цели иерархии подразумевают использование контроля и ресурсов или попросту «время, проведённое сидя в кресле». Иерархия выстраивает такой дизайн организаций, при котором они становятся группами одной функции. Работу групп по ключевым показателям тоже оценивают менеджеры одной функции.
Например, существуют группы, которые специализируются только на заключении контрактов или выставлении счётов. Другие группы специализируются на технологиях типа Java, .NET, Oracle. Есть группы со специализацией на тестировании, архитектуре, безопасности и проектном менеджменте.
В иерархии нет ничего плохого, если оптимизационные цели соответствуют задачам. Но если вы хотите стать гибким, цели нужны другие:
  • Кратчайшее время реализации — время, за которое вы сделаете из идеи Продукт для конечных потребителей.
  • Адаптивность — умение быстро перестраиваться с минимальными затратами.
  • Обучаемость — готовность узнавать о желаниях потребителей, организационном дизайне, процессах и Продукте.
Иерархия для этих целей не подходит. Организации, которые стремятся совместить Аджайл и иерархию, зачастую пытаются представить новые роли, процессы и инструменты, но в итоге следуют Аджайлу только формально. Дают новые имена старым вещам, и ничего не получается. Это всё равно что пытаться заставить команду из пит-стопа «Формулы-1» заменить шины на большом грузовике за 1,92 секунды. Поэтому не спрашивайте, как масштабировать Скрам и приспособить его к иерархии.

Измените дизайн организации, чтобы она стала гибкой

Чтобы стать Аджайл, вам нужно оптимизировать организационный дизайн под правильные задачи. Зачастую это реорганизация в широком смысле слова. Проектируйте организацию вокруг Продукта так, чтобы она была оптимизирована для постоянного внедрения потребительских функций. Не нужно оптимизировать компанию для использования ресурсов или «времени, проведённого сидя в кресле». Найдите Владельца Продукта с предпринимательским менталитетом, который понимает рынок, и дайте ему полномочия вести жизненный цикл Продукта. Создайте Скрам-команды, которые могут разрабатывать сквозные клиентские функции, и поставьте их в основу организации. Организуйте свои команды, чтобы они работали над Продуктом и добивались интегрированного прироста в каждой итерации, а у вас было чёткое понимание процесса. Начните работать с кросс-функциональными менеджерами, которые будут трудиться в кросс-функциональной организации, и не поощряйте оптимизацию под одну функцию. Внедрите систему Человеческих Операций, в которой ценится командная работа и есть стремление к правильным навыкам.

Узнайте больше

Будучи одним из авторов ScrumPlop, я настоятельно рекомендую прочесть о шаблонных последовательностях, изучить публикации LeSS и Руководство по Нексусу — из них вы узнаете о построении аджайловых организаций ещё больше. Оригинал статьи

LeSS в теории

Как создаёт Продукт Скрам-команда? Разработчики и бизнес работают сообща. Команда как можно чаще показывает бизнесу Продукт и вместе с ним устраняет проблемы. Как разрабатывает большие продукты обычная компания? Одно подразделение создаёт спецификацию и передаёт другому подразделению. Затем разработчики торгуются с менеджерами вместо того, чтобы общаться с конечными пользователями. Из-за этого люди в организациях слабо влияют на разработку и забывают, для кого создают продукты. Почему разрабатывать небольшие продукты эффективнее, чем большие? В небольших продуктах рабочие процессы минимальны. Они основаны на эмпирическом подходе, когда Команда регулярно сверяется с реальностью. Такой подход ориентирован на клиента, и Продукт видно целиком, поэтому получается эффективно. Можно ли применить те же принципы в масштабируемой разработке больших продуктов? Крэйг Ларман и Бас Водда разбирались в этом вопросе 10 лет. Они провели сотни экспериментов и в итоге создали LeSS — фреймворк для масштабируемой разработки. Его успешно применяли в компаниях даже из тысяч человек. C помощью LeSS создавали продукты в банковской сфере, телекомах, разрабатывали игры и программное обеспечение для радаров. Как работает LeSS? LeSS — это Скрам для нескольких команд. Вот как он работает:
  • Один Владелец Продукта создаёт и транслирует видение Продукта. Бэклог Продукта тоже один — список элементов, которые ориентированы и понятны конечным пользователям. В конце Спринта доставляется Интегрированный Инкремент.
  • Команды разрабатывают Инкремент в одном Спринте параллельно и итеративно.
  • Спринт начинается с Планирования. В общей части события команды вместе выбирают приоритетные элементы Бэклога Продукта. Во второй части Планирования каждая команда разрабатывает свой план реализации выбранных фич.
  • На протяжении Спринта команды координируют работу между собой и интегрируют её в готовый Инкремент. Участники сами отвечают за координацию — LeSS не отводит для этого специальной роли.
  • В середине Спринта команды выделяют время для работы над Уточнением Бэклога Продукта.
  • Напрямую общаясь с заказчиками и конечными пользователями, команды разгружают Владельца Продукта. Ему остаются видение Продукта и приоритезация.
  • Обзор Спринта в LeSS общий для всех команд. Они вместе с заинтересованными лицами инспектируют, что было сделано, и обсуждают будущую работу.
  • Ретроспектива бывает командной и общей. На командной Ретроспективе каждая команда инспектирует свои процессы. На общей Ретроспективе Владелец Продукта, Скрам-мастера, команды и менеджеры выявляют системные проблемы, которые мешают быстрой доставке бизнес-ценности.
LeSS подходит, если у вас менее восьми команд на Продукт. Если команд больше, используйте фреймворк LeSS Huge.

LeSS на практике

У LeSS не много правил, но они требуют глубинных изменений в организации. На избавление от лишних процессов, смену ролей и внедрение технических и управленческих практик уйдут годы, но это необходимо.
Представим, что Продукт завалился из-за недостаточного тестирования. Менеджер обычной компании первым делом создаст детальный процесс и закрепит за ним ответственного или целый департамент. Но тогда ответственности лишится Команда. Мы верим, что излишнюю сложность в структурах и процессах надо убирать, извлекая большее из меньшего: отказываться от подготовительных и стабилизационных Спринтов, выделенных команд анализа требований, архитекторов и очередей из задач для каждой команды.
В LeSS команды кросс-функциональные. Они разбираются в бизнес-домене, дизайне и архитектуре, делят между собой общую кодовую базу для всех компонентов, сами анализируют требования заказчиков и конечных пользователей. В итоге они доставляют полноценную функциональность, а не внутренние компоненты или данные. Условия для наращивания кросс-функциональных навыков создают Скрам-мастера и менеджеры. А ещё есть мы — быстрорастущее комьюнити практиков и коучей LeSS. Мы призываем вас превратить машинообразные бездушные организации в организации со смыслом, где людям будет приятно работать. Не ожидайте, что этот процесс будет безболезненным. Но если вы возьмёте курс на гибкость, то упростите организацию, адаптируете её к быстро меняющимся условиям и реализуете скрытый потенциал.
Комментарии