Методология Scrum, её основные принципы и особенности
Когда речь заходит об управлении проектами в рамках гибкого подхода Agile, то Scrum-методология традиционно в числе самых популярных. Она достаточно простая, чтобы её мог освоить каждый, и при этом достаточно гибкая, чтобы её можно было адаптировать к различным проектам.
Расскажем, что такое методология разработки Scrum, на каких принципах базируется и как её применять на практике.
Что такое методология Scrum?
Scrum – это итеративная и инкрементальная методология из семейства Agile, а точнее фреймворк, предназначенный для управления разработкой продукта, она опирается на принципы гибкости, равенства и сотрудничества. В отличие от общих рекомендательных принципов, которые даёт Agile (в своём манифесте), Scrum предлагает вполне конкретные шаги и инструменты для достижения оптимальных результатов. Ими может воспользоваться любая команда.
Scrum – это не аббревиатура. Это английский термин, который переводится как «схватка» и используется в игре регби. С этим словом напрямую соотносится и суть самой методологии – максимальная концентрация внимания и ресурсов на каждом этапе для достижения победы (выпуска успешной промежуточной версии продукта).
Термин впервые применили в 1986 Хиротака Такеучи и Икудзиро Нонака в статье «Новая игра в разработку продукта», опубликованной в Harvard Business Review. В 1995 году Джефф Сазерленд и Кен Швабер представили методологию Scrum на конференции OOPSLA.
Актуальная версия перевода Руководства по Scrum (2020 год).
Особенности методологии
Методология Scrum — это система управления работой над сложными проектами, в основе которой лежат короткие итеративные рабочие циклы (так называемые спринты) и постоянная адаптация к изменениям.
Основная цель Scrum — предоставить заказчику улучшенный продукт в конце каждой итерации.
В процессе работы команда разбивает проект на этапы, отслеживает прогресс и вносит коррективы. Хотя изначально методология Scrum была разработана для проектов по разработке программного обеспечения, её можно применять к любому типу проектов, где требуется гибкость и оперативное реагирование на изменения.
Методология разработки Scrum на первый взгляд может показаться сложной, но на самом деле это максимально простая система, которая позволяет добиваться хороших результатов при работе над проектами любой сложности. Благодаря прозрачности, контролю и адаптации Scrum помогает командам создавать высококачественные продукты в срок и в рамках выделенного бюджета.
Как построить Scrum-команду (роли Scrum Team)
Scrum-команда строится на принципах автономности (сторонние специалисты в неё не вмешиваются), прозрачности (каждый осведомлён о текущем прогрессе, ошибках, конечных целях), доверия и уважения (в команде все равны, каждый имеет право голоса). А ещё – соблюдении ролей, которых в такой команде всего три:
- Scrum-мастер
На всякий случай – это не руководитель и не какой-нибудь технический лидер. Ещё раз: в Scrum-командах все равны. Мастер следит за тем, чтобы члены команды соблюдали принципы Scrum, и помогает им решать возникающие проблемы.
Scrum-мастер не несёт прямой ответственности за результат. Его задачи: устранение препятствий, предотвращение ненужных отвлекающих факторов и помощь команде в достижении прогресса. Направление и обучение.
Важно, чтобы Scrum-мастер хорошо разбирался в методологии Scrum и умел эффективно взаимодействовать со всеми членами команды.
Это своего рода главный распространитель (адепт) Scrum-культуры в команде.
- Команда разработчиков (Developers)
Отвечает за создание и поддержку продукта. Члены команды — высококвалифицированные специалисты. Они постоянно ищут способы улучшить продукт и сделать его более удобными для пользователей. А также несут коллективную ответственность за успехи и неудачи.
Scrum делает акцент на сотрудничестве и коммуникации. Участникам команды предлагается работать вместе и делиться идеями, а не следовать жёсткой иерархии. Это способствует формированию чувства сопричастности и ответственности, что помогает командам сохранять мотивацию и вовлечённость.
- Владелец продукта (Product Owner)
Играет ключевую роль в разработке и управлении продуктом, поскольку представляет интересы бизнеса или клиентской базы. Отвечает за формирование видения продукта, повышение его ценности. Тесно сотрудничает с командой разработчиков, чтобы убедиться, что продукт соответствует потребностям клиентов и будет выпущен в срок и в рамках бюджета.
Владелец продукта также отвечает за коммуникацию с заинтересованными сторонами и следит за тем, чтобы команды разработчиков знали, над чем сейчас важнее всего работать.
Основные этапы работы по методологии Scrum
Работа в рамках методологии разработки Scrum проходит в рамках спринтов – итераций, которые имеют фиксированную продолжительность и заранее расписанный план. Спринтов может быть много, но результатом выполнения каждого должна быть реализация значимой части продукта (например, добавление очередной функции для мобильного приложения или новой страницы для сайта компании) – это так называемый Product Goal.
В конце спринта проводится демонстрация готовой работы.
Основные события в рамках методологии управления Scrum:
- Планирование спринта (Sprint Planning)
Каждый спринт начинается с того, что владелец продукта документирует требования и желаемые функции продукта для команды разработчиков и определяет их приоритетность, а также отвечает на вопросы команды разработчиков, касающиеся спецификаций и требований (в том числе к качеству).
Затем команда решает, какие задачи будет реализовывать в течение отведённого времени, а также создаёт общий бэклог (Product Backlog) с перечислением всех задач.
- Ежедневные встречи (Daily Scrum, чаще в обиходе «дейлики»)
Непродолжительные по времени регулярные планёрки. На встрече каждый член Scrum-команды отчитывается о проделанной за прошедший день работе и планирует свою работу на следующий день.
- Подведение промежуточных итогов (Sprint Review)
Проводится в конце каждого спринта для оценки прогресса в работе над продуктом. В этом мероприятии принимают участие все члены Scrum-команды. Во время собрания подводятся итоги и собираются отзывы, которые будут использованы для планирования следующих спринтов. Задача ревью – решить, что делать дальше.
- Ретроспектива спринта (Sprint Retrospective)
Проводится после ревью, даёт возможность обсудить, что прошло хорошо в предыдущем спринте, и определить области, требующие улучшения в будущем.
Несмотря на гибкость самого подхода, Scrum строго регламентирует время, которое отводится на разработку, чтобы процесс не получился бесконечным. Таймбоксинг (ограничение по времени) есть у каждого события в рамках спринта. Так, на выполнение текущей задачи (спринта) отводится обычно 2–4 недели. Для ежедневных встреч – 15 минут. Для планирования спринта – не более 4 часов. На ретроспективу завершённого спринта отводится 1-2 часа (если спринт длится около 1 месяца, то до 3 часов).
За соблюдением сроков следит Scrum-мастер.
Принципы Scrum
В основе Scrum лежат три принципа: прозрачность, контроль (инспекция) и адаптация. Все они реализуются в ходе выполнения спринтов. Каждый знает, кто, над чем и с каким успехом работает, готов представить полученные результаты на контроль и оперативно внести изменения (адаптировать).
Основой успешной работы над проектом в Scrum-методологии является самоорганизующаяся межфункциональная команда, работа которой строится на следующих принципах:
- Постоянные изменения, вносимые в процессе, воспринимаются не как препятствие, а как способ постоянного совершенствования продукта.
- Заказчик (владелец продукта) и конечные пользователи дают обратную связь в процессе разработки.
- Команда работает в тесном сотрудничестве и на одном уровне, главных в ней нет.
Планирование проектов с использованием методологии Scrum
Методологию Scrum можно использовать для проектов любого масштаба, применяя стандартный набор шагов.
Первым шагом является создание бэклога продукта, то есть общего списка задач с указанием приоритета для каждой из них. Список может расширяться за счёт новых задач по мере реализации продукта.
Второй шаг – создание бэклога спринта (Sprint Backlog). В него попадают две составляющие: Sprint Goal (цель спринта) и конкретные задачи из общего бэклога (для реализации в течение спринта). Обычно это самые срочные и важные задачи. Про расстановку приоритетов и про оценку задач.
Общие рекомендации:
- Задачи надо разбить на небольшие, выполнимые части и распределить между членами команды.
- Члены команды должны регулярно встречаться и коммуницировать, чтобы делиться успехами друг с другом и решать возникающие проблемы.
- Команда всегда должна быть нацелена на первоочередное выполнение самых важных задач.
После того как команда приступит к разработке и внедрению продукта в соответствии с методологией Scrum, цикл спринта будет повторяться. Владелец продукта должен следить за тем, чтобы запросы на функции были готовы к работе и у команды разработчиков всегда было над чем трудиться.
Преимущества методологии Scrum
- Повышение производительности: когда команды работают короткими рывками, они, как правило, успевают сделать больше (концентрация их усилий максимальная).
- Расширение сотрудничества: тесное взаимодействие членов команды помогает избежать недопонимания и улучшить коммуникацию.
- Повышенная гибкость: позволяет правильно расставить приоритеты в проекте и сосредоточиться на выполнении наиболее важных задач, соблюдая при этом требования к стоимости и срокам.
- Повышение качества: благодаря коротким спринтам команды могут сосредоточиться на выполнении конкретных задач и обеспечить их максимально высокое качество. Это позволяет избежать дорогостоящих ошибок и повысить общее качество конечного продукта или услуги.
В чём разница между Scrum и Agile?
Agile – это образ мышления, набор принципов и ценностей, а Scrum – одна из методологий, использующих этот образ мышления, фреймворк, который даёт конкретный подход для управления проектами.
В то время как традиционные методологии управления проектами ограничивают масштаб и позволяют гибко управлять графиком и ресурсами, гибкие методологии (в том числе Scrum) фиксируют ресурсы и график, но позволяют гибко управлять масштабом в зависимости от того, что важнее всего выполнить за фиксированное время с ограниченными ресурсами.
Заключение
Методология Scrum — это эффективный способ управления гибкими проектами, который используют в различных отраслях, от разработки программного обеспечения до маркетинга. Главная идея Scrum заключается в том, что команда должна иметь возможность самоорганизовываться и принимать решения о том, как лучше всего достичь поставленных целей, чтобы быстро и эффективно создавать высококачественные продукты и услуги. Какой бы ни была ваша методология управления, вам обязательно потребуется общая среда для командной работы и учёта задач. С этой ролью отлично справится Projecto.