Русская Википедия:Scrum

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Ук Шаблон:Разработка программного обеспечения Scrum (Шаблон:IPA[1]; Шаблон:Lang-en «схватка») — легкий фреймворк, который помогает людям, командам и организациям создавать ценность с помощью адаптивных решений комплексных проблем[2].

Scrum может использоваться не только в сфере разработки ПО но и в других производственных отраслях[3].

Кроме управления проектами по разработке ПО, Scrum может также использоваться в работе команд поддержки программного обеспечения, как подход к управлению разработкой и сопровождению программ.

Следует различать Scrum[4] и Agile[5].

История

Файл:Rugby scrum 1904.jpg
Термин «scrum» пришёл из регби, где он означает схватку. Здесь запечатлена схватка в регбийном матче клубов «Ньюпорт» и «Лондон Уэлш» 1904 года

Первоисточниками методологии Scrum послужили: производственная система компании Toyota и цикл OODA (OODA loop, или петля OODA, или петля Бойда) концепции применения боевой авиации, включающий в себя четыре составляющих: observe («наблюдать»), orient («ориентироваться»), decide («решать»), act («действовать»)[6].

Джефф Сазерленд
Джефф Сазерленд

Сам подход впервые описали Шаблон:Нп5 и Шаблон:Нп5 в статье The New Product Development Game (Harvard Business Review, январь-февраль 1986). Они отметили, что проекты, над которыми работают небольшие команды из специалистов различного профиля, обычно систематически производят лучшие результаты, и объяснили это как «подход регби».

В 1991 году ДеГрейс и Шталь в книге «Нечестивые проблемы, праведные решения»[7] называли подобный подход словом «scrum» (буквальный перевод — «толкотня», в регбийной терминологии — схватка), спортивный термин, приведённый в статье Такэути и Нонакой. Шаблон:Нп5 в начале 1990-х использовал подход, который привёл Scrum в его компанию. Впервые методология Scrum была представлена на общее обозрение задокументированной, чётко сформированной и описанной совместно Швабером и Джефом Сазерлендом[6] на OOPSLA’95[8] в Остине. К. Швабер и Д. Сазерленд на протяжении следующих лет работали вместе, чтобы обработать и описать весь свой опыт и лучшие практические образцы для индустрии в одно целое, в ту методологию, что известна сегодня как Scrum.

Кен Швабер
Кен Швабер

Швабер объединил усилия с Шаблон:Нп5 в 2001 году, чтобы детально описать метод в книге «Agile Software Development with Scrum»[9].

В 2002 году Швабер вместе с другими основал Альянс Scrum[10] и создал серию сертифицированных аккредитаций Scrum. Швабер покинул Scrum Alliance в конце 2009 года и основал Scrum.org Шаблон:Wayback, который курирует параллельную серию аккредитаций Professional Scrum[11].

С 2009 года публичный документ под названием The Scrum Guide[12] официально определяет Scrum. Он был пересмотрен более 5 раз. В 2018 году Швабер и сообщество Scrum.org вместе с лидерами сообщества Kanban опубликовали Руководство по Kanban для групп Scrum[13].

Определения

Файл:Scrum process-ru.svg
Процессы методологии Scrum

Scrum

Scrum (англ. «схватка» — термин из регби, обозначает стартовое состояние команд перед вбросом мяча) — минимально необходимый набор мероприятий, артефактов, ролей, на которых строится процесс Scrum -разработки, позволяющий за фиксированные небольшие промежутки времени, называемые спринтами (Шаблон:Lang-en2), предоставлять конечному пользователю работающий продукт с новыми бизнес-возможностями (инкремент), для которых определён наибольший приоритет. Методология базируется на идеях, озвученных в статье Таекучи и Нонака «Шаблон:Iw», а также на командной работе, по аналогии с тем, как в регби команда действует сообща, ради достижения общей цели. Возможности к реализации в очередном спринте определяются командой в начале спринта на совещании по планированию спринта Шаблон:Lang-en2. Для оценки предстоящего объёма работ на спринте чаще всего используются относительные оценки, и практика покера планирования (Planning Poker).

В конце спринта Scrum-команда встречается на обзорном совещании результатов спринта (Sprint Review — старое название Demonstration) с заказчиком, и представляет ему инкремент бизнес-продукта (версия продукта с законченным набором функциональности, который уже можно отдавать заказчику и пользователю для использования), который она успела сделать за спринт. Цель Sprint Review — получение обратной связи от заказчика, чтобы понять, на чём нужно делать акцент в дальнейшем, и какой должен быть следующий инкремент бизнес-продукта.

Строго фиксированная небольшая длительность спринта (от 1 до 4 недель) снижает риски, и даёт возможность быстро получить обратную связь от заказчика, чтобы скорректировать видение продукта.

Спринт

