Жизненный цикл проекта, основные артифакты, роли участников
Методология SCRUM: этапы, роли, артифакты, коммуникации, метрики
Scrum – одна из самых популярных методолгий гибкой разработки. Одна из причин ее популярности – простота. Scrumпо настоящему прост, его можно описать в одной короткой статье, что я и постараюсь сделать в этом обзоре.
Роли
В методологии Scrum всего три роли:
· ScrumMaster
· ProductOwner
· Team
Скрам Мастер (ScrumMaster) – самая важная роль в методологии. Скрам Мастер отвечает за успех Scrum в проекте. По сути, Скрам Мастер является интерфейсом между менеджментом и командой. Как правило, эту роль в проекте играет менеджер проекта или тимлид. Важно подчеркнуть, что Скрам Мастер не раздает задачи членам команды. В Agile команда является самоорганизующейся и самоуправлямой. Основные обязанности Скрам Мастера:
· Создает атмосферу доверия
· Участвует в митингах в качестве фасилитатора
· Устраняет препятствия
· Делает проблемы и открытые вопросы видимыми
· Отвечает за соблюдение практик и процесса в команде
Скрам Мастер ведет DailyScrumMeeting и отслеживает прогресс команды при помощи SprintBacklog, отмечая статус всех задач в спринте. ScrumMaster может также помогать ProductOwner создавать Backlog для команды.
ProductOwner – это человек, отвечающий за разработку продукта. Как правило, это productmanager для продуктовой разработки, менеджер проекта для внутренней разработки и представитель заказчика для заказной разработки. ProductOwner – это единая точка принятия окончательных решений для команды в проекте, именно поэтому это всегда один человек, а не группа или комитет. Обязанности ProductOwner таковы:
· Отвечает за формирование productvision
· УправляетROI
· Управляет ожиданиями заказчиков и всех заинтересованных лиц
· Координирует и приоритизируетProductbacklog
· Предоставляет понятные и тестируемые требования команде
· Взаимодействует с командой и заказчиком
· Отвечает за приемку кода в конце каждой итерации
ProductOwner ставит задачи команде, но он не вправе ставить задачи конкретному члену проектной команды в течении спринта.
Команда (Team).В методологии Scrum команда является самоорганизующейся и самоуправляемой. Команда берет на себя обязательства по выполнению объема работ на спринт перед ProductOwner. Работа команды оценивается как работа единой группы. В Scrum вклад отдельных членов проектной команды не оценивается, так как это разваливает самоорганизацию команды. Обязанности команды таковы:
· Отвечает за оценку элементов баклога
· Принимает решение по дизайну и имплементации
· Разрабатывает софт и предоставляет его заказчику
· Отслеживает собственный прогресс (вместе со Скрам Мастером)
· Отвечает за результат перед ProductOwner
Размер команды ограничивается размером группы людей, способных эффективно взаимодействовать лицом к лицу. Типичные размер команды – 7 плюс минус 2.
Команда в Scrumкроссфункциональна. В нее входят люди с различными навыками – разработчики, аналитики, тестировщики. Нет заранее определенных и поделенных ролей в команде, ограничивающих область действий членов команды. Команда состоит из инженеров, которые вносят свой вклад в общий успех проекта в соответствии со своими способностями и проектной необходимостью.
Команда самоорганизуется для выполнения конкретных задач в проекте, что позволяет ей гибко реагировать на любые возможные задачи. Для облегчения коммуникаций команда должна находиться в одном месте (colocated). Предпочтительно размещать команду не в кубиках, а в одной общей комнате для того, чтобы уменьшить препятствия для свободного общения. Команде необходимо предоставить все необходимое для комфортной работы, обеспечить досками и флипчартами, предоставить все необходимые инструменты и среду для работы.
Артефакты
ProductBacklog – это приоритезированный список имеющихся на данный момент бизнес требований и технических требований к системе. Product Backlog включаетвсебя use cases, defects, enhancements, technologies, stories, features, issues, ит.д..Productbacklog также включает задачи, важные для команды, например «провести тренинг», «добить всем памяти»
ProductBacklog постоянно пересматривается и дополняется – в него включаются новые требования, удаляются ненужные, пересматриваются приоритеты. За ProductBacklog отвечает ProductOwner. Он также работает совместно с командой для того, чтобы получить приближенную оценку на выполнение элементов ProductBacklog для того, чтобы более точно расставлять приоритеты в соответствии с необходимым временем на выполнение.
SprintBacklog содержит функциональность, выбранную ProductOwnerизProductBacklog. Все функции разбиты по задачам, каждая из которых оценивается командой. Каждый день команда оценивает объем работы, который нужно проделать для завершения задач.
Пример SprintBacklog
Сумма оценок оставшейся работы может быть построена как график зависимости от времени. Такой график называется SprintBurndownchart. Он демонстрирует прогресс команды по ходу спринта.
В Scrum итерация называется Sprint. Ее длительность составляет 1 месяц (30 дней). Результатом Sprint является готовый продукт (build), который можно передавать (deliver) заказчику (по крайней мере, система должна быть готова к показу заказчику). Короткие спринты обеспечивают быстрый feedback проектной команде от заказчика. Заказчик получает возможность гибко управлять scope системы, оценивая результат спринта и предлагая улучшения к созданной функциональности.
Такие улучшения попадают в ProductBacklog, приоритезируются наравне с прочими требованиями и могут быть запланированы на следующий (или на один из следующих) спринтов. Каждый спринт представляет собой маленький «водопад». В течение спринта делаются все работы по сбору требований, дизайну, кодированию и тестированию продукта. Scope спринта должен быть фиксированным. Это позволяет команде давать обязательства на тот объем работ, который должен быть сделан в спринте. Это означает, что SprintBacklog не может быть изменен никем, кроме команды.
Жизненный цикл спринта
Планирование спринта
В начале каждого спринта проводится планирование спринта. В планировании спринта участвуют заказчики, пользователи, менеджмент, ProductOwner, Скрам Мастер и команда. Планирование спринта состоит из двух последовательных митингов.
Планирование спринта, митинг первый. Участники: команда, ProductOnwer, SxrumMaster, пользователи, менеджемент Цель: Определить цель спринта (SprintGoal) и SprintBacklog –функциональность, которая будет разработана в течение следующего спринта для достижения цели спринта. Артефакт: SprintBacklog.
Планирование спринта, митинг второй. Участники: Скрам Мастер, команда Цель: определить, как именно будет разрабатываться определенная функциональность для того, чтобы достичь цели спринта. Для каждого элемента SprintBacklog определяется список задач и оценивается их продолжительность. Артефакт: в SprintBacklog появляются задачи Если в ходе спринта выясняется, что команда не может успеть сделать запланированное на спринт, то Скрам Мастер, ProductOwner и команда встречаются и выясняют, как можно сократить scope работ и при этом достичь цели спринта.