1.4. Сценарий адаптации Scrum
Путь реализации Scrum в организации начинается с веры, что усилия будут вознаграждены более эффективным процессом разработки программного обеспечения и более гибкой и конкурентной компанией. Также становится понятно, что значительное количество организационных изменений теперь в прогнозе.
По мере того как руководитель обдумывает это начинание, понимание организационного поведения ведет к рациональному набору шагов для достижения реальных изменений:
• поиску консультанта и местного специалиста по внедрению;
• совершению небольших начальных шагов для пробы;
• размышлению об успехах и неудачах, а затем движению вперед шаг за шагом.
Следующий раздел описывает несколько типичных примеров – как внедрить Scrum в вашей организации, «сценарий», предлагающий примерные практические приемы, которые вы можете применить, чтобы достичь необходимых изменений.
1.4.1. Действие 0 – общее представление, оценка и предварительная подготовка
Цель первого действия заключается в подготовке игрового поля для последующей деятельности: а) оценки готовности организации к гибкости; б) обеспечении начального обучения для первых участников; в) создании бэклога продукта для первоначальных проектов.
Это действие включает некоторые перечисленные ниже детали.
I. Общее представление и оценка
Описание: двухдневная рабочая сессия, состоящая из следующих мероприятий:
• тест пригодности к Scrum – предоставляет руководству все типы изменений, которые будут происходить с помощью метода, и помогает принять решение, хотят ли они продолжить;
• презентация Scrum – повышает общую осведомленность и предоставляет концепцию для всей организации;
• оценка организационной готовности и определение следующих шагов;
• определение планов; выявление потенциальных управляющих, планирование обучения и определение ресурса для пилотного проекта;
• ужин с высшим руководством с обсуждением следующих шагов.
Продолжительность: два дня.
Поддержка: внешняя.
II. Предварительная подготовка
Организация готова приступить к обучению и созданию структуры, необходимой для поддержки первого пилотного проекта. Деятельность в этой фазе включает следующие этапы.
Обучение Scrum-мастера.
Описание: обучение Scrum-мастеров проведению пилотных проектов.
Продолжительность: два дня.
Поддержка: внешняя.
Обучение владельца продукта.
Описание: обучение владельцев продукта максимизации возврата инвестиций с использованием Scrum.
Продолжительность: два дня.
Поддержка: внешняя.
Командное обучение (разработчиков).
Описание: обучение всех участников работать как кросс-функциональная, самоорганизованная команда, которая предоставляет «законченные» инкременты функциональности с использованием современных инженерных практик и специфических технологических приемов.
Продолжительность: пять дней.
Поддержка: внешняя.
Создание показателей.
Описание: обзор и изменение показателей, которые будут контролировать использование Scrum в организации и определят ценность, произведенную в пилотных проектах. Создание основного ядра Scrum и проектных показателей.
Продолжительность: неделя.
Поддержка: внешняя.
Создание бэклога продукта изменений.
Описание: создание бэклога продукта для отслеживания и оценки препятствий, которые возникнут в процессе пилотных проектов. Этот бэклог будет основой для действий по изменению всей организации.
Продолжительность: один день.
Поддержка: внешняя.
1.4.2. Действие 1 – пилотные проекты
Цель этого действия – испытать Scrum на одном или нескольких реальных проектах с целью продемонстрировать преимущества улучшенной гибкости разработки программного обеспечения в организации. На этом этапе выполняются один или несколько пилотных проектов. Scrum-мастера и руководство пристально следят за проектами для определения организационных препятствий и помех для применения Scrum. Когда эти препятствия определены, они сразу устраняются, если это возможно, или записываются в бэклог организационных изменений и распределяются по категориям для дальнейшего рассмотрения.
I. Пилотные проекты
Продолжительность: три – шесть месяцев.
Поддержка: внешний/внутренний Scrum-мастер.
Описание: проводится от трех до шести итераций в течение пилотных проектов. Пилотные проекты предоставляют инкременты функциональных возможностей и определяют помехи в оптимизации разработки программного обеспечения. Определяется и корректируется план, дается оценка и назначается приоритетность препятствиям.
II. Ретроспектива
Продолжительность: два дня.
Поддержка: внешний/внутренний Scrum-мастер.
Описание: обзор пилотных проектов, показателей и препятствий. Определение, что прошло правильно, а что должно быть улучшено. Определение показателя возврата инвестиций. Оценка влияния на бизнес-операции, включая взаимоотношения между отделами организации и клиентами.
III. Перепланирование
Продолжительность: один день.
Поддержка: внешний/внутренний Scrum-мастер.
Описание: изменение мастер-плана по реализации Scrum, поддержание его на высоком уровне и разделение проектных планов и плана организационных изменений, управляемых собственными специфическими бэклогами продуктов.
1.4.3. Действие 2 – организационная экспансия
Цель этого действия, основанного на успешных пилотных проектах, заключается в расширении использования Scrum и его преимуществ значительной частью области разработки программного обеспечения организации.
К этому времени уже есть понимание того, какие полезные практики внедрены, какие препятствия стоят на пути более широкого применения и где требуется дальнейшее обучение. Например, теперь могут быть эффективны более широкие обучающие программы.
Обучение Scrum-мастеров. Перед тем как масштабировать применение Scrum для дополнительных и более крупных проектов, вы должны увеличить количество Scrum-мастеров. На данном этапе должны быть отобраны кандидаты с соответствующими навыками. Scrum-мастера, которые будут управлять Scrum над Scrum (см. ниже), теперь могут быть обучены продвинутым навыкам, таким как упрощение процедур и сбор показателей.
Обучение владельцев продукта. Потребители и менеджеры продуктов обучаются способам оптимизации отдачи от инвестиций, управлению рисками и обязательствами. Они учатся это делать, играя роль владельца продукта, который несет ответственность за управление прогрессом по оптимизации ценности и исключению сюрпризов.
Обучение разработчиков. Разработчики, задействованные в гибкой разработке, должны научиться действовать как самоорганизованные, кросс-функциональные команды, которые предоставляют законченные инкременты функциональных возможностей, используя современные инженерные практики и специфические технологические приемы.
Обучение Agile/Scrum: успешное внедрение Scrum будет в значительной степени зависеть от общего знания терминологии всех вовлеченных в процесс людей. Это может быть достигнуто в течение 2–4-часовых вступительных курсов для 30–50 % организации.
В дополнение вы можете использовать другие виды деятельности для увеличения видимости и уровня одобрения Scrum в организации.
Информационные материалы. Уведомляйте о состоянии Scrum-проектов через простые и убедительные информационные материалы, такие как панели задач, бэклог продукта и выпуска, а также диаграммы сгорания задач.
Чтение. Составить список книг и статей, способствующих дальнейшему расширению знаний, которые могут быть предоставлены всем людям в организации.
Семинары и неформальные встречи с участием руководства. Лидеры, отвечающие за изменения, должны часто и открыто общаться по поводу того, что происходит в организации. Неформальные встречи, такие как общение за обедом, имеют тенденцию позитивно влиять на протекание изменений.
Общение в корпоративных чатах, публикация отзывов людей, участвовавших в пилотных проектах. Результаты пилотных проектов должны быть доступны каждому, это расширит обсуждение и вовлеченность на всех уровнях организации.
1.4.4. Действие 3 – достижение воздействия
Так как пилотные проекты доказали, что с помощью гибких методов разработки программного обеспечения достигается реальная польза, цель этого действия заключается в достижении более значительного влияния на более широком уровне, что может быть продемонстрировано только с помощью все более и более крупных проектов. При помощи предыдущих действий организация накопила значительное количество явных и косвенных знаний, чтобы справиться со следующим шагом с высокой вероятностью успеха. На этом этапе не менее 25 % всей организации должны быть вовлечены в реализацию Scrum.
Эффективное изменение теперь должно происходить как внутри, так и за пределами отдела разработки. Внутри отдела эта работа лежит на команде разработки. За его пределами деятельностью по ликвидации препятствий руководит Scrum-мастер организации, а сама работа выполняется затронутыми ведомствами.
I. Проекты по разработке программного обеспечения
Продолжительность: постоянно.
Поддержка: внутренняя.
Описание: разработка проектов по созданию программного обеспечения с контролем показателей возврата инвестиций.
II. Проекты изменений
Продолжительность: большая часть работы приходится на один-два года, а далее по необходимости.
Поддержка: внутренняя.
Описание: проекты организационных изменений устраняют возникающие препятствия в разных ведомствах предприятия.
III. Оценка и адаптация
Продолжительность: каждый спринт.
Поддержка: внешний/внутренний Scrum-мастер.
Описание: обзор количественных и качественных показателей. Добавление дополнительных показателей и обзор того, какие показатели фиксируются каждый раз, когда происходят непредвиденные случаи.
1.4.5. Действие 4 – измерение, оценка и регулировка
Цель этого действия заключается в оценке прогресса организации и создании более широкого набора показателей, служащих основой для дальнейшего расширения. Руководитель должен быть в курсе, что предстоящее обсуждение новых показателей может вызвать как споры, так и поддержку в связи с тем, что многие традиционные показатели, которые применялись в организации до внедрения Scrum (например, показатель полноты документации), теряют свое значение. К счастью, Scrum и гибкие методы разработки – действительно контролируемые и измеряемые, поэтому использующие эти методы исполнители получают набор показателей, предоставляющих качественную и достаточную обратную связь как на уровне процесса разработки, так и на уровне проекта.
Но перед началом обсуждения новых показателей должна быть четко проведена граница между множеством традиционных процессов разработки программного обеспечения и гибкими процессами, то есть Scrum.
Основной показатель гибкого метода разработки программного обеспечения – существует ли реально работающее программное обеспечение и подходит ли оно для использования по планируемому назначению. В Scrum этот ключевой индикатор определяется опытным путем, путем демонстрации в конце каждого спринта.
Эта первичная мера качества программного обеспечения и производительности – сущность процесса гибкой разработки. Таким образом, со Scrum вы не можете отойти слишком далеко от цели, не зная, где находитесь. Все остальные показатели находятся в подчинении этой цели и постоянно повторяющегося принципа «частой поставки рабочего программного обеспечения».
На данном этапе процесса адаптации Scrum значительная часть организации уже работает в гибкой манере. Результаты спринтов первоначальных проектов – основные показатели эффективности новой модели поведения команды и новых процессов. Эти данные должны быть опубликованы и проанализированы.
Более того, теперь самое подходящее время для определения набора вторичных показателей, служащих ориентиром организации на пути реализации Scrum. При этом есть два типа показателей, которые могут быть применены.
Показатели процесса – в первую очередь качественные показатели эффективности команд и организации в усвоении Scrum. Это такие элементы, как эффективность команд по управлению бэклогом продукта, эффективность Scrum-процессов, например ежедневного Scrum-митинга, планирования спринта и так далее.
Показатели проекта – на уровне проекта дополнительный набор показателей может быть применен для оценки результатов конкретной Scrum-команды и службы, компонента или системы, за которую эта команда несет ответственность. Этот набор может включать в себя некоторые традиционные показатели, например подсчет дефектов, процент кода с юнит-тестированием, процент кода с автоматическим регрессионным тестированием и так далее. А также специфические Scrum-показатели: количество законченных пользовательских историй и демонстраций в конце каждого спринта.
Внимание на качестве в Scrum
Клиенты часто оказывают давление на организации разработчиков программного обеспечения с целью получить функциональные возможности быстрее, чем это возможно. Некоторые организации идут на это за счет снижения качества продукта, отбрасывая рефакторинг, урезая время тестирования и других необходимых инженерных манипуляций. Это не поддерживается в Scrum-процессах, так как система или продукт – корпоративный актив, который постоянно усовершенствуется и объективно оценивается, а не одноразовый проект активов. Инженерные организации, поддавшиеся этому давлению, в конце концов строят «мертвые модели» систем, которые не могут эффективно обслуживаться и улучшаться. Организация тратит огромные средства на переписывание и повторный выпуск существующей основы программного кода. Чтобы этого избежать, только на уровне высшего руководства может быть принято решение о снижении качества.
1.4.6. Действие 5 – распространение до победного конца
На основе уже выполненных в организации мероприятий с определенным набором показателей для направления и оценки прогресса в будущем теперь настало время распространить использование Scrum на всю организацию. Деятельность на этом этапе внедрения ориентирована на дальнейшее масштабирование метода в пределах организации.
Со Scrum знакомят оставшиеся команды, составляющие 25–30 % общего персонала организации. Существующие практические приемы продолжают совершенствоваться и распределяться между командами, чтобы достигнуть закрепления гибкого подхода к разработке в организации. Только теперь строгие правила, в соответствии с которыми Scrum осуществляет свою деятельность, могут быть скорректированы, чтобы лучше соответствовать потребностям организации. Клиентам может быть предложено принять участие во внедрении через обучение в качестве владельцев продукта и Scrum-мастеров. Эта фаза продолжается до тех пор, пока все команды не будут вовлечены в Scrum. Механизмы Scrum по инспекции и адаптации будут способствовать дальнейшему улучшению процессов и практических методов.
К этому моменту организация уже достигнет существенной производительности, а также оценит деловые и культурные преимущества Scrum.
Тем не менее, прежде чем мы перейдем к масштабированию Scrum на самые большие проектные условия, мы должны взглянуть на типы организационных препятствий, которые могут мешать эффективным Scrum-процессам.