SCRUM

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Разработка программного обеспечения
Ключевые процессы
Парадигмы и модели
Методологии
Инструменты

SCRUM (/skrʌm/[1]; англ. scrum «схватка») — метод управления проектами.

SCRUM используется как в сфере разработки ПО, так и в других производственных отраслях[2].

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

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

История[править | править код]

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

Подход впервые описали Хиротака Такэути[en] и Икудзиро Нонака[en] в статье The New Product Development Game (Harvard Business Review, январь-февраль 1986). Они отметили, что проекты, над которыми работают небольшие команды из специалистов различного профиля, обычно систематически производят лучшие результаты, и объяснили это как «регбийный подход».

В 1991 году ДеГрейс и Шталь в книге «Нечестивые проблемы, праведные решения»[6] называли подобный подход словом «scrum» (буквальный перевод — «толкотня», в регбийной терминологии — схватка), спортивный термин, приведенный в статье Такэути и Нонакой. Кен Швабер[en] в начале 1990-х использовал подход, который привел SCRUM в его компанию. Впервые методология SCRUM была представлена на общее обозрение задокументированной, четко сформированной и описанной совместно Швабером и Джефом Сазерлендом[7] на OOPSLA’95[8] в Остине. Швабер и Сазерленд на протяжении следующих лет работали вместе, чтобы обработать и описать весь свой опыт и лучшие практические образцы для индустрии в одно целое, в ту методологию, что известна сегодня как SCRUM. Швабер объединил усилия с Майком Бидлом[en] в 2001 году, чтобы детально описать метод в книге «Agile Software Development with SCRUM»[9].

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

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

Определения[править | править код]

Процессы методологии SCRUM

SCRUM[править | править код]

SCRUM (англ. «схватка» — термин из регби, обозначает стартовое состояние команд перед вбросом мяча) — минимально необходимый набор мероприятий, артефактов, ролей, на которых строится процесс SCRUM-разработки, позволяющий за фиксированные небольшие промежутки времени, называемые спринтами (sprints), предоставлять конечному пользователю работающий продукт с новыми бизнес-возможностями, для которых определен наибольший приоритет. Методология базируется на идеях, озвученных в статье Таекучи и Нонака «The New New Product development Game», и базируется на командной работе, по аналогии с тем, как в регби команда действует сообща, ради достижения общей цели. Возможности к реализации в очередном спринте определяются командой в начале спринта на совещании по планированию спринта Sprint Planning Meeting. Для оценки предстоящего объёма работ на спринте чаще всего используются относительные оценки, и практика покера планирования(Planning Poker).

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

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

Спринт[править | править код]

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

Артефакты SCRUM[править | править код]

Диаграмма сгорания задач (Burndown chart)[править | править код]

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

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

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

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

Журнал пожеланий проекта (Project backlog)[править | править код]

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

Журнал пожеланий спринта (Sprint backlog)[править | править код]

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

Scrum-доска[править | править код]

Scrum-доска — это инструмент открытой демонстрации состояния текущей работы Scrum-команды. Scrum-доска состоит из трех колонок: «сделать» (to-do), «в процессе» (in progress), «сделано» (done).

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

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

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

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

Цель спринта (Sprint Goal)[править | править код]

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

Инкремент продукта[править | править код]

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

История пользователя (User Story)[править | править код]

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

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

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

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

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

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

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

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

Критерий готовности (Definition of Done, DoD)[править | править код]

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

Скорость команды SCRUM (Velocity)[править | править код]

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

Роли в процессе SCRUM[править | править код]

По методике Scrum в производственном процессе были определенные роли, разбитые на две группы «свиней» и «кур», с 2011 метафоры «свиней» и «кур» отсутствуют в Scrum, см. Chickens and Pigs >. Эти названия были использованы из-за шутки[7]

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

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

Основные роли (Core roles) в методологии SCRUM («Свиньи»)[править | править код]

«Свиньи» полностью включены в проект и в процесс SCRUM.

Менеджер-мастер SCRUM (SCRUM Manager) — проводит совещания (Scrum meetings) следит за соблюдением всех принципов SCRUM, разрешает противоречия и защищает команду от отвлекающих факторов, проводит фасилитацию митингов, отвечает за учет, хранение и выдачу SCRUM-инвентаря. Данная роль не предполагает ничего иного, кроме корректного ведения процесса SCRUM. Таким образом менеджер-мастер SCRUM есть сервант-лидер (Servant Leader) команды.

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

Владелец продукта 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) — степень важности данной истории, по мнению владельца продукта. Обычно представляет собой целое число, иногда для этой цели используются числа Фибоначчи. Чем больше значение, тем выше приоритет.
  • Предварительная оценка (initial estimate) — начальная оценка объема работ, необходимого для реализации истории по сравнению с другими историями. Измеряется в story point’ах. Приблизительно соответствует числу «идеальных человеко-часов».
  • Как продемонстрировать (how to demo) — краткое пояснение того, как завершенная задача будет продемонстрирована в конце спринта. Данное поле может представлять собой код автоматизированного теста для приемо-сдаточного испытания.
  • Критерии приемки (acceptance criteria) — значимые детали реализации истории, уточняющие требования владельца продукта, собранные всеми участниками SCRUM-команды при планировании спринта[17] .

Дополнительные поля[править | править код]

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

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

Основные совещания SCRUM[править | править код]

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

Совещание планирования спринта (Sprint Planning)[править | править код]

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

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

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

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

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

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

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

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

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

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

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

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

Ежедневное SCRUM-совещание (Daily SCRUM)[править | править код]

Daily SCRUM — это митинг, что длится максимум 15 минут, предназначен для команды разработчиков, при этом не исключает присутствие владельца продукта и 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 призывает команду дать предложения по повышению эффективности процесса разработки. Во время каждой ретроспективы спринта команда должна искать и предлагать способы и приемы улучшения рабочих процессов.

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

Дополнительные совещания SCRUM[править | править код]

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

SCRUM of SCRUMs[править | править код]

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

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

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

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

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

Однако некоторые команды SCRUM of SCRUMs проводят не каждый день, а 2-3 раза в неделю[25]. Это нарушает базовые принципы SCRUM и является классическим примером SCRUMbut[26][27]. Это не позволяет в полной мере использовать все преимущества SCRUM[28].

SCRUM of SCRUMs позволяет нескольким SCRUM Teams обсуждать работу, фокусируясь на общих областях и взаимной интеграции. Главный менеджер-мастер задает всем членам SCRUM of SCRUMs-команды четыре вопроса[25], три первых вопроса повторяют вопросы Daily SCRUM:

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

Если SCRUM of SCRUMs не охватывает весь коллектив, может быть проведен митинг SCRUM of SCRUM of SCRUMs (SCRUM-3, SoSoS)[29], SCRUM of SCRUM of SCRUM of SCRUMs (SCRUM-4, SoSoSoS[30])[31], и так далее[32]. Последний MetaSCRUM называется Executive Meta SCRUM(EMS) или Executive Action Team(EAT). Такой подход позволяет всего за час организовать работу 4096 человек[31].

Порядок проведения SCRUM of SCRUMs такой же как у Daily SCRUM[23]:

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

Упорядочение беклога (Grooming)[править | править код]

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

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

Масштабирование SCRUM (Scaling SCRUM)[править | править код]

Кроме классической методики SCRUM of SCRUMs (SoS) применяют методики LeSS[34][35][36][37] (от 2 до 8 команд), Nexus[38], RAGERAGE | Scaled Agile Transformations | Process | cPrime</ref>, DAD[39], APM[40][41], SAFe[42]. Для очень больших проектов вместо LeSS применяют LeSS Huge[35](8+ команд). Только методики SoS[43] и Nexus[44] созданы Сазерлендом и Швабером[35] и преподаются на сертификационных курсах CSM и PSM.

Обучение и сертификация специалистов по SCRUM[править | править код]

В SCRUM важнейшую роль играют квалифицированные SCRUM Master, SCRUM Product Owner и SCRUM Team. Основатели SCRUM и сертифицированные тренеры (CST) проводят обучающие курсы с последующей сертификацией специалистов по SCRUM. Обязательную основу для всех составляют навыки менеджер-мастера. Далее идет специализация на SCRUM Master, SCRUM Product Owner и SCRUM Developer (член SCRUM Team). Успешно сдавшим экзамен выдаются сертификаты: Certified SCRUM Master (CSM), Certified SCRUM Product Owner (CSPO), Certified SCRUM Developer (CSD), Professional SCRUM Master (PSM), Professional SCRUM Product Owner (PSPO), Professional SCRUM Developer (PSD).

Возможно дальнейшее обучение с выдачей сертификата тренера по SCRUM — Certified SCRUM Trainer (CST) или Professional SCRUM Trainer (PST). К сертификации на CST допускаются лица, имеющие сертификат CSM или CSPO[45].

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

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

Не совсем SCRUM[править | править код]

SCRUMbut[править | править код]

Только следуя всем правилам SCRUM, можно прийти к успеху проекта. Каждый принцип SCRUM приносит прибыль, а отказ от него — убыток. В этом заключается особенность SCRUM.

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

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

Классические примеры SCRUMbut[26]:

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

Большое число примеров SCRUMbut приведено на сайте Джеффа Сазерленда — SCRUM ALLIANCE[50].

Примечания[править | править код]

  1. «scrum» перевод английский-русский. Lingvo.abbyyonline.com. Дата обращения: 4 мая 2016.
  2. https://www.scrumalliance.org/ScrumRedesignDEVSite/media/ScrumAllianceMedia/Global%20Scrum%20Gatherings/2017%20San%20Diego/Presentations/JusticeJoe_Agile_In_Military_Hardware_SGSD.pdf
  3. 5 ключевых инструментов метода SCRUM
  4. 1 2 5 ключевых инструментов метода SCRUM (27 апреля 2017). Дата обращения: 21 октября 2018.
  5. Agile - гибкий подход к управлению проектами (4 ноября 2016). Дата обращения: 21 октября 2018.
  6. Leslie Hulet Stahl: Wicked Problems, Righteous Solutions: A Catalog of Modern Engineering Paradigms Yourdon Press Computing Series, 1990 (первое издание), ISBN 0-13-590126-X
  7. 1 2 3 Джефф Сазерленд. SCRUM. Революционный метод управления проектами = SCRUM. The art of doing twice the work in half the time. — Манн, Иванов и Фербер, 2016. — 288 с. — ISBN 978-5-00057-722-6.
  8. OOPSLA 2006
  9. Schwaber, Ken (англ.); Beedle, Mike. Agile software development with Scrum (неопр.). — Prentice Hall, 2002. — ISBN 0-13-067634-9.
  10. 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.
  11. Partogi, Joshua. Certified Scrum Master vs Professional Scrum Master // Lean Agile Institute. — July 7, 2013. Retrieved May 10, 2017.
  12. Ken Schwaber; Jeff Sutherland. The Scrum Guide. — Scrum.org, Retrieved October 27, 2017..
  13. Scrum.org Introduces Scrum with Kanban Course, Enabling Greater Transparency Among Development Teams (Retrieved March 2, 2018).
  14. Спринт — рывок; бросок; бег на короткую дистанцию.
  15. Ken Schwaber. Agile Project Management with Scrum. — Microsoft Press, 2004. — 163 с. — ISBN 073561993X.
  16. Что такое Скрам — Аджайл для новичков
  17. Критерии приемки для требований в Agile. Devprom ALM. Дата обращения: 3 апреля 2016.
  18. Scrum Guide | Scrum Guides. scrumguides.org. Дата обращения: 3 июня 2020.
  19. (PDF) Scrum of Scrums Solution for Large Size Teams Using Scrum Methodology
  20. Scrum of Scrums (SoS) Definition | Innolution
  21. Role of a Chief Scrum Master | SCRUMstudy Blog
  22. Endava
  23. 1 2 The Scrum of Scrums meeting — Manifesto
  24. Jeff Sutherland launches the Scrum@Scale Guide | Henny Portman’s Blog
  25. 1 2 3 Scrum Alliance Member-Submitted Informational Articles (недоступная ссылка). Дата обращения: 21 октября 2018. Архивировано 21 октября 2018 года.
  26. 1 2 3 4 What is ScrumBut? | Scrum.org
  27. 1 2 ITKaiZenClub «Scrum, but..» или типичные проблемы при внедрении Scrum, 8 февраля | DOU
  28. 1 2 (PDF) Scrum+:: Is it «ScrumBut» or «ScrumAnd»
  29. The Scrum Team and Scrum of Scrums
  30. Agile Organization with Scrum@Scale, Vimar Spa a real example
  31. 1 2 Agile In Military Hardware. How the SAAB Gripen became the world’s most cost effective military aircraft / Sutherland and Joe Justice, 2017 (англ.)
  32. Scaling Agile Series Part 2: A look at Two of Four Popular Agile Scaling Frameworks: SoS and LeSS — Gorilla Logic
  33. " Ищем гребешок для причесывания Беклога Блог о проактивном бизнесе (недоступная ссылка). Дата обращения: 8 декабря 2018. Архивировано 27 декабря 2018 года.
  34. Large-Scale Scrum (LeSS) — Алексей Кривицкий — Agile-коуч и Scrum-тренер
  35. 1 2 3 Как масштабировать Agile? | Открытые системы. СУБД | Издательство «Открытые системы»
  36. Знакомство с LeSS — Large Scale Scrum (LeSS)
  37. LeSS — Scrum на больших масштабах — Блог ScrumTrek
  38. The Nexus Guide | Scrum.org
  39. http://www.disciplinedagiledelivery.com/introduction-to-dad/
  40. Agile project management — the what and the why | APM
  41. Agile project management with Scrum
  42. Архивированная копия (недоступная ссылка). Дата обращения: 4 ноября 2018. Архивировано 5 ноября 2018 года.
  43. Scrum of Scrums | Scrum.org
  44. The Nexus Guide | Scrum.org
  45. Certified Scrum Trainer (CST) Certification Application Process
  46. PSD Trainer Selection Process and Application | Scrum.org
  47. PSPO Trainer Selection Process and Application | Scrum.org
  48. PSM Trainer Selection Process and Application | Scrum.org
  49. https://projekter.aau.dk/projekter/files/239952102/Thesis___Final_2016_08_22.pdf
  50. Scrum Alliance Member-Submitted Informational Articles (недоступная ссылка). Дата обращения: 21 октября 2018. Архивировано 21 октября 2018 года.

См. также[править | править код]

Ссылки[править | править код]

Литература[править | править код]

  • Хенрик Книберг. 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. — М.: «Вильямс», 2016. — С. 544. — ISBN 978-5-8459-2052-2.