Что такое Scrum
В этом уроке вы узнаете подробнее о подходе Scrum и особенностях работы команды при такой методологии.
Scrum — неслучайно один из популярных подходов в группе гибких методологий. Он позволяет команде подстраиваться под обстоятельства и быстро выпускать обновлённый продукт для пользователей, при этом опирается на конкретный гайдлайн — Scrum Guide, который чётко обозначает роли в команде и принципы её работы.
При Scrum продукт разрабатывается не разом, а по частям — каждая из них реализуется в рамках спринта — одного из основных ограничений Scrum. Спринт (sprint) — это временной интервал (как правило, две недели), в течение которого идёт разработка функционала продукта.
Такой подход позволяет команде без особых потерь адаптироваться к изменениям и подстраивать решение под новые требования. При этом успех работы при Scrum зависит от того, как команды реализуют основные принципы подхода, описанные в Scrum Guide:
- Приверженность
Люди ответственны и за собственный результат, и за результат команды в целом. Команда берёт на себя обязательства и выполняет их — прилагает усилия, чтобы закрыть задачи, выбранные в рамках спринта.
- Сфокусированность
Команда сфокусирована на самом важном в данный момент. Благодаря работе с приоритетами и ожиданиями заказчика, команда берёт в работу только те задачи, которые нужно сделать прямо сейчас, и фокусируется на их выполнении.
- Открытость
Процесс работы, обсуждение проблем — всё происходит открыто и для всей команды. Команда разработки открыта к сотрудничеству со всеми участниками процесса, прогресс по задачам виден и заказчику, и членам команды.
- Уважение
Члены команды прислушиваются к мнению друг друга, решают проблемы сообща. Опыт всех членов команды важен для принятия эффективных решений.
- Смелость
Команда разработки не боится рисковать и доводит начатое до конца. Команда готова работать в рамках неопределённости, менять планы по ходу работы и старается удовлетворить потребности заказчика и пользователей.
Scrum-команда
Scrum Guide также чётко описывает состав команды, который необходим для разработки продукта. У каждого участника — своя роль, каждый отвечает за свою часть работы, чтобы эффективно закрывать потребности пользователей.
В scrum-команду входят:
- Product Owner.
- Scrum Master.
- Development team.
Product Owner — человек, который отвечает за продукт в целом. Он следит за тем, как будет развиваться продукт, расставляет приоритеты, делает так, чтобы пользователи или заказчики были довольны.
Scrum Master — человек, который отвечает за соблюдение принципов Scrum в команде, помогает поддерживать рабочий процесс. Это главный хранитель знаний о том, как должна идти разработка по методологии Scrum. Он, например, понимает, для чего нужны те или иные рабочие активности в команде.
Development team — группа людей (как правило, до 10 человек), которая занимается разработкой продукта, например: дизайнеры, системные аналитики, разработчики и инженеры по тестированию.
Особенности работы команды по Scrum:
- Самодостаточность. Всех участников команды разработки достаточно, чтобы создать и поддерживать продукт без передачи части полномочий в другие команды.
- Саморегуляция. Команда способна организоваться для совместного выполнения работ. Например, если команда теряет менеджера, её участники способны самостоятельно организовать свою работу, перераспределив функции менеджера между собой.
- Ответственность за конечный результат.
Атрибуты команды, которая работает по Scrum:
- Бэклог продукта — упорядоченный список задач, который ведут и обновляют Product Owner и Scrum Master.
Например, если бы мы разрабатывали сервис для поиска репетиторов по математике, у нас был бы список задач, состоящий из того, что нужно добавить в сервис: строку поиска, календарь занятости преподавателей и личный кабинет студента. Список этих задач и есть бэклог продукта. Самое главное — отсортировать их таким образом, чтобы вверху отображались самые важные идеи (то, что хочется реализовать как можно скорее), а снизу — менее приоритетные. - Инкремент продукта — это законченная часть продукта, которая закрывает потребность пользователя.
Например, мы хотим внести в продукт функцию, которая позволяет пользователям писать отзывы о репетиторах. Для этого в анкете преподавателей мы добавим новый раздел «Отзывы», добавим бизнес-логику, которая бы отвечала за отображение отзывов от учеников. Новая функциональность — это и есть инкремент продукта. - Спринт — тоже атрибут scrum-команды. В течение спринта команда берёт на себя обязательства по некоему инкременту продукта, то есть обязуется в какой-то мере закрыть потребность пользователя. Длительность спринта определяет объём задач, который команда собирается выполнить.
- Цель спринта — цель, которая описывает, для чего создаётся инкремент продукта.
Например, заказчикам важно расширить возможности продукта и добавить преподавателей биологии в сервис для поиска репетиторов. В этот спринт мы обязуемся выполнить все задачи, которые нужны для реализации этой цели. Таким образом, цель всего спринта — добавить анкеты преподавателей биологии в сервис. При этом команда берёт в спринт лишь то количество задач, которое сможет сделать в течение заданного времени, поэтому цель ставится с учётом возможностей команды. - Бэклог спринта — упорядоченный список задач, которые запланированы на текущий спринт.
Итак, цель на спринт — добавить преподавателей биологии в сервис по поиску репетиторов. У нас есть список задач, которые нужно выполнить для того, чтобы достичь этой цели: добавить фильтр «биология» в поиск по сервису, сделать ранжирование анкет преподавателей по предметам, добавить в базу данных информацию о новых преподавателях. Все эти задачи попадают в бэклог спринта. - Доска разработки — это визуальное отображение задач команды разработки в текущем спринте. Доска включает в себя карточки задач, статус задач (он может звучать как «в работе» «завершено» и так далее) и другие атрибуты, необходимые команде для организации работы.
Работа по Scrum
Scrum-команда регулярно участвует в нескольких активностях.
- Работа с бэклогом продукта.
Перед тем как приступить к разработке, необходимо разобраться с бэклогом продукта — отсортировать все задачи по приоритету. Самые важные нужно брать в первую очередь.
- Планирование спринта.
Как только бэклог продукта готов к работе (все задачи отсортированы, приоритеты расставлены), можно переходить к планированию спринта. Необходимо определиться с целью спринта и выбрать из бэклога продукта задачи, которые нужно взять на ближайший спринт. Важно, чтобы в спринт попадали только понятные для работы задачи. Команда разработки в начале спринта обязуется брать в работу именно те задачи, которые выбрали на планировании. Таким образом, команда фокусируется на ограниченном списке задач и не приступает к тем, которые в него не входят.
- Дейли (daily — ежедневный).
В течение спринта команда собирается на ежедневные встречи — дейли. На этих встречах участники команды делятся результатами своей работы, рассказывают о проблемах, с которыми столкнулись. Такую ежедневную встречу ещё называют «скрам» — часто в некоторых командах можно услышать фразу: «Пойдём на скрам». Ежедневные встречи помогают отслеживать прогресс команды относительно цели спринта, вносить корректировки в работу, если они требуются. Кроме того, во время дейли или скрама члены команды могут подсветить вопросы, которые можно будет обсудить после встречи.
- Демонстрация.
По окончании спринта команда демонстрирует результаты своей работы пользователям или заказчикам. Так она получает обратную связь, чтобы проверить, все ли задачи спринта выполнены верно.
- Ретроспектива.
Перед тем как начать новый спринт, команда проводит ретроспективу. Ретроспектива — это мероприятие, на котором вся команда обсуждает положительные и отрицательные моменты совместной работы во время предыдущего спринта. По итогам ретроспективы команда вносит коррективы в работу и начинается новый спринт. На котором все активности повторяются.
Результат работы над спринтом — готовая к использованию часть продукта, которая приносит ценность пользователю и бизнесу.
Распределите активности scrum-команды согласно очерёдности, в которой они идут. Чтобы выполнить задание, вам нужно соединить активности с их порядковыми номерами.