Спринт[14] — промежуток времени, достаточный для выполнения запланированной совокупности операций Scrum, целью которой является создание инкремента бизнес-продукта. Жёстко фиксирован по времени. Длительность одного спринта от 1 до 4 недель. Чем короче спринт, тем более гибким является процесс разработки, релизы выходят чаще, быстрее поступают отзывы от потребителя, меньше времени тратится на работу в неправильном направлении, но много времени тратится на митинги планирования спринта, ретроспективы. С другой стороны, при более длительных спринтах команда (Scrum Team) уменьшает издержки на совещания, демонстрации продукта и т. п. Разные команды подбирают длину спринта согласно специфике своей работы, кросс-функциональности команд и требований, часто методом проб и ошибок. Для оценки объёма работ в спринте можно использовать предварительную оценку, измеряемую в баллах истории. Предварительная оценка длины спринта фиксируется в бэклоге проекта (Шаблон:Lang-en2; см. далее).

Артефакты Scrum

Диаграмма сгорания задач (Burndown chart)

Шаблон:Main

Файл:SampleBurndownChart.png
Диаграмма отображает завершённый спринт. Показывает оставшиеся нерешённые задачи и трудозатраты, необходимые для их завершения в расчёте на 21 рабочий день.

Диаграмма, демонстрирующая количество сделанной и оставшейся работы относительно времени на разработку проекта называется диаграммой сгорания (Burndown chart).

Данные диаграммы необходимо ежедневно обновлять, чтобы в реальном времени показывать подвижки и издержки в работе над спринтом и проектом, доступные для всех членов Scrum-команды: скрам-мастера и владельца продукта.

Диаграмма сгорания работ для спринта — показывает сколько задач сделано и сколько ещё остаётся сделать в текущем спринте.

Журнал пожеланий проекта (Project backlog)

Журнал пожеланий проекта (бэклог проекта) содержит перечень требований к функциональности, упорядоченный по степени важности, и, соответственно, порядку реализации. Элементы этого журнала называются пользовательскими историями (user story) или элементами бэклога (backlog items). Бэклог проекта открыт для редактирования для всех участников процесса Scrum. Ответственный за ведение бэклога проекта — владелец продукта Scrum.

Журнал пожеланий спринта (Sprint backlog)

Журнал пожеланий спринта (бэклог спринта) — содержит функциональность, выбранную владельцем продукта из бэклога проекта. Все функции разбиты по задачам, каждая из которых оценивается командой Scrum. На Sprint Planning Meeting методом покера планирования команда оценивает объём работы, который нужно выполнить для завершения спринта[15].

Scrum-доска

Скрам-доска
Скрам-доска

Scrum-доска — это инструмент открытой демонстрации состояния текущей работы Scrum-команды. Scrum-доска состоит из трёх колонок: «сделать» (Шаблон:Lang-en2), «в процессе» (Шаблон:Lang-en2), «сделано» (Шаблон:Lang-en2).

На Scrum-доске размещается весь объём Sprint Backlog, который команда выбрала на Sprint Planning для реализации в текущем спринте. Обычно карточки бизнес-задач располагаются на доске сверху вниз в порядке убывания приоритета (сверху — самые важные, снизу — наименее важные). Хорошей практикой является декомпозиция бизнес-задач на конкретные работы (технические, организационные и другие), которые необходимо выполнить команде, для реализации бизнес-задачи.

Бизнес-задачи и карточки конкретных работ передвигаются по доске из колонки в колонку в соответствии с тем, как команда берёт их на исполнение (In Progress) и завершает (Done). Для обеспечения видимости прогресса работы команды «убывание работы» по дням отображается на Burndown Chart’е.

Чаще всего, в начале работы команды используют доски с нарисованными на листах флипчартами, при этом названия работ выписываются на клейких стикерах, и приклеиваются на доску. По мере выполнения работ по результатам совещаний, команда физически перемещает стикеры из колонки в колонку.

Так же часто используются электронные доски, с реализованными в них похожими механизмами. Например, Atlassian Jira, Trello или kaiten[16].

Цель спринта (Sprint Goal)

Представляет собой краткое описание бизнес-цели спринта. Как артефакт, цель спринта помогает команде принимать обоснованные бизнес-решения. Этот артефакт необходим команде проекта для самостоятельного принятия решения при обнаружении альтернативных путей решения бизнес-задачи.

Инкремент продукта

Инкремент продукта представляет собой готовую к использованию часть продукта, которая должна быть реализована к завершению спринта. Команда на Sprint Review (Demonstration) демонстрирует инкремент продукта скрам-мастеру, владельцу продукта, заказчикам и другим заинтересованным лицам[4] для получения обратной связи от них и принятия решения по дальнейшему направлению развития продукта[17].

История пользователя (User Story)

Файл:User Story Map in Action.png
Истории пользователя

