Создатели Scrum говорят, что это фреймворк для организации командной работы. Фреймворк предполагает комбинацию установок, действий и технологий, с которыми легче организовать рабочий процесс. Scrum опирается на Agile и является одной из его практических реализаций.
В Agile нет сценариев или технологических карт, но есть образ мышления. Эта философия выступает за общение команды и заказчика и частую сверку результатов. Подробнее в этой статье, но за 5 минут только пример:
Вызываешь такси, опаздываешь на работу. Вместе с таксистом обнаруживаешь, что с городскими пробками как всегда все плохо. Водитель знает, как быстрее проехать в этих условиях. В этот момент получаешь звонок от коллеги: слёзно просят ехать не в офис, а в конференц-зал, на совсем другую улицу. Говоришь таксисту новый адрес. Он не везёт тебя сначала до офиса, а потом с новыми вводными до зала. Он едет до первого перекрестка и перестраивает маршрут. Таксист достаточно гибкий работник, пусть и не знает, что такое Agile.
Scrum уточняет общий подход Agile: предлагает принципы поведения, набор ролей и описание мероприятий, которые помогут по-новому организовать разработку продукта.
Слово Scrum изначально — это построение игроков в регби. Все вместе они замотивированы и готовы сражаться одной командой. Это как раз то, что хочет привнести методология в процесс создания ПО.
Мы опишем процесс работы по Scrum, раскроем основные понятия и роли. Углубиться в тему помогут ссылки на более подробные статьи.
Что такое управление проектом Scrum
В Scrum основное значение имеет команда. Она кросс-функциональна, то есть собирается из разных специалистов. Это дизайнер, web-разработчик, копирайтер, тестировщик и так далее — в зависимости от проекта. Вне IT может быть совсем другой список. Главное, вместе они могут создавать работающий продукт.
Состав scrum-команды
Чтобы команда была самоорганизованной (это важное свойство гибкой команды — она сама знает, как и что делать), состав особенно важен.
Традиционно сохраняется команда разработчиков (программистов, строителей или инопланетян — неважно). Она отвечает за всю техническую часть. Обобщенно, ее цель — «чтобы продукт работал». Высший класс — когда и самой команде хорошо работается.
Scrum-мастер. Его называют слуга-лидер, и не все сразу понимают его роль. Чтобы не запутаться: слуга, потому что решает массу вопросов, лишь бы команда не отвлекалась и атмосфера никого не угнетала. Он решает конфликты, организует scrum-события и другие мероприятия, придумывает, как работать эффективнее. Лидер, потому что он ведет команду: приобщает к ценностям скрам, коучит ее и создает культуру компании. Его цель — «создать классную команду, и чтобы в ней работал Scrum».
Владелец продукта — железный человек команды. Он решает, что ценно для продукта и как делать проект; собирает требования, общается с заказчиками; принимает работу от команды и презентует клиенту. Полностью отвечает за продукт. Это звено между бизнесом и разработчиками, о нем мы подробнее уже рассказывали.
Вне команды находятся стейкхолдеры. Так называются заинтересованные стороны, например, заказчики проекта или директора компании.
Ценности, без которых ничего не получится
Для разработки по Scrum нужно соблюдать три принципа:
— прозрачность (доступная информация и однаковая интерпретация),
— инспекция (проверка своей работы),
— адаптация (быстрое внесение изменений, если что-то идёт не так).
Основу Scrum составляют ценности. Если отказаться от них, это будет набор приёмов. Механическое следование ритуалам поможет работать лучше, но не сделает команду действительно гибкой.
Эти ценности:
- преданность,
- сосредоточенность,
- открытость,
- уважение,
- мужество.
Много кто уже набил оскомину от разговоров про корпоративные ценности и агитацию от бизнес-тренеров. Но в скраме действительно не обойтись без них. Эти ценности дополняю манифест Agile. Следование им равно организации работы на ценностном уровне, собственно это и дает результат.
Под абстрактными словами подразумевается конкретное:
Преданность говорит про коллективную и личную ответственность за результат. У команды есть свобода действий и нет иерархии, и без ответственности это приведет к хаосу. Привычка сваливать провалы на других тоже не приживется в Scrum.
Сосредоточенность на цели предполагает, что усилия направлены на выполнение текущих задач. Отвлекающие факторы мешают разработке, с ними команда делает всё и ничего нормально. Также она предполагает анализ проделанной работы: выбранных приёмов, написанного кода — и их постоянное совершенствование.
Открытость — это доступность информаци: каждый видит процесс и работу друг друга, имеет право голоса.
Мужество. В основе гибкого подхода к разработке лежит общение с людьми: и с заказчиком, и с командой, и с пользователями. Когда в ходе работы случаются ошибки или обнаруживаются противоречия, нужна смелость, чтобы рассказать об этом и обсудить проблему. В Scrum есть особенно мужественная роль — владелец продукта. В манифесте от создателей фреймворка сказано, что мужество также нужно, чтобы брать сложные задачи.
Уважение — пункт, который не требуется пояснять, но который регулярно нарушается. Все остальные принципы надстраиваются над ним.
Термины и практика
Организационная особенность Scrum — разработка равными циклами, в 2-4 недели, за которые команда создает часть продукта. Это называется спринт. В идеале каждый спринт завершается значимым для пользователя обновлением ПО, в Scrum это называют инкремент.
Такой тип управления помогает клиенту оценить проект уже на этапе разработки. Каждое существенное изменение видно, его проверяют пользователи и заказчики. Если что-то не так или клиент меняет планы на ПО, откатить сделанную работу проще: она не отняла много времени и денег (конечно, если сравнивать с традиционной моделью, когда клиент видит команду только в момент заказа и приемки работ).
Спринт не единственное непонятное слово. Есть еще три: бэклог проекта, бэклог спринта и диаграмма сгорания. Вместе с инкрементом они называются артефакты.
Бэклог проекта — это:
- единственный источник работы для команды, список функций будущего продукта;
- идеи для него собираются от бизнеса, пользователей, команды; они сортируются и расставляются по приоритету.
Бэклог спринта — это:
- источник работы в новый спринт, «какие функции будут реализованы дальше»;
- он заполняется командой, в него берутся самые приоритетные истории из продуктового бэклога;
- истории делятся на более мелкие задачи, оцениваются по трудозатратам — им присваиваются Story Point — и постепенно уходят в разработку.
Подробнее про организацию бэклога мы рассказали в отдельной статье.
Диаграмма сгорания — это график, который заполняется по мере «сгорания» очков задач: они меряются или человеко-часами, или абстрактными story point'ами. К концу спринта график должен уходить вниз. По нему отслеживают прогресс и темп работы.
В Scrum есть собственно работа над продуктом и еще четыре события, которые проводятся регулярно. Из-за этого их называют ритуалами.
- Планирование спринта — событие перед началом спринта, на котором планируется работа. Задачи нужно рассмотреть заранее, разделить на таски (более мелкие части), чтобы представлять объем и способы работы. На этом же мероприятии выделяют цель спринта, в ней отражено, что изменится в новой версии продукта и зачем. Команда разработки наиболее активно участвует в планировании спринта. Скрам-мастер организует встречу, а владелец продукта консультирует команду как представитель бизнеса.
- Ежедневный скрам/митинг/стендап — это короткое событие, которое проходит каждый день. Есть несколько названий, но чаще используется стендап, так как встречу проводят стоя у доски задач. Стандартное время — 15 минут перед началом работы. Каждый разработчик отвечает на три вопроса: Что делал вчера? Что будет делать сегодня? С какими проблемами столкнулся? По ссылке статья — «Как провести успешный стендап» — про смысл и ход ежедневного стендапа.
- Демонстрация спринта/ревью — это событие, которое проводится после завершения задач из спринта. Команда демонстрирует, что сделано: показывает тот самый инкремент продукта. Владелец соглашается и принимает его или отправляет на доработку. На мероприятии могут присутствовать и заказчики, и другие заинтересованные стороны.
- Ретроспектива — событие после закрытия спринта, на котором команда делится опытом, обсуждает трудности и анализирует свою работу. Эта встреча проводится scrum-мастером для продуктовой команды, поэтому присутствие владельца необязательно.
Еще одно событие — разбор бэклога, он же грумминг. За бэклог отвечает владелец продукта, но наполнять бэклог историями и оценивать усилия для их выполнения помогает команда. В разных компаниях заведено по-разному: кто-то совмещает груминг с планированием спринта, кто-то регулярно отводит на него отдельное время, а кто-то вспоминает про это мероприятие по случаю. На этой встрече пишут новые User Story, решают судьбу старых — в общем, корректируют бэклог под новые условия работы и свежие данные о продукте.
Все scrum-ритуалы складываются в схему «Как ведется разработка по Scrum»:
И этот цикл повторяется раз за разом. Начиная с необходимого минимума, нужного, чтобы запустить продукт, команда постепенно совершенствует детали. Функции усложняются, добавляются новые, включая те, что не были запланированы на старте.
Таким образом, Scrum используется в проектах, которым нужна гибкость: когда нельзя создать исчерпывающее описание продукта до начала работы. Фреймворк позволяет создать отлаженный рабочий процесс при постоянно меняющихся требованиях.