SCRUM
SCRUM (/skrʌm/[1]; англ. scrum «схватка») — методология управления проектами.
SCRUM | |
---|---|
Официальный сайт | scrum.org |
Медиафайлы на Викискладе |
SCRUM обычно используется в сфере разработки ПО, но может использоваться и в других производственных отраслях[2].
Кроме управления проектами по разработке ПО, SCRUM может также использоваться в работе команд поддержки программного обеспечения, как подход к управлению разработкой и сопровождению программ.
История
Первоисточниками методологии Scrum послужили: производственная система компании Toyota и цикл OODA (OODA loop, или петля OODA, или петля Бойда) концепции применения боевой авиации, включающий в себя четыре составляющих: observe («наблюдать»), orient («ориентироваться»), decide («решать»), act («действовать»).[5]
Сам подход впервые описали Хиротака Такэути и Икудзиро Нонака в статье The New Product Development Game (Harvard Business Review, январь-февраль 1986). Они отметили, что проекты, над которыми работают небольшие команды из специалистов различного профиля, обычно систематически производят лучшие результаты, и объяснили это как «подход регби».
В 1991 году ДеГрейс и Шталь в книге «Нечестивые проблемы, праведные решения»[6] называли подобный подход словом «scrum» (буквальный перевод — «толкотня», в регбийной терминологии — схватка), спортивный термин, приведённый в статье Такэути и Нонакой. Кен Швабер в начале 1990-х использовал подход, который привёл SCRUM в его компанию. Впервые методология SCRUM была представлена на общее обозрение задокументированной, чётко сформированной и описанной совместно Швабером и Джефом Сазерлендом[5] на OOPSLA’95[7] в Остине. К. Швабер и Д. Сазерленд на протяжении следующих лет работали вместе, чтобы обработать и описать весь свой опыт и лучшие практические образцы для индустрии в одно целое, в ту методологию, что известна сегодня как SCRUM.
Швабер объединил усилия с Майком Бидлом в 2001 году, чтобы детально описать метод в книге «Agile Software Development with SCRUM»[8].
В 2002 году Швабер вместе с другими основал Альянс Scrum[9] и создал серию сертифицированных аккредитаций Scrum. Швабер покинул Scrum Alliance в конце 2009 года и основал Scrum.org, который курирует параллельную серию аккредитаций Professional Scrum[10].
С 2009 года публичный документ под названием The Scrum Guide[11] официально определяет Scrum. Он был пересмотрен более 5 раз. В 2018 году Швабер и сообщество Scrum.org вместе с лидерами сообщества Kanban опубликовали Руководство по Kanban для групп Scrum[12].
Определения
SCRUM
SCRUM (англ. «схватка» — термин из регби, обозначает стартовое состояние команд перед вбросом мяча) — минимально необходимый набор мероприятий, артефактов, ролей, на которых строится процесс SCRUM-разработки, позволяющий за фиксированные небольшие промежутки времени, называемые спринтами (sprints), предоставлять конечному пользователю работающий продукт с новыми бизнес-возможностями, для которых определён наибольший приоритет. Методология базируется на идеях, озвученных в статье Таекучи и Нонака «The New New Product development Game», и базируется на командной работе, по аналогии с тем, как в регби команда действует сообща, ради достижения общей цели. Возможности к реализации в очередном спринте определяются командой в начале спринта на совещании по планированию спринта Sprint Planning Meeting. Для оценки предстоящего объёма работ на спринте чаще всего используются относительные оценки, и практика покера планирования (Planning Poker).
В конце спринта Scrum-команда встречается на обзорном совещании результатов спринта (Sprint Review — старое название Demonstration) с заказчиком, и представляет ему инкремент бизнес-продукта (версия продукта с законченным набором функциональности, который уже можно отдавать заказчику и пользователю для использования), который она успела сделать за спринт. Цель Sprint Review — получение обратной связи от заказчика, чтобы понять, на чём нужно делать акцент в дальнейшем, и какой должен быть следующий инкремент бизнес-продукта.
Строго фиксированная небольшая длительность спринта (от 1 до 4 недель) снижает риски, и даёт возможность быстро получить обратную связь от заказчика, чтобы скорректировать видение продукта.
Спринт
Спринт[13] — промежуток времени, достаточный для выполнения запланированной совокупности операций SCRUM, целью которой является создание инкремента бизнес-продукта. Жёстко фиксирован по времени. Длительность одного спринта от 1 до 4 недель. Чем короче спринт, тем более гибким является процесс разработки, релизы выходят чаще, быстрее поступают отзывы от потребителя, меньше времени тратится на работу в неправильном направлении, но много времени тратится на митинги планирования спринта, ретроспективы. С другой стороны, при более длительных спринтах команда (SCRUM Team) уменьшает издержки на совещания, демонстрации продукта и т. п. Разные команды подбирают длину спринта согласно специфике своей работы, кросс-функциональности команд и требований, часто методом проб и ошибок. Для оценки объёма работ в спринте можно использовать предварительную оценку, измеряемую в баллах истории. Предварительная оценка длины спринта фиксируется в бэклоге проекта (product backlog; см. далее).
Артефакты SCRUM
Диаграмма сгорания задач (Burndown chart)
Диаграмма, демонстрирующая количество сделанной и оставшейся работы относительно времени на разработку проекта называется диаграммой сгорания (Burndown chart).
Данные диаграммы необходимо ежедневно обновлять, чтобы в реальном времени показывать подвижки и издержки в работе над спринтом и проектом, доступные для всех членов SCRUM-команды: скрам-мастера и владельца продукта.
Диаграмма сгорания работ для спринта — показывает сколько задач сделано и сколько ещё остаётся сделать в текущем спринте.
Журнал пожеланий проекта (Project backlog)
Журнал пожеланий проекта (бэклог проекта) содержит перечень требований к функциональности, упорядоченный по степени важности, и, соответственно, порядку реализации. Элементы этого журнала называются пользовательскими историями (user story) или элементами бэклога (backlog items). Бэклог проекта открыт для редактирования для всех участников процесса SCRUM. Ответственный за ведение бэклога проекта — владелец продукта SCRUM.
Журнал пожеланий спринта (Sprint backlog)
Журнал пожеланий спринта (бэклог спринта) — содержит функциональность, выбранную владельцем продукта из бэклога проекта. Все функции разбиты по задачам, каждая из которых оценивается командой SCRUM. На Sprint Planning Meeting методом покера планирования команда оценивает объём работы, который нужно выполнить для завершения спринта[14].
Scrum-доска
Scrum-доска — это инструмент открытой демонстрации состояния текущей работы Scrum-команды. Scrum-доска состоит из трёх колонок: «сделать» (to-do), «в процессе» (in progress), «сделано» (done).
На Scrum-доске размещается весь объём Sprint Backlog, который команда выбрала на Sprint Planning для реализации в текущем спринте. Обычно карточки бизнес-задач располагаются на доске сверху вниз в порядке убывания приоритета (сверху — самые важные, внизу — наименее важные). Хорошей практикой является декомпозиция бизнес-задач на конкретные работы (технические, организационные, и другие), которые необходимо выполнить команде, для реализации бизнес-задачи.
Бизнес-задачи, и карточки конкретных работ, передвигаются по доске из колонки в колонку, в соответствии с тем, как команда берёт их на исполнение (In Progress), и завершает (Done). Для обеспечения видимости прогресса работы команды «убывание работы» по дням, отображается на Burndown Chart’е.
Чаще всего, в начале работы команды используют доски с нарисованными на листах флипчартами, при этом названия работ выписываются на клейких стикерах, и приклеиваются на доску. По мере выполнения работ по результатам совещаний, команда физически перемещает стикеры из колонки в колонку.
Так же часто используются электронные доски, с реализованными в них похожими механизмами. Например, Atlassian Jira, Trello или kaiten[15].
Цель спринта (Sprint Goal)
Представляет собой краткое описание бизнес-цели спринта. Как артефакт, цель спринта помогает команде принимать обоснованные бизнес-решения. Этот артефакт необходим команде проекта для самостоятельного принятия решения при обнаружении альтернативных путей решения бизнес-задачи.
Инкремент продукта
Инкремент продукта представляет собой готовую к использованию часть продукта, которая должна быть реализована к завершению спринта. Команда на Sprint Review (Demonstration) демонстрирует инкремент продукта скрам-мастеру, владельцу продукта, заказчикам и другим заинтересованным лицам[3], для получения обратной связи от них и принятия решения по дальнейшему направлению развития продукта[16].
История пользователя (User Story)
Требуемую бизнес-функциональность, которую добавляют в бэклог проекта, часто называют пользовательской историей. Зачастую история имеет следующую структуру: «Будучи пользователем <тип пользователя> я хочу сделать <действие>, чтобы получить <результат>». Такая структура удобна тем, что понятна как разработчикам, так и заказчикам.
Оценка трудоёмкости выполнения пользовательской истории (задачи спринта)
В книге[5] Сазерленд описал следующий, использованный им, подтверждённый опытом эффективный способ проведения оценки трудоёмкости выполнения задач спринта в некоторых единицах трудоёмкости — человеко-часах и тому подобных.
Оценка задач выполняется разработчиками группы проекта вместе со скрам-мастером и владельцем продукта. Правильным методом оценки задач является покер планирования. Показано, что такая оценка трудоёмкости значительно точнее оценок проводимых другими лицами.
Каждый разработчик должен дать свою независимую от других оценку трудоёмкости задачи, при этом должны использоваться числа из ряда Фибоначчи (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, так как никаких специальных ритуалов для кур не предусмотрено[17]. Руководство по SCRUM полностью относится к свиньям. Эти термины были заимствованы из анекдота:[5]
Свинья идёт по дороге. Курица смотрит на неё и говорит: «А давай откроем ресторан!» Свинья смотрит на курицу и отвечает: «Хорошая идея, и как ты хочешь его назвать?» Курица думает и говорит: «Почему бы не назвать „Яичница с беконом“?». «Так не пойдёт, — отвечает свинья, — ведь тогда мне придётся полностью посвятить себя проекту, а ты будешь вовлечена только частично».
Свиньи создают продукт, тогда как куры заинтересованы, но не настолько — ведь им всё равно, будет ли проект удачным или нет, на них это мало отразится. Требования, пожелания, идеи и влияние кур принимаются во внимание, но им не разрешают непосредственно включаться в ход проекта SCRUM.
Основные роли (Core roles) в методологии SCRUM («Свиньи»)
«Свиньи» полностью включены в проект и в процесс SCRUM. SCRUM-мастер (SCRUM Master) — проводит совещания (Scrum meetings) следит за соблюдением всех принципов SCRUM, разрешает противоречия и защищает команду от отвлекающих факторов, проводит фасилитацию митингов, отвечает за учёт, хранение и выдачу SCRUM-инвентаря. Данная роль не предполагает ничего иного, кроме корректного ведения процесса SCRUM. Таким образом скрам-мастер SCRUM есть сервант-лидер команды.
Главным инструментом SCRUM-мастера является чемодан фасилитатора, куда входят коробочки для карточек, карточки квадратные и круглые, клейкие карты, булавки, маркеры, канцелярский нож, клейкая лента, карты для Planning Poker, магниты, ножницы, точки для голосования.
Владелец продукта SCRUM (SCRUM Product Owner) — представляет интересы конечных пользователей и других заинтересованных в продукте сторон.
Команда разработчиков (SCRUM Development Team) — кросс-функциональная команда разработчиков проекта, состоящая из специалистов разных профилей: тестировщиков, архитекторов, аналитиков, программистов и т. д. Размер команды составляет от 5 до 9 человек. Команда является единственным полностью вовлечённым участником разработки и отвечает за результат как единое целое. Никто, кроме команды разработчиков, скрам-мастера и владельца продукта не может вмешиваться в процесс разработки на протяжении спринта. Кросс-функциональность команды позволяет максимально эффективно планировать затраты на реализацию бизнес-требований и в сжатые сроки поставлять реально работающие бизнес-приложения в полном соответствии с изменяющимися требованиями заказчика.
SCRUM-команда (SCRUM Team) — это, собственно, собирательный образ команды, состоящей из команды разработчиков, скрам-мастера и владельца продукта. Команда полностью самодостаточна и не зависит от внешних специалистов или заказчиков.
Дополнительные роли (Ancillary roles) в методологии SCRUM («Куры»)
- Пользователи (Users)
- Стейкхолдеры (Stakeholders) — лица, которые инициируют проект (бизнес-заказчики) и для кого проект SCRUM будет приносить выгоду. Они вовлечены в схватку только во время обзорного совещания по спринту (Sprint Review).
Пользовательские истории
Обязательные поля
- ID — уникальный идентификатор, порядковый номер, применяемый для идентификации историй в случае их переименования.
- Название (Name) — краткое описание истории. Оно должно быть однозначным, чтобы и разработчики, скрам-мастер и владелец продукта могли понять, о чём идёт речь и отличить одну User Story от другой.
- Важность (Importance) — степень важности данной истории, по мнению владельца продукта, полученная в результате переговоров с заказчиком. Обычно представляет собой целое число, иногда для этой цели используются числа Фибоначчи. Чем больше значение, тем выше приоритет.
- Бизнес-процесс (Business process) — краткое описание бизнес-процесса, в котором программисты бизнес-приложений получают в два раза больше программистов других приложений.
- Начальная оценка (initial estimate) — оценка объёма работ, сделанная до начала спринта, необходимого для реализации истории. Измеряется в story point’ах. Приблизительно соответствует числу «идеальных человеко-часов».
- Как продемонстрировать (how to demo) — краткое описание способа демонстрации завершённой задачами заказчику, скрам-мастеру и владельцу продукта в конце спринта. Данное поле может содержать собой название (идентификатор) или код автоматизированного теста для приёмо-сдаточного испытания.
- Критерии приёмки (acceptance criteria) — значимые детали реализации истории, уточняющие требования владельца продукта, собранные всеми участниками SCRUM-команды при планировании спринта[18] .
Дополнительные поля
Иногда также используются дополнительные поля в бэклоге проекта в основном для того, чтобы помочь владельцу продукта определиться с его приоритетами.
- Категория (track). Например, «панель управления» или «оптимизация». При помощи этого поля владелец продукта может легко выбрать все пункты категории «оптимизация» и установить им низкий приоритет.
- Компоненты (components) — указывает, какие компоненты (например, база данных, сервер, клиент) будут затронуты при реализации пользовательской истории.
- Инициатор запроса (requestor). Владелец продукта может захотеть хранить информацию о всех заказчиках, заинтересованных в данной бизнес-задаче. Это нужно для того, чтобы держать их в курсе дела о ходе выполнения работ в ходе спринта.
- ID в системе учёта дефектов (bug tracking ID) — если при разработке используется отдельная Система отслеживания ошибок, в этом случае в описании истории полезно хранить ссылки на все баги, которые к ней относятся.
Основные совещания SCRUM
Следующие совещания используются в SCRUM, чтобы достичь регулярности, контроля разработки и при этом минимизировать количество встреч, которые не предопределены в SCRUM[19].
Совещание планирования спринта (Sprint Planning Meeting)
Проводится в начале каждого спринта.
Весь объём работ, который должен быть выполнен за время спринта планируется на этом совещании. План должен быть результатом работы всех членов SCRUM Team.
Продолжительность совещания определяется продолжительностью спринта, опытом команды и другими факторами, но не должна превышать 8 часов. За выполнением этих временных рамок следит SCRUM Master.
Sprint Planning Meeting отвечает на такие вопросы:
- Какая цель этого спринта, или что можно сделать за этот спринт?
- Как именно будет достигнута цель спринта, чтобы получить инкремент продукта?
Первый вопрос решают совместно. Product Owner обсуждает цели, которые должны быть выполнены за спринт, учитывая бэклог продукта, предыдущий инкремент продукта и т. д., добавляет новые User Story в бэклог и убирает выполненные. Команда разработчиков пытается спрогнозировать функциональность, которую смогут разработать за время спринта. Также, все члены SCRUM Team должны совместно осознать и оценить всю работу грядущего спринта.
Чтобы правильно составить план спринта необходимо учитывать следующее:
- Бэклог проекта;
- Предыдущий инкремент проекта;
- Прогнозируемый потенциал команды разработчиков во время спринта;
- Прошлые результаты работы команды разработчиков.
Со вторым вопросом работает лишь команда разработчиков. Поскольку цель спринта уже определена, команде разработчиков необходимо понять, как именно её можно достигнуть. Они решают, каким образом будут реализовывать планируемую функциональность, для того, чтобы получить новый готовый инкремент продукта за спринт.
Команда разработчиков, как правило, начинает с проектирования системы и работы, необходимой для преобразования бэклога спринта в инкремент продукта. Работа, запланированная на первые дни спринта, детализируется сильнее, часто разбивается к концу этого совещания, на промежутки в один день или даже меньше. Команда разработчиков самостоятельно организует работу в бэклоге спринта, как во время планирования спринта, так и по мере необходимости в течение спринта.
С учётом мнения команды разработчиков, владелец продукта (Product Owner) может уточнить выбранные задачи-цели из бэклога или сформировать компромиссное с ними решение. Если разработчики решат, что работы слишком много или мало, то они с владельцем продукта могут пересмотреть выбранные задачи-цели. Также, команда разработчиков, может пригласить других специалистов для предоставления технических или предметных рекомендаций.
Под конец митинга команда разработчиков объясняет владельцу продукта и SCRUM Master-у как они собираются самостоятельно работать, чтобы достичь целей спринта.
Ежедневное 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)
Цель ретроспективного совещания — выработка предложений по совершенствованию процесса (процедур, приёмов, операций) реализации проекта. В ходе ретроспективного анализа прошедшего спринта формируется план улучшений процесса реализации проекта для следующего спринта. Совещание проводится после обзора итогов спринта до планирования следующего спринта и должно занимать не больше 3 часов. Контролирует ход совещания SCRUM Master.
Основными целями совещания являются:
- Анализ последнего завершенного спринта в части задействованных людей, процессов и инструментов.
- Выявление основных эффективных решений по улучшению процесса реализации проекта принятых для прошедшего спринта и поиск путей их дальнейшего совершенствования.
- Формирование плана внедрения, совершенствования процесса реализации проекта SCRUM командой.
SCRUM Master призывает команду дать предложения по повышению эффективности процесса разработки. Во время каждой ретроспективы спринта команда должна искать и предлагать способы и приёмы улучшения рабочих процессов.
К концу ретроспективного анализа спринта, команда должна определить предложения по улучшению для внедрения в следующем спринте. Хотя такие предложения могут быть реализованы в любое время, ретроспектива спринта предоставляет возможность сосредоточиться на анализе взаимодействий команды и её адаптации для текущих условий.
Отмена спринта
Спринт может быть отменён, если цель спринта потеряла актуальность. Только Product Owner имеет право отменить спринт[20].
Дополнительные совещания SCRUM
Эти совещания могут не входить в общий рабочий процесс SCRUM, но определённо имеют место быть в некоторых ситуациях. Они применяются когда разработчиков больше 7-11 человек, то есть больше рекомендуемого размера SCRUM-команды.
SCRUM of SCRUMs
Если коллектив больше 11 человек, то команда больше рекомендуемого SCRUM размера. Для расширения SCRUM предложена методика SCRUM of SCRUMs[21].
Тогда коллектив разбивается на несколько SCRUM-команд. В каждой cвой скрам-мастер и владелец продукта.
Команды проводят Daily SCRUM.
После ежедневного совещания SCRUM проводится митинг SCRUM of SCRUMs (SoS[22]). Это значит следующее. От каждой команды выбирается по представителю. Представители разбиваются по 5-9 человек. Каждой группе назначается главный скрам-мастер (Chief SCRUM Master[23]) и главный владелец продукта (Chief SCRUM Product Owner[24]) из числа скрам-мастеров и владельцев продукта, участвующих в проекте. Команда представителей из разных SCRUM Team называется SCRUM of SCRUMs Team[25]. В таком составе проводят 15-минутный стоячий митинг SCRUM of SCRUMs (SoS) или Meta SCRUM или Scaled Daily SCRUM(SDS)[26].
Кен Швабер рекомендует проводить SCRUM of SCRUMs каждый день[27].
Однако некоторые команды SCRUM of SCRUMs проводят не каждый день, а 2-3 раза в неделю[27]. Это нарушает базовые принципы SCRUM и является классическим примером SCRUMbut[28][29]. Это не позволяет в полной мере использовать все преимущества SCRUM[30].
SCRUM of SCRUMs позволяет нескольким SCRUM-командам обсуждать работу, фокусируясь на общих областях и взаимной интеграции. Главный скрам-мастер (Chief SCRUM Master) задаёт всем членам SCRUM of SCRUMs-команды четыре вопроса[27], три первых вопроса повторяют вопросы Daily SCRUM:
- Что каждая команда сделала с момента предыдущего совещания SCRUM of SCRUMs для достижения цели спринта?
- Что каждая команда сделает к следующему ежедневному совещанию SCRUM of SCRUMs для достижения цели спринта?
- Есть ли проблемы, мешающие команде достичь цели спринта?
- Нужно ли другой команде сделать что-то из задач вашей команды для того чтобы помочь ей достичь цели спринта?
По методике SCRUM of SCRUMs можно и дальше увеличивать число разработчиков. Если SCRUM of SCRUMs не охватывает весь коллектив, может быть проведён митинг SCRUM of SCRUM of SCRUMs (SCRUM-3, SoSoS)[31], SCRUM of SCRUM of SCRUM of SCRUMs (SCRUM-4, SoSoSoS[32])[33], и так далее[34]. Последний MetaSCRUM называется Executive Meta SCRUM(EMS)[35] или Executive Action Team(EAT)[36]. Такой подход позволяет всего за час организовать работу 4096 человек[33].
Порядок проведения SCRUM of SCRUMs такой же как у Daily SCRUM[25]:
- в одно и то же время, в одном и том же месте,
- все могут наблюдать, но только «свиньи» говорят,
- в митинге участвуют Chief SCRUM Master, Chief SCRUM Product Owner и SCRUM of SCRUMs Team,
- длится ровно 15 минут,
- все участники SCRUM of SCRUMs стоят (митинг в формате Daily Standup).
Упорядочение беклога (Grooming)
Беклог упорядочивается для того, чтобы команда разработки и владелец продукта могли[37]:
- Добавить, убрать, объединить или разбить элементы беклога продукта (PBI), декомпозировать элементы беклога на элементы-задачи уровня программирования.
- Уточнить или дать новые оценки трудоёмкости задач и др.
- Изменить порядок следования элементов беклога продукта.
- Обсудить и прояснить бизнес-требования.
Другие методики масштабирования SCRUM (Scaling SCRUM)
Кроме классической методики SCRUM of SCRUMs (SoS) применяют методики LeSS[38][39][40][41] (от 2 до 8 команд), Nexus[42], RAGE[43], DAD[44], APM[45][46], SAFe[47]. Для очень больших проектов вместо LeSS применяют LeSS Huge[39](8+ команд). Только методики SoS[48] и Nexus[49] созданы Сазерлендом и Швабером[39] и преподаются на сертификационных курсах 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[50]. Для разработчиков курса Advanced не предусмотрено, однако для разработчиков предусмотрен отдельный набор курсов, связанных с TDD, DevOps и пр[51]. Прошедшие курсы CSM, CSPO, A-CSM, A-CSPO, CSD и сдавшие экзамены по ним, имеющие опыт работы в соответствующей SCRUM-роли не менее 3 лет допускаются к курсам CSP®-SM, CSP®-PO, CSP®[52]. В рамках сертификации scrum.org курсы тоже имеют несколько ступеней: PSM-I, PSM-II, PSM-III, PSPO-I, PSPO-II, PSPO-III[53].
Возможно дальнейшее обучение с выдачей сертификата тренера по SCRUM — Certified SCRUM Trainer (CST®) или Professional SCRUM Trainer (PST™).
К сертификации на CST допускаются лица, имеющие сертификат CSP-SM или CSP-PO или CSP (для разработчиков) и не менее 5 лет работы в соответствующей SCRUM-роли[54].
В рамках сертификации PST выделяются тренеры скрам-мастеров (PSSMT), владельцев продукта (PSPOT) и команды разработчиков (PSDT)[55][56] [57]. Для допуска к курсам тренеров — train-the-trainer (TTT) и сертификации требуются:
- на PSSMT — сертификат PSM III;
- на PSPOT — сертификаты PSM I и PSPO I;
- на PSDT — сертификаты PSM I и PSD I.
Сертификат по SCRUM действует два года. В течение этих двух лет для продления сертификата на следующие два года надо набрать определённое число SCRUM Education Units (SEU®)[58]. SCRUM Education Units даются за прохождение курсов по SCRUM, участие в Global SCRUM Gathering℠[59] и Regional SCRUM Gathering℠[60], преподавание SCRUM и другие действия, направленные на повышение вашей SCRUM-квалификации[58]. Такая система показывает, что ваши знания по SCRUM актуальны и вы всегда готовы их применить и передать другим. Это значительно повышает ценность SCRUM-сертификата. SCRUM Education Units начисляются следующим образом: 1 час обучения SCRUM (участие в гатхеринге, преподавание, участие в вебинаре и т. д.) равен 1 SEU®. Для обновления сертификата требуется:
- CSM®, CSPO®, CSD® — 20 SEU®;
- A-CSM®, A-CSPO® — 30 SEU®;
- CSP®-SM, CSP®-PO, CSP®, CAL II- 40 SEU®.
При наличии нескольких сертификатов число необходимых для обновления SEU® вычисляется с помощью специального калькулятора:[61].
Не совсем SCRUM
SCRUMbut
SCRUMbut — это использование лишь части принципов SCRUM, сохраняя убеждённость в работе по SCRUM[28][29]. Это не только не позволяет в полной мере использовать все преимущества SCRUM[28], но и ухудшает производительность по сравнению с полным отсутствием методологии.
Исследования показали, что SCRUMbut снижает ежегодную прибыль с 400 % до 0-35 %[30]. При этом за 100 % принята производительность работы по «водопаду», а за 400 % — по SCRUM. Большое исследование причин и последствий SCRUMbut проведено в работе «ScrumBut in Professional Software Development»[62].
Классические примеры SCRUMbut[28]:
- Проведение Daily SCRUM или SCRUM of SCRUMs не каждый день;
- Отсутствие ретроспектив;
- Спринты длиннее 4 недель;
- Отсутствие Definition Of Done.
Большое число примеров SCRUMbut приведено на сайте альянса SCRUM — SCRUM ALLIANCE®[63].
SCRUMand
Кроме SCRUMbut рассматривают SCRUMand[64]. Считается, что SCRUMand использует SCRUM и другие лучшие практики. Однако отличить SCRUMbut от SCRUMand бывает непросто[65]. Например задают вопрос: у нас спринт 6 месяцев, это SCRUMbut или SCRUMand? Авторы[65] однозначно относят это к SCRUMbut и приводят методику различения SCRUMbut и SCRUMand.
Примечания
- «scrum» перевод английский-русский . Lingvo.abbyyonline.com. Дата обращения: 4 мая 2016.
- https://www.scrumalliance.org/ScrumRedesignDEVSite/media/ScrumAllianceMedia/Global%20Scrum%20Gatherings/2017%20San%20Diego/Presentations/JusticeJoe_Agile_In_Military_Hardware_SGSD.pdf
- 5 ключевых инструментов метода SCRUM (27 апреля 2017). Дата обращения: 21 октября 2018.
- Agile - гибкий подход к управлению проектами (4 ноября 2016). Дата обращения: 21 октября 2018.
- Джефф Сазерленд. SCRUM. Революционный метод управления проектами = SCRUM. The art of doing twice the work in half the time. — Манн, Иванов и Фербер, 2016. — 288 с. — ISBN 978-5-00057-722-6.
- Leslie Hulet Stahl: Wicked Problems, Righteous Solutions: A Catalog of Modern Engineering Paradigms Yourdon Press Computing Series, 1990 (первое издание), ISBN 0-13-590126-X
- OOPSLA 2006
- Schwaber, Ken; Beedle, Mike. Agile software development with Scrum (неопр.). — Prentice Hall, 2002. — ISBN 0-13-067634-9.
- Maximini, Dominik. The Scrum Culture: Introducing Agile Methods in Organizations. Management for Professionals // Cham: Springer. — January 8, 2015. Retrieved August 25, 2016.. — С. 26. — ISSN 9783319118277.
- Partogi, Joshua. Certified Scrum Master vs Professional Scrum Master // Lean Agile Institute. — July 7, 2013. Retrieved May 10, 2017.
- Ken Schwaber; Jeff Sutherland. The Scrum Guide. — Scrum.org, Retrieved October 27, 2017..
- Scrum.org Introduces Scrum with Kanban Course, Enabling Greater Transparency Among Development Teams (Retrieved March 2, 2018).
- Спринт — рывок; бросок; бег на короткую дистанцию.
- Ken Schwaber. Agile Project Management with Scrum. — Microsoft Press, 2004. — 163 с. — ISBN 073561993X.
- Визуальное управление проектами и командами @ Kaiten
- Что такое Скрам — Аджайл для новичков
- Chickens and Pigs .
- Критерии приёмки для требований в Agile . Devprom ALM. Дата обращения: 3 апреля 2016.
- Scrum Guide | Scrum Guides . scrumguides.org. Дата обращения: 3 июня 2020.
- https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Russian.pdf
- (PDF) Scrum of Scrums Solution for Large Size Teams Using Scrum Methodology
- Scrum of Scrums (SoS) Definition | Innolution
- Role of a Chief Scrum Master | SCRUMstudy Blog
- Endava
- The Scrum of Scrums meeting — Manifesto
- Jeff Sutherland launches the Scrum@Scale Guide | Henny Portman’s Blog
- Scrum Alliance Member-Submitted Informational Articles (недоступная ссылка). Дата обращения: 21 октября 2018. Архивировано 21 октября 2018 года.
- What is ScrumBut? | Scrum.org
- ITKaiZenClub «Scrum, but..» или типичные проблемы при внедрении Scrum, 8 февраля | DOU
- (PDF) Scrum+:: Is it «ScrumBut» or «ScrumAnd»
- The Scrum Team and Scrum of Scrums
- Agile Organization with Scrum@Scale, Vimar Spa a real example
- Agile In Military Hardware. How the SAAB Gripen became the world’s most cost effective military aircraft / Sutherland and Joe Justice, 2017 (англ.)
- Scaling Agile Series Part 2: A look at Two of Four Popular Agile Scaling Frameworks: SoS and LeSS — Gorilla Logic
- The Executive MetaScrum | AgileGenesis
- Executive Action Team — Scrum Inc
- " Ищем гребешок для причёсывания Беклога Блог о проактивном бизнесе (недоступная ссылка). Дата обращения: 8 декабря 2018. Архивировано 27 декабря 2018 года.
- Large-Scale Scrum (LeSS) — Алексей Кривицкий — Agile-коуч и Scrum-тренер
- Как масштабировать Agile? | Открытые системы. СУБД | Издательство «Открытые системы»
- Знакомство с LeSS — Large Scale Scrum (LeSS)
- LeSS — Scrum на больших масштабах — Блог ScrumTrek
- The Nexus Guide | Scrum.org
- RAGE | Scaled Agile Transformations | Process | cPrime
- Архивированная копия (недоступная ссылка). Дата обращения: 4 ноября 2018. Архивировано 5 ноября 2018 года.
- Agile project management — the what and the why | APM
- Agile project management with Scrum
- Архивированная копия (недоступная ссылка). Дата обращения: 4 ноября 2018. Архивировано 5 ноября 2018 года.
- Scrum of Scrums | Scrum.org
- The Nexus Guide | Scrum.org
- Advanced Certified ScrumMaster (A-CSM℠) Certification
- Course Search — Scrum Alliance
- Certified Scrum Professional ScrumMaster® (CSP-SM) Certification Course
- Scrum Master Certification From the Home of Scrum
- Certified Scrum Trainer (CST) Certification Application Process
- PSD Trainer Selection Process and Application | Scrum.org
- PSPO Trainer Selection Process and Application | Scrum.org
- PSM Trainer Selection Process and Application | Scrum.org
- Scrum Education Units® (SEU®) Credits for Training
- Global Scrum Gathering Event Information & Sponsorship
- Scrum Alliance Regional Scrum Gatherings
- Agile and Scrum Training & Certification | Scrum Alliance
- https://projekter.aau.dk/projekter/files/239952102/Thesis___Final_2016_08_22.pdf
- Scrum Alliance Member-Submitted Informational Articles (недоступная ссылка). Дата обращения: 21 октября 2018. Архивировано 21 октября 2018 года.
- The «ScrumAnd» Stance (requires thought and discipline) | Scrum.org
- (PDF) Scrum+:: Is it “ScrumBut” or “ScrumAnd”
См. также
Литература
- Хенрик Книберг. Scrum и XP: заметки с передовой = Scrum and XP from the trenches. — C4Media, 2007. — С. 140. — ISBN 978-1-4303-2264-1.
- Майк Кон. Scrum: гибкая разработка ПО = Succeeding with Agile: Software Development Using Scrum. — М.: «Вильямс», 2011. — С. 576. — ISBN 978-5-8459-1731-7.
- Джефф Сазерленд. SCRUM. Революционный метод управления проектами = SCRUM. The art of doing twice the work in half the time. — Манн, Иванов и Фербер, 2016. — 288 с. — ISBN 978-5-00057-722-6.
- Кеннет Рубин. Основы Scrum: Практическое руководство по гибкой разработке ПО = Essential Scrum: A Practical Guide to the Most Popular Agile Process. — М.: «Вильямс», 20161. — С. 544. — ISBN 978-5-8459-2052-2.