Требуемую бизнес-функциональность, которую добавляют в бэклог проекта, часто называют пользовательской историей. Зачастую история имеет следующую структуру: «Будучи пользователем <тип пользователя> я хочу сделать <действие>, чтобы получить <результат>». Такая структура удобна тем, что понятна как разработчикам, так и заказчикам. Шаблон:-

Оценка трудоёмкости выполнения пользовательской истории (задачи спринта)

В книге[6] Сазерленд описал следующий использованный им и подтверждённый опытом эффективный способ проведения оценки трудоёмкости выполнения задач спринта в некоторых единицах трудоёмкости — человеко-часах и тому подобных.

Оценка задач выполняется разработчиками проекта вместе со скрам-мастером и владельцем продукта. Правильным методом оценки задач является покер планирования. Показано, что такая оценка трудоёмкости значительно точнее оценок проводимых другими лицами.

Колода карт Planning Poker
Колода карт Planning Poker

Каждый разработчик должен дать свою независимую от других оценку трудоёмкости задачи, при этом должны использоваться числа из ряда Фибоначчи (1, 2, 3, 5, 8, 13, 20, 40, 100). Вместо чисел 21, 34, 55 используются числа 20, 40, 100. Оценки могут записываться на листках бумаги, либо для этого могут использоваться специальные карточки (см. покер планирования) и должны открываться одновременно. Такая организация проведения оценки позволяет избежать эффекта привязки.

Если все выбранные разработчиками значения попадают в интервал не более чем из трёх последовательных чисел Фибоначчи, то в качестве конечной оценки задачи группой используется усреднённая оценка всех разработчиков группы. Если выбранные оценки выходят за пределы такого интервала, то разработчики с наибольшим и наименьшим значением должны объяснить основания своего выбора, после чего раунды оценки повторяются до тех пор, пока множество оценок не уложится в интервал из трёх последовательных чисел Фибоначчи. Как показывает практика, в случае, если для формирования конечной оценки трудоёмкости задачи применяется вариант с усреднением оценок лежащих в интервале большем, чем три последовательных числа Фибоначчи, то результат оказывается значительно менее точным.

Хотя изначально задачи, и, соответственно, истории и проект в целом, оцениваются в какой-то определённой единице трудоёмкости, эти оценки в дальнейшем используются как относительные величины трудоёмкости в качестве очков (баллов) для определения скорости (производительности) работы Scrum-команды (Velocity).

Очевидно, что изложенную выше методику оценки трудоёмкости отдельных задач и проекта в целом можно использовать не только в Scrum, но также и в других методах реализации проекта.

Критерий готовности (Definition of Done, DoD)

Критерии, определяющие степень готовности элемента из бэклога пользователя.

Скорость команды Scrum (Velocity)

Общее количество очков, набранных командой Scrum за предыдущий спринт. Данная метрика помогает команде понять, сколько историй она может сделать за один спринт.

Роли в процессе Scrum

По методике Scrum в производственном процессе можно определить роли, разбитые на две группы: «свиней» и «кур». С 2011 метафоры «свиней» и «кур» отсутствуют в руководстве Scrum, так как никаких специальных ритуалов для кур не предусмотрено[18]. Руководство по Scrum полностью относится к свиньям. Эти термины были заимствованы из анекдота:[6]

Свинья идёт по дороге. Курица смотрит на неё и говорит: «А давай откроем ресторан!» Свинья смотрит на курицу и отвечает: «Хорошая идея, и как ты хочешь его назвать?» Курица думает и говорит: «Почему бы не назвать „Яичница с беконом“?». «Так не пойдёт, — отвечает свинья, — ведь тогда мне придётся полностью посвятить себя проекту, а ты будешь вовлечена только частично».

Свиньи создают продукт, тогда как куры заинтересованы, но не настолько — ведь им всё равно, будет ли проект удачным или нет, на них это мало отразится. Требования, пожелания, идеи и влияние кур принимаются во внимание, но им не разрешают непосредственно включаться в ход проекта Scrum.

Основные роли (Core roles) в методологии Scrum («Свиньи»)

«Свиньи» полностью включены в проект и в процесс Scrum. Scrum-мастер (Scrum Master) — проводит совещания (Scrum meetings), следит за соблюдением всех принципов Scrum, разрешает противоречия и защищает команду от отвлекающих факторов, проводит фасилитацию митингов, отвечает за учёт, хранение и выдачу Scrum-инвентаря. Данная роль не предполагает ничего иного, кроме корректного ведения процесса Scrum. Таким образом скрам-мастер Scrum есть Шаблон:Iw команды.

Главным инструментом Scrum-мастера является чемодан фасилитатора, куда входят коробочки для карточек, карточки квадратные и круглые, клейкие карты, булавки, маркеры, канцелярский нож, клейкая лента, карты для Planning Poker, магниты, ножницы, точки для голосования.

Владелец Scrum продукта (Scrum Product Owner) — представляет интересы конечных пользователей и других заинтересованных в продукте сторон.

