Личная територия Гарика Давтяна

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

SCRUM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

РОЛИ В СКРАМ

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

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

ВСТРЕЧИ В SCRUM

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

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

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

AРТЕФАКТЫ

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

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

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

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

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

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

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

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

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

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

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

ИСТОЧНИК

Оставьте ответ

Ваш электронный адрес не будет опубликован.