Что такое Скрам (Scrum)? Один из самых популярных запросов 2017г.

СКРАМ — ЭТО ЭФФЕКТИВНОЕ УПРАВЛЕНИЕ ПРОЕКТАМИ

АДЖАЙЛ И СКРАМ

Aджайл — это подход к разработке программ, описанный в Aджайл-манифесте. Этот документ раскрывает философию Aджайл через четыре главные ценности:

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

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

Один из самых популярных среди них — Скрам. Согласно опросу за 2015 год (2015 State of Scrum Survey Report) от ScrumAlliance, Скрам широко применяется и будет применяться в разных бизнес-отраслях для успешной разработки различных проектов. Эта статья посвящена Скрам-фреймворку, его истории, преимуществам применения Скрама в компаниях, его ограничениям и тому, как применять Скрам-структуру в вашей организации.

ЧТО ТАКОЕ СКРАМ?

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

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

«В Скраме есть система ролей, встреч, правил и артефактов. В этой модели за создание и адаптацию рабочих процессов отвечают команды».

«В Скраме используются итерации фиксированной длины, называемые Спринтами. Они обычно занимают 1-2 недели (до 1 месяца). Скрам команды стремятся создавать готовый к поставке (качественно протестированный) Инкремент продукта в каждой итерации».

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

 Скрам - команда, планирование, тренинги, сертификация.

ЧЕМ СКРАМ-ПРОЦЕСС НЕ ЯВЛЯЕТСЯ

Скрам — не линейный метод разработки; это не каскадная модель. Каскадная модель (Водопад — от англ. Waterfall) — линейная последовательность событий, когда продукт планируют, разрабатывают, тестируют и так далее. Ни один её этап нельзя начинать, пока не завершен предыдущий.

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

ЗАЧЕМ НУЖЕН СКРАМ?

У Скрам-фреймворка Aджайл-разработки четыре главных преимущества:

  1. Отклик на потребности клиента. Компаниям-разработчикам программ слишком хорошо знакомо требование «разработать на вчера». Традиционные организации, которые работают по методу водопада, встраивают важные фичи и функции в расписание с двумя релизами в год — и в процессе нередко теряют клиентов. Если же клиенты не уходят, они всё равно могут остаться недовольными и уйти со временем, когда встретят более ответственного конкурента. Работая короткими и частыми циклами, вы можете предоставлять клиентам продукты почти по требованию и быстро адаптироваться к новым требованиям.
  2. Снижение стоимости разработки. Aджайл и Скрам доказали свою экономичность и эффективность. В этих моделях роли разработчиков более разнообразны, ведь небольшие единицы можно эффективно тестировать той самой командой, которая разработала их. Специализация исчезает или сокращается, в конечном счете сокращая издержки.
  3. Удовольствие от работы. Поставляя продукты быстро, команда переживает дополнительную радость каждый раз, когда работа сделана и отправляется в мир. Каждая команда разработки знает, как приятен релиз. Со Скрамом команда радуется ему не два, а 12 раз в году, минимум.
  4. Больше быстрых доходов. Средства от клиентов поступают не дважды в год, а гораздо чаще. Кроме того, новые фичи тоже можно добавлять не дважды в год, а гораздо чаще, таким образом приводя больше клиентов и быстрее обрабатывая их особые запросы.

КРАТКАЯ ИСТОРИЯ

После выхода исследования доктора Уинстона Ройса «Управление разработкой крупных программных систем» (Managing the Development of Large Software Systems) в 1970 году многие начали искать новый подход к разработке, который бы помог бороться с недостатками модели водопада, раскритикованной в статье.

Название «Скрам» происходит из исследования Такеучи и Нонаки 1986 года «Новые правила разработки новых продуктов» (The New New Product Development Game). В этой работе говорится, что лучший способ достичь цели — предоставить точные планы небольшой команде.

В 1995 году Джефф Сазерленд и Кен Швабер привели Скрам в систему в статье «Разработка программного обеспечения по Скраму» (SCRUM Software Development Process).

КАК РАБОТАЕТ СТРУКТУРА СКРАМА

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

РОЛИ В СКРАМЕ

В Скраме три роли, которые вместе образуют Скрам команду:

  • Владелец Продукта — апологет продукта, который полностью понимает его ценность для бизнеса. Этот человек доносит потребности кастомера/стейкхолдера до Команды разработки, но не отвечает за техническую сторону процесса. Владелец Продукта также отвечает за пользовательские истории и определяет их приоритетность.
  • Команда разработки выполняет все технические задачи по разработке. Команда кроссфункциональна и отвечает за анализ, дизайн, программирование, тестирование, техническую коммуникацию и т. д. В этом она руководствуется пользовательскими историями и их приоритетностью.
  • Скрам-Мастер выступает фасилитатором работы Скрам команды. Скрам-мастер помогает Владельцу Продукта и Команде разработки выполнять работу без препятствий и отвлекающих факторов. Вся коммуникация людей вне команды с Командой разработки проходит через Скрам-Мастера. (Иногда Скрам команды взаимодействуют в формате Скрама Скрамов, то есть собрания со Скрам-мастерами каждой команды).  