Команда разработчиков (Scrum Development Team) — кросс-функциональная команда разработчиков проекта, состоящая из специалистов разных профилей: тестировщиков, архитекторов, аналитиков, программистов и т. д. Размер команды составляет от 5 до 9 человек. Команда является единственным полностью вовлечённым участником разработки и отвечает за результат как единое целое. Никто, кроме команды разработчиков, скрам-мастера и владельца продукта не может вмешиваться в процесс разработки на протяжении спринта. Кросс-функциональность команды позволяет максимально эффективно планировать затраты на реализацию бизнес-требований и в сжатые сроки поставлять реально работающие бизнес-приложения в полном соответствии с изменяющимися требованиями заказчика.

Scrum-команда (Scrum Team) — это, собственно, собирательный образ команды, состоящей из команды разработчиков, скрам-мастера и владельца продукта. Команда полностью самодостаточна и не зависит от внешних специалистов или заказчиков.

Дополнительные роли (Ancillary roles) в методологии Scrum («Куры»)

  • Пользователи (Users)
  • Стейкхолдеры (Stakeholders) — лица, которые инициируют проект (бизнес-заказчики) и для кого проект Scrum будет приносить выгоду. Они вовлечены в схватку только во время обзорного совещания по спринту (Sprint Review).

Пользовательские истории

Шаблон:Main

Обязательные поля

  • ID — уникальный идентификатор, порядковый номер, применяемый для идентификации историй в случае их переименования.
  • Название (Name) — краткое описание истории. Оно должно быть однозначным, чтобы и разработчики, и скрам-мастер, и владелец продукта могли понять, о чём идёт речь и отличить одну User Story от другой.
  • Важность (Importance) — степень важности данной истории, по мнению владельца продукта, полученная в результате переговоров с заказчиком. Обычно представляет собой целое число, иногда для этой цели используются числа Фибоначчи. Чем больше значение, тем выше приоритет.
  • Бизнес-процесс (Business process) — краткое описание бизнес-процесса.
  • Начальная оценка (initial estimate) — оценка объёма работ, сделанная до начала спринта, необходимого для реализации истории. Измеряется в story point’ах. Приблизительно соответствует числу «идеальных человеко-часов».
  • Как продемонстрировать (how to demo) — краткое описание способа демонстрации завершённой задачи заказчику, скрам-мастеру и владельцу продукта в конце спринта. Данное поле может содержать собой название (идентификатор) или код автоматизированного теста для приёмо-сдаточного испытания.
  • Критерии приёмки (acceptance criteria) — значимые детали реализации истории, уточняющие требования владельца продукта, собранные всеми участниками Scrum-команды при планировании спринта[19] .

Дополнительные поля

Иногда также используются дополнительные поля в бэклоге проекта в основном для того, чтобы помочь владельцу продукта определиться с его приоритетами.

  • Категория (track). Например, «панель управления» или «оптимизация». При помощи этого поля владелец продукта может легко выбрать все пункты категории «оптимизация» и установить им низкий приоритет.
  • Компоненты (components) — указывает, какие компоненты (например, база данных, сервер, клиент) будут затронуты при реализации пользовательской истории.
  • Инициатор запроса (requestor). Владелец продукта может захотеть хранить информацию о всех заказчиках, заинтересованных в данной бизнес-задаче. Это нужно для того, чтобы держать их в курсе дела о ходе выполнения работ в ходе спринта.
  • ID в системе учёта дефектов (bug tracking ID) — если при разработке используется отдельная Система отслеживания ошибок, в этом случае в описании истории полезно хранить ссылки на все баги, которые к ней относятся.

Основные совещания Scrum

Следующие совещания используются в Scrum, чтобы достичь регулярности, контроля разработки и при этом минимизировать количество встреч, которые не предопределены в Scrum[20].

Совещание планирования спринта (Sprint Planning Meeting)

Проводится в начале каждого спринта.

Весь объём работ, который должен быть выполнен за время спринта планируется на этом совещании. План должен быть результатом работы всех членов Scrum Team.

Продолжительность совещания определяется продолжительностью спринта, опытом команды и другими факторами, но не должна превышать 8 часов. За выполнением этих временных рамок следит ScrumMaster.

Sprint Planning Meeting отвечает на такие вопросы:

  • Какая цель этого спринта, или что можно сделать за этот спринт?
  • Как именно будет достигнута цель спринта, чтобы получить инкремент продукта?

Первый вопрос решают совместно. Product Owner обсуждает цели, которые должны быть выполнены за спринт, учитывая бэклог продукта, предыдущий инкремент продукта и т. д., добавляет новые User Story в бэклог и убирает выполненные. Команда разработчиков пытается спрогнозировать функциональность, которую смогут разработать за время спринта. Также, все члены Scrum Team должны совместно осознать и оценить всю работу грядущего спринта.

