Аджайл и скрам

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

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

Aджайл-манифест служит скорее пособием о том, что такое аджайл и как его использовать, чем методологическим предписанием.

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

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

Что такое скрам

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

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

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

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

Scrum Reference Card

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

Если же вы понимаете, что самостоятельное знакомство со скрамом заберет слишком много вашего времени, советуем посетить наш тренинг по скраму для начинающих Scrum Core 2.0. На нем вы за два дня получите исчерпывающие знания основ скрама, включая роли, события и артефакты, а также собственными глазами увидите, как его применяют в командах на практике.

Приходите на Scrum Core 2.0

Чем скрам-процесс не является

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

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

Зачем нужен скрам

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

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

Краткая история

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

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

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

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

Как работает структура скрама

Процесс разработки по скраму

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

Роли в скраме

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

  • Владелец продукта — апологет продукта, который полностью понимает его ценность для бизнеса. Этот человек доносит потребности кастомера/стейкхолдера до разработчиков, но не отвечает за техническую сторону процесса. Владелец продукта также отвечает за пользовательские истории и определяет их приоритетность.
Сертификационный тренинг для владельцев продукта от Scrum.org — PSPO I
  • Разработчики выполняют все технические задачи по разработке. Они кроссфункциональны, их кроссфункциональность зависит от области работы. Тем не менее, разработчики всегда отвечают за создание бэклога спринта, обеспечение качества согласно определению готового, адаптацию плана согласно цели спринта и собственные экспертные области ответственности.
  • Скрам-мастер выступает фасилитатором работы скрам-команды. Скрам-мастер помогает владельцу продукта и разработчикам выполнять работу без препятствий и отвлекающих факторов. Вся коммуникация людей вне команды с разработчиками проходит через скрам-мастера. (Иногда скрам-команды взаимодействуют в формате скрама скрамов, то есть, собрания скрам-мастеров всех команд).
Сертификационный тренинг для скрам-мастеров от Scrum.org — PSM I

События в скраме

Есть пять типов скрам-событий:

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

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

Артефакты

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

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

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

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

Правила скрам-фреймворка

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

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

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

Ограничения в скраме

  • Scrum часто приводит к сокращению объема работ из-за отсутствия общего дедлайна.
  • Высокие шансы на провал проекта, если люди не очень вовлечены или не готовы сотрудничать.
  • Применять структуру Scrum в больших командах сложно, но возможно. Для этого существуют фреймворки масштабирования: LeSS, SAFe, Nexus и другие.
  • Если какой-либо член команды уйдет в середине проекта, это может иметь сильное негативное влияние на проект.

Какая аджайл-методология подойдет именно вам?

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

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

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

Сертификационный тренинг по скраму с канбаном от Scrum.org — PSK I

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