Professional Scrum Master (PSM)

Professional Scrum Master (PSM)
Professional Scrum Master (PSM)

воскресенье, 28 сентября 2014 г.

Что такое неудачный Спринт?


qnnxflfarfhyhpeaqwyz

Недавно между тренерами Scrum.org разгорелась дискуссия относительно вопроса, какой Спринт можно считать неудачным. Мы почти сразу пришли к одному мнению.
А, по вашему мнению, что такое неудачный Спринт:
  • Если команда не выполняет свой прогноз на Спринт?
  • Если команда не достигает Цели Спринта?
  • Что-то другое?
Вопрос действительно очень интересный и я предлагаю разобраться в нем.

Скрам для продукта, а не проекта. Итак, начну с самого банального вопроса – что же такое Скрам и какая его цель?
Скрам – это фреймворк для разработки и поддержки функционально сложных ПРОДУКТОВ. Скрам – это фреймворк, в рамках которого возможно решать сложные адаптивные проблемы и в то же время продуктивно и креативно разрабатывать ПРОДУКТЫ наивысшего качества (Скрам Гайд, 2013).
Я привел цитату из Скрам Гайда для того, чтобы напомнить нам о том, что Скрам фокусируется на разработке креативных ПРОДУКТОВ, а не ПРОЕКТОВ.

Главная цель использования Скрама – создание продукта, который будет востребован конечными пользователями и который будет приносить удовлетворяющий нас Return On Investment (ROI).
Один из самых больших рисков в разработке ПО – создание невостребованного продукта. Скрам снижает этот риск благодаря частым циклам обратной связи. Для получения успешного продукта Скрам Команда регулярно проводит демонстрацию (инспектирует Инкремент) на Обзорах Спринта, где присутствуют ключевые заинтересованные лица и конечные пользователи продукта. Мы получаем жизненно необходимую обратную связь и, получив ее, Владелец Продукта корректирует дорожную карту продукта (адаптируем Беклог Продукта).

Спринты как проекты и эксперименты. С другой стороны, работая в Скраме и фокусируясь на разработке успешного продукта, мы двигаемся вперед при помощи коротких перебежек или проектов, которые называются Спринтами.
Каждый̆ Спринт может считаться проектом длительностью не более одного месяца. Как и проекты, Спринт используется для достижения целей. Спринт состоит из определения того, что нужно разработать, дизайна и гибкого плана, служащего ориентиром при разработке, работы по проекту и полученного в результате продукта (Скрам Гайд, 2013).
Десятки лет мы считали критерием успешности разработки программного обеспечения попадание в золотой треугольник менеджера (Time, Cost, Scope).  Как результат – тысячи загубленных проектов, потраченных средств и никому не нужных продуктов, потому что треугольник имеет лишь косвенное отношение к успешности продукта.
Скрам – эмпирический процесс и каждый Спринт в нем является экспериментом.
В конце каждой итерации вы эмпирически инспектируете функциональность, которая была разработана. Объем ее может быть менее или более того, что было спрогнозировано. Тем ни менее, вы знаете, что было сделано и можете принимать решения на основе полученных результатов. Эмпирический процесс не дает определенности, он просто показывает возможности (Кен Швабер, Software in 30 days).
 И вот мы, наконец, подходим к самому главному. Учитывая то, что каждый Спринт является экспериментом, а Скрам - эмпирический процесс:

Неудачный Спринт – тот, в конце которого мы ничему не научились. Мы не инспектировали результаты и не провели адаптацию продукта и процессов.

Надо сказать, что эта концепция тяжело укладывается в голове у большинства людей. Мы привыкли считать успешность команды по количеству фич, которые успела команда «наколбасить» за Спринт.

Пример успешного Спринта:
Команда не достигла Цели Спринта, переоценив свои силы на Планировании и взяв слишком много функционала. На Обзоре Спринта мы честно демонстрируем заинтересованным лицам то, что «готово», даже если «готового» совсем мало. Получаем обратную связь, какой бы она ни была. Владелец Продукта принимает решение, финансировать ли следующий Спринт или нет. Ответ может быть как положительным, так и отрицательным. В случае положительного решения, Скрам Команда идет на Ретроспективу, где инспектирует себя, свои процессы и инструменты для того, чтобы провести их адаптацию в следующем Спринте.
Пример неудачного Спринта:
Команда «наколбасила» большое количество функционала и «принесла» на Обзор Спринта ровно то, что обещала («благодаря» некоторому овертайму и сниженному качеству). Но только на Обзоре Спринта никого, кроме Владельца Продукта не оказалось. Конечных пользователей мы вообще никогда не видим, а другие заинтересованные лица слишком заняты, чтобы ходить к нам. Обратная связь отсутствует. На Ретро мы «забиваем», потому что работы много. Начинается следующий «удачный» Спринт.
Подведем итоги:
  • Цель Скрама – продуктивное и креативное создание продуктов, а не проектов.
  • Каждый Спринт – эксперимент, результаты которого необходимо инспектировать, а затем, соответственно, адаптировать.
  • При невозможности проверить результаты Спринта (эксперимента) и адаптироваться, он считается неудачным.
Удачных вам инспекций и адаптаций, друзья!