Чтобы правильно составить план спринта необходимо учитывать следующее:

  • Бэклог проекта;
  • Предыдущий инкремент проекта;
  • Прогнозируемый потенциал команды разработчиков во время спринта;
  • Прошлые результаты работы команды разработчиков.

Со вторым вопросом работает лишь команда разработчиков. Поскольку цель спринта уже определена, команде разработчиков необходимо понять, как именно её можно достигнуть. Они решают, каким образом будут реализовывать планируемую функциональность, для того, чтобы получить новый готовый инкремент продукта за спринт.

Команда разработчиков, как правило, начинает с проектирования системы и работы, необходимой для преобразования бэклога спринта в инкремент продукта. Работа, запланированная на первые дни спринта, детализируется сильнее, часто разбивается к концу этого совещания на промежутки в один день или даже меньше. Команда разработчиков самостоятельно организует работу в бэклоге спринта, как во время планирования спринта, так и по мере необходимости в течение спринта.

С учётом мнения команды разработчиков, владелец продукта (Product Owner) может уточнить выбранные задачи-цели из бэклога или сформировать компромиссное с ними решение. Если разработчики решат, что работы слишком много или мало, то они с владельцем продукта могут пересмотреть выбранные задачи-цели. Также, команда разработчиков, может пригласить других специалистов для предоставления технических или предметных рекомендаций.

Под конец митинга команда разработчиков объясняет владельцу продукта и Scrum Master-у как они собираются самостоятельно работать, чтобы достичь целей спринта.

Ежедневное Scrum-совещание (Daily Scrum)

Митинг Daily SCRUM
Митинг Daily Scrum

Такие совещания проводятся командой разработчиков, с возможным участием владельца продукта и Scrum мастера, каждый день в одном и том же месте и в одно и то же время длительностью не более 15 минут. На этих совещаниях команда разработчиков планирует работу на сегодняшний рабочий день. Такие встречи оптимизируют командную работу и увеличивают продуктивность с помощью проверки работы, которая была сделана с момента предыдущего Daily Scrum, и планирования предстоящей работы.

Эти ежедневные совещания помогают увидеть, как продвигается работа в направлении достижения цели спринта. Они повышают вероятность того, что команда разработчиков справится с поставленными целями. В ходе совещаний команда разработчиков должна понять, как она должна самоорганизовать совместную работу для достижения целей спринта и реализации запланированного инкремента.

Структура таких совещаний определяется командой разработчиков, при необходимости и когда это целесообразно структура совещаний может быть изменена, при этом основное внимание должно уделяться достижению цели спринта, однако, есть обязательные правила:

  • Daily Scrum должен длиться не более 15 минут;
  • Daily Scrum проводится каждый рабочий день, пропуск Daily Scrum недопустим;
  • Примеры вопросов, которые могут рассматриваться на Daily Scrum:
    • Что я сделал вчера, что помогло команде разработчиков достичь цели спринта?
    • Что я сделаю сегодня, чтобы помочь команде разработчиков достичь цели спринта?
    • Я вижу какие-либо препятствия, мешающие мне или команде разработчиков достичь цели спринта?

Команда разработчиков или члены команды часто встречаются сразу после Daily Scrum для более подробных обсуждений или для адаптации или перепланировки остальной части работы.

Scrum Master гарантирует проведение таких встреч, но отвечает за проведение Daily Scrum команда разработчиков. Также Scrum Master обучает команду разработчиков удерживать проведение Daily Scrum в 15 минутных рамках и должен следить, чтобы встреча не была нарушена.

Цель таких встреч — улучшение коммуникаций в команде, сокращение количества дополнительных встреч, выявление будущих рисков и трудностей, способствование быстрому принятию решений.

Это основное средство проверки работы команды разработчиков.

Обзор итогов спринта (Sprint review)

Обзор итогов спринта
Обзор итогов спринта

Проводится в конце спринта, чтобы проверить инкремент продукта и, при необходимости, адаптировать бэклог. Во время обзора итогов спринта участвует Scrum Team и все заинтересованные лица. Это неформальная встреча и презентация инкремента предназначена для получения обратной связи и развитии сотрудничества.

Обзор итогов спринта включает в себе следующие элементы:

Демонстрация инкремента продукта заказчику
Демонстрация инкремента продукта заказчику
  • Владелец продукта показывает, какие элементы бэклога были выполнены, а какие нет.
  • Команда разработчиков обсуждает, что прошло хорошо, а с чем возникли трудности, и как они были решены.
  • Команда разработчиков демонстрирует работу, которую она выполнила за спринт, и какой инкремент продукта получила.
  • Владелец продукта обсуждает бэклог в текущем состоянии. Также он прогнозирует вероятные цели и сроки выполнения на основании достигнутого результата.
  • Происходит обсуждение того, что наиболее ценно делать дальше на основании анализа рынка и/или потенциальной аудитории.
  • Обозревание сроков, бюджета, возможностей и рынка для дополнения бэклога.

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