ВСТРЕЧИ В СКРАМЕ

Есть четыре типа Скрам-мероприятий:

  • Планирование Спринта (Sprint Planning) — в нём участвуют все члены Скрам команды. На этом мероприятии презентуют Продукт. Также каждый член команды может высказаться о том, что его интересует или беспокоит. В ходе встречи назначаются приоритеты и проводятся оценки сроков.
  • Ежедневный Скрам (Daily Scrum) — Скрам-мероприятия, которые проходят ежедневно во время спринтов. Они короткие (до 15 минут) и предназначены для того, чтобы спланировать дневное расписание Команды разработки. Здесь можно обсудить рабочие сложности или прояснить пользовательские истории. Встреча обязательна для Команды разработки в полном составе. Скрам-мастер может на ней присутствовать.
  • Обзор Спринта (Sprint Review)  — демонстрация действующего продукта, разработанного во время спринта. Это мероприятие проходит в конце спринта и предназначено в первую очередь для того, чтобы в подробностях показать достигнутое стейкхолдерам.
  • Ретроспектива Спринта  (Sprint Retrospective) — это своего рода вскрытие, обсуждение того, как  команда справилась во время спринта и как можно повысить качество её работы в будущем.

Дополнительно к этим типам мероприятий иногда во время спринта команды могут проводить уточнение бэклога (Backlog Refinement) — обсуждать элементы бэклога и готовиться к следующему спринту. В рамках этой встречи можно обсудить приоритетность элементов и разделить элементы бэклога на более мелкие составляющие.

AРТЕФАКТЫ

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

Существует три основных/обязательных артефакта в Скраме — Бэклог Продукта, Бэклог Спринта и Инкремент. Они необходимы, чтобы поставлять программное обеспечение, которое будет ценным для ваших кастомеров. Есть и необязательные артефакты, которые, в прочем, могут облегчить жизнь вашей команде (например, Берн-даун чаты) и сам “контейнер” — Спринт.

Aртефакты Спринта и их компоненты включают:

  • Бэклог Продукта — все необходимые действия, связанные с пользовательской и технической сторонами проекта.
  • Бэклог Спринта — совокупность всех задач, которые нужно выполнить за итерацию спринта. Их выводят из Бэклога Продукта во время Планирования Спринта.
  • Инкремент — Инкремент представляет собой сумму всех элементов Бэклога Продукта, выполненных во время спринта, и ценность инкрементов всех предыдущих Спринтов. В конце спринта новый Инкремент должен быть «Готов», что означает его работоспособность и соответствие определению «Критериев Готовности» Скрам команды.
  • Элемент Бэклога Продукта — элемент Бэклога Продукта, который нужно выполнить за итерацию спринта. Обычно разбивается на несколько меньших подзадач.
  • Цель Спринта — то, что нужно сделать, чтобы выполнить элемент Бэклога Продукта.
  • Берн-даун чат Спринта — работа, которая остается до полного выполнения задач спринта. Берн-даун чат может быть восходящим или нисходящим в зависимости от того, с чем команда сталкивается при выполнении задачи. Он служит не отчетом о продвижении команды, а методом преодоления трудностей и поддержания активности.
  • Релиз Продукта/Берн-даун чат Продукта — его в конце каждого спринта обновляет Скрам-мастер. Горизонтальная ось соответствует спринтам, вертикальная — показывает, сколько работы (в начале каждого спринта) осталось до завершения проекта.  

Артефакты в Скрам. Что такое Скрам?

ПРАВИЛА СКРАМ-ФРЕЙМВОРКА

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

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

Больше сведений по терминологии Скрама вы сможете получить из глоссария Скрам-терминологии (см. scrum.org).

ОГРАНИЧЕНИЯ В СКРАМЕ

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

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

КАКАЯ АДЖАЙЛ-МЕТОДОЛОГИЯ ПОДОЙДЁТ ИМЕННО ВАМ?

Как и любое другое решение в бизнесе, выбор лучшей Aджайл-методологии будет оптимальным, если вы сначала рассмотрите все возможные варианты. Например, вы можете обнаружить, что вам больше подходит eXtreme Programming (XP).

Методология XP похожа на Скрам, но спринты короче, изменения бэклога во время спринта допустимы, а приоритеты XP определяет кастомер.

С другой стороны, вам может лучше подойти Скрамбан (Scrumban). Скрамбан позволяет дополнять бэклог во время спринта и не требует оценки сроков во время планирования. Другими словами, методологии разнообразны, а это дает вам возможность выбрать оптимальный путь к счастью ваших кастомеров.

Переведено, адаптировано и дополнено командой BrainRain в соответствии с единственным официальным документом, который объясняет суть Скрама — “Скрам Гайдом” (“The Scrum Guide”, 2017-2018).

Оригинал

Читайте другие статьи нашего Блога

 

Скрам тренинги, сертификация, Скрам Мастер, Продакт Оунер.

 

Скрам тренинг, сертификация Скрам Мастеров, scrum.org