Ретроспективное совещание (Sprint Retrospective)

Файл:Retrospective.jpg
Ретроспективное совещание

Цель ретроспективного совещания — выработка предложений по совершенствованию процесса (процедур, приёмов, операций) реализации проекта. В ходе ретроспективного анализа прошедшего спринта формируется план улучшений процесса реализации проекта для следующего спринта. Совещание проводится после обзора итогов спринта до планирования следующего спринта и должно занимать не больше 3 часов. Контролирует ход совещания Scrum Master.

Основными целями совещания являются:

  • Анализ последнего завершенного спринта в части задействованных людей, процессов и инструментов.
  • Выявление основных эффективных решений по улучшению процесса реализации проекта принятых для прошедшего спринта и поиск путей их дальнейшего совершенствования.
  • Формирование плана внедрения, совершенствования процесса реализации проекта Scrum-командой.

Scrum Master призывает команду дать предложения по повышению эффективности процесса разработки. Во время каждой ретроспективы спринта команда должна искать и предлагать способы и приёмы улучшения рабочих процессов.

К концу ретроспективного анализа спринта, команда должна определить предложения по улучшению для внедрения в следующем спринте. Хотя такие предложения могут быть реализованы в любое время, ретроспектива спринта предоставляет возможность сосредоточиться на анализе взаимодействий команды и её адаптации для текущих условий.

Отмена спринта

Спринт может быть отменён, если цель спринта потеряла актуальность. Только Product Owner имеет право отменить спринт[21].

Дополнительные совещания Scrum

Эти совещания могут не входить в общий рабочий процесс Scrum, но определённо имеют место быть в некоторых ситуациях. Они применяются когда разработчиков больше 7-11 человек, то есть больше рекомендуемого размера Scrum-команды.

Scrum of Scrums

Файл:Scrum of Scrums.png
Scrum of Scrum of Scrums

Если коллектив больше 11 человек, то команда больше рекомендуемого Scrum размера. Для расширения Scrum предложена методика Scrum of Scrums[22].

Тогда коллектив разбивается на несколько Scrum-команд. В каждой cвой скрам-мастер и владелец продукта.

Команды проводят Daily Scrum.

После ежедневного совещания Scrum проводится митинг Scrum of Scrums (SoS[23]). Это значит следующее. От каждой команды выбирается по представителю. Представители разбиваются по 5-9 человек. Каждой группе назначается главный скрам-мастер (Chief Scrum Master[24]) и главный владелец продукта (Chief Scrum Product Owner[25]) из числа скрам-мастеров и владельцев продукта, участвующих в проекте. Команда представителей из разных Scrum Team называется Scrum of Scrums Team[26]. В таком составе проводят 15-минутный стоячий митинг Scrum of Scrums (SoS) или Meta Scrum или Scaled Daily Scrum(SDS)[27].

Кен Швабер рекомендует проводить Scrum of Scrums каждый день[28].

Однако некоторые команды Scrum of Scrums проводят не каждый день, а 2-3 раза в неделю[28]. Это нарушает базовые принципы Scrum и является классическим примером ScrumBut[29][30]. Это не позволяет в полной мере использовать все преимущества Scrum[31].

Scrum of Scrums позволяет нескольким Scrum-командам обсуждать работу, фокусируясь на общих областях и взаимной интеграции. Главный скрам-мастер (Chief Scrum Master) задаёт всем членам Scrum of Scrum-команды четыре вопроса[28], три первых вопроса повторяют вопросы Daily Scrum:

  • Что каждая команда сделала с момента предыдущего совещания Scrum of Scrums для достижения цели спринта?
  • Что каждая команда сделает к следующему ежедневному совещанию Scrum of Scrums для достижения цели спринта?
  • Есть ли проблемы, мешающие команде достичь цели спринта?
  • Нужно ли другой команде сделать что-то из задач вашей команды для того чтобы помочь ей достичь цели спринта?

По методике Scrum of Scrums можно и дальше увеличивать число разработчиков. Если Scrum of Scrums не охватывает весь коллектив, может быть проведён митинг Scrum of Scrum of Scrums (Scrum-3, SoSoS)[32], Scrum of Scrum of Scrum of Scrums (Scrum-4, SoSoSoS[33])[34], и так далее[35]. Последний MetaScrum называется Executive Meta Scrum(EMS)[36] или Executive Action Team(EAT)[37]. Такой подход позволяет всего за час организовать работу 4096 человек[34].

Порядок проведения Scrum of Scrums такой же как у Daily Scrum[26]:

  • в одно и то же время, в одном и том же месте,
  • все могут наблюдать, но только «свиньи» говорят,
  • в митинге участвуют Chief Scrum Master, Chief Scrum Product Owner и Scrum of Scrums Team,
  • длится ровно 15 минут,
  • все участники Scrum of Scrums стоят (митинг в формате Daily Standup).

Упорядочение беклога продукта (Product Backlog Refinement)

Беклог упорядочивается для того, чтобы команда разработки и владелец продукта могли[38]:

  • Добавить, убрать, объединить или разбить элементы беклога продукта (PBI), декомпозировать элементы беклога на элементы-задачи уровня программирования.
  • Уточнить или дать новые оценки трудоёмкости задач и др.
  • Изменить порядок следования элементов беклога продукта.
  • Обсудить и прояснить бизнес-требования.

Другие методики масштабирования Scrum (Scaling Scrum)

Файл:Nexus integration team.png
Методика Nexus

Кроме классической методики Scrum of Scrums (SoS) применяют методики LeSS[39][40][41][42] (от 2 до 8 команд), Nexus[43], RAGE[44], DAD[45], APM[46][47], SAFe[48]. Для очень больших проектов вместо LeSS применяют LeSS Huge[40](8+ команд). Только методики SoS[49] и Nexus[50] созданы Сазерлендом и Швабером[40] и преподаются на сертификационных курсах CSM и PSM.

Обучение и сертификация специалистов по Scrum

В Scrum важнейшую роль играют квалифицированные Scrum Master, Scrum Product Owner и Scrum Team. Основатели Scrum и сертифицированные тренеры (CST®) проводят обучающие курсы с последующей сертификацией специалистов по Scrum. Обязательную основу для всех составляют навыки скрам-мастера. Далее идёт специализация на Scrum Master, Scrum Product Owner и Scrum Developer (член Scrum Team). Успешно сдавшим экзамен выдаются сертификаты: Certified ScrumMaster (CSM®), Certified Scrum Product Owner (CSPO®), Certified Scrum Developer (CSD®), Professional Scrum Master (PSM™), Professional Scrum Product Owner (PSPO™), Professional Scrum Developer (PSD™). Желающие дальше совершенствовать знания и навыки Scrum могут после базовых курсов CSM, CSPO от Scrum ALLIANCE и сдачи экзамена по ним, имеющие опыт работы в своей Scrum-роли не менее 1 года, пройти курсы Advanced Certified Scrum Master (A-CSM), Advanced Certified Scrum Product Owner, Advanced Certified Scrum Developer[51]. Для разработчиков предусмотрен отдельный набор курсов, связанных с TDD, DevOps и пр[52]. Прошедшие курсы CSM, CSPO, CSD, A-CSM, A-CSPO, A-CSD и сдавшие экзамены по ним, имеющие опыт работы в соответствующей Scrum-роли не менее 3 лет допускаются к курсам CSP®-SM, CSP®-PO, CSP-D®[53]. В рамках сертификации scrum.org курсы тоже имеют несколько ступеней: PSM-I, PSM-II, PSM-III, PSPO-I, PSPO-II, PSPO-III[54].

Возможно дальнейшее обучение с выдачей сертификата тренера по Scrum— Certified Scrum Trainer (CST®) или Professional Scrum Trainer (PST™).

К сертификации на CST допускаются лица, имеющие сертификат CSP-SM или CSP-PO или CSP-D и не менее 5 лет работы в соответствующей Scrum-роли[55].

В рамках сертификации PST выделяются тренеры скрам-мастеров (PSSMT), владельцев продукта (PSPOT) и команды разработчиков (PSDT)[56][57] [58]. Для допуска к курсам тренеров — train-the-trainer (TTT) и сертификации требуются:

  • на PSSMT — сертификат PSM III;
  • на PSPOT — сертификаты PSM I и PSPO I;
  • на PSDT — сертификаты PSM I и PSD I.

Сертификат по Scrum действует два года. В течение этих двух лет для продления сертификата на следующие два года надо набрать определённое число Scrum Education Units (SEU®)[59]. Scrum Education Units даются за прохождение курсов по Scrum, участие в Global Scrum Gathering℠[60] и Regional Scrum Gathering℠[61], преподавание Scrum и другие действия, направленные на повышение вашей Scrum-квалификации[59]. Такая система показывает, что ваши знания по Scrum актуальны и вы всегда готовы их применить и передать другим. Это значительно повышает ценность Scrum-сертификата. Scrum Education Units начисляются следующим образом: 1 час обучения Scrum (участие в гатхеринге, преподавание, участие в вебинаре и т. д.) равен 1 SEU®. Для обновления сертификата требуется:

  • CSM®, CSPO®, CSD® — 20 SEU®;
  • A-CSM®, A-CSPO®, A-CSD® — 30 SEU®;
  • CSP®-SM, CSP®-PO, CSP-D®, CAL II- 40 SEU®.

При наличии нескольких сертификатов число необходимых для обновления SEU® вычисляется с помощью специального калькулятора:[62].

Не совсем Scrum

ScrumBut

ScrumBut— это использование лишь части принципов Scrum, сохраняя убеждённость в работе по Scrum[29][30]. Это не только не позволяет в полной мере использовать все преимущества Scrum[29], но и ухудшает производительность по сравнению с полным отсутствием методологии.

Исследования показали, что ScrumBut снижает ежегодную прибыль с 400 % до 0-35 %[31]. При этом за 100 % принята производительность работы по «водопаду», а за 400 % — по Scrum. Большое исследование причин и последствий ScrumBut проведено в работе «ScrumBut in Professional Software Development»[63].

Классические примеры ScrumBut[29]:

  • Проведение Daily Scrum или Scrum of Scrums не каждый день;
  • Отсутствие ретроспектив;
  • Спринты длиннее 4 недель;
  • Отсутствие Definition Of Done.

Большое число примеров ScrumBut приведено на сайте альянса Scrum — Scrum ALLIANCE®[64].

ScrumAnd

Кроме ScrumBut рассматривают ScrumAnd[65]. Считается, что ScrumAnd использует Scrum и другие лучшие практики. Однако отличить ScrumBut от ScrumAnd бывает непросто[66]. Например задают вопрос: у нас спринт 6 месяцев, это ScrumBut или ScrumAnd? Авторы[66] однозначно относят это к ScrumBut и приводят методику различения ScrumBut и ScrumAnd. Следует помнить, что методика Scrum - самодостаточная, а как ScrumBut, так и ScrumAnd приводят к снижению эффективности процесса разработки бизнес-приложений[66].

Примечания

Шаблон:Примечания

Ссылки

Литература

Шаблон:ВС Шаблон:Software Engineering

  1. Шаблон:Cite web
  2. Шаблон:Cite web
  3. Шаблон:Cite web
  4. 4,0 4,1 Шаблон:Cite web
  5. Шаблон:Cite web
  6. 6,0 6,1 6,2 6,3 Шаблон:Книга
  7. Leslie Hulet Stahl: Wicked Problems, Righteous Solutions: A Catalog of Modern Engineering Paradigms Yourdon Press Computing Series, 1990 (первое издание), ISBN 0-13-590126-X
  8. Шаблон:Cite web
  9. Шаблон:Книга
  10. Шаблон:Статья
  11. Шаблон:Статья
  12. Шаблон:Книга
  13. Шаблон:Cite web
  14. Спринт — рывок; бросок; бег на короткую дистанцию.
  15. Шаблон:Книга
  16. Шаблон:Cite web
  17. Шаблон:Cite web
  18. Шаблон:Cite web
  19. Шаблон:Cite web
  20. Шаблон:Cite web
  21. Шаблон:Cite web
  22. Шаблон:Cite web
  23. Шаблон:Cite web
  24. Шаблон:Cite web
  25. Шаблон:Cite web
  26. 26,0 26,1 Шаблон:Cite web
  27. Шаблон:Cite web
  28. 28,0 28,1 28,2 Шаблон:Cite web
  29. 29,0 29,1 29,2 29,3 Шаблон:Cite web
  30. 30,0 30,1 ITKaiZenClub «Scrum, but..» или типичные проблемы при внедрении Scrum, 8 февраля | DOU
  31. 31,0 31,1 Шаблон:Cite web
  32. Шаблон:Cite web
  33. Agile Organization with Scrum@Scale, Vimar Spa a real example
  34. 34,0 34,1 Agile In Military Hardware. How the SAAB Gripen became the world’s most cost effective military aircraft Шаблон:Wayback / Sutherland and Joe Justice, 2017Шаблон:Ref-en
  35. Шаблон:Cite web
  36. Шаблон:Cite web
  37. Шаблон:Cite web
  38. Шаблон:Cite web
  39. Шаблон:Cite web
  40. 40,0 40,1 40,2 Шаблон:Cite web
  41. Шаблон:Cite web
  42. Шаблон:Cite web
  43. Шаблон:Cite web
  44. Шаблон:Cite web
  45. Шаблон:Cite web
  46. Шаблон:Cite web
  47. Шаблон:Cite web
  48. Шаблон:Cite web
  49. Шаблон:Cite web
  50. Шаблон:Cite web
  51. Шаблон:Cite web
  52. Course Search — Scrum Alliance
  53. Шаблон:Cite web
  54. Шаблон:Cite web
  55. Шаблон:Cite web
  56. Шаблон:Cite web
  57. Шаблон:Cite web
  58. Шаблон:Cite web
  59. 59,0 59,1 Шаблон:Cite web
  60. Шаблон:Cite web
  61. Шаблон:Cite web
  62. Шаблон:Cite web
  63. Шаблон:Cite web
  64. Шаблон:Cite web
  65. Шаблон:Cite web
  66. 66,0 66,1 66,2 Шаблон:Cite web