Июнь 17, 2014
Scrum (от англ. scrum «толкучка») — методология управления проектами, активно применяющаяся при разработке информационных систем для гибкой разработки программного обеспечения. Scrum чётко делает акцент на качественном контроле процесса разработки. Кроме управления проектами по разработке ПО Scrum может также использоваться в работе команд поддержки программного обеспечения (software support teams), или как подход управления разработкой и сопровождением программ: Scrum of Scrums.
Роли
В методологии Scrum всего три роли:
Scrum Master - самая важная роль в методологии. Отвечает за успех Scrum в проекте. По сути, это интерфейс между менеджментом и командой. Как правило, эту роль в проекте играет Project Manager или Team Leader. Важно подчеркнуть, что SM не раздает задачи членам команды. В Agile команда является самоорганизующейся и самоуправлямой.
Основные обязанности SM:
SM ведет Daily Scrum Meeting и отслеживает прогресс команды при помощи Sprint Backlog, отмечая статус всех задач в спринте. SM может также помогать PO создавать Backlog для команды.
Product Owner отвечает за разработку продукта. Как правило, это Product Manager для продуктовой разработки, Project Manager для внутренней разработки и представитель заказчика для заказной разработки. PO - это единая точка принятия окончательных решений для команды в проекте, именно поэтому это всегда один человек, а не группа или комитет.
Основные обязанности PO:
PO ставит задачи команде, но он не вправе ставить задачи конкретному члену проектной команды в течении спринта.
В методологии Scrum команда является самоорганизующейся и самоуправляемой. Команда берет на себя обязательства по выполнению объема работ на спринт перед PO. Работа команды оценивается как работа единой группы. В Scrum вклад отдельных членов проектной команды не оценивается, так как это разваливает самоорганизацию команды.
Обязанности ST:
Размер ST ограничивается размером группы людей, способных эффективно взаимодействовать лицом к лицу. Типичные размер команды - 7 плюс минус 2.
Команда в Scrum кроссфункциональна. В нее входят люди с различными навыками - разработчики, аналитики, тестировщики. Нет заранее определенных и поделенных ролей в команде, ограничивающих область действий членов команды. ST состоит из инженеров, которые вносят свой вклад в общий успех проекта в соответствии со своими способностями и проектной необходимостью. ST самоорганизуется для выполнения конкретных задач в проекте, что позволяет ей гибко реагировать на любые возможные задачи.
Для облегчения коммуникаций ST должна находиться в одном месте (colocated). Предпочтительно размещать команду не в кубриках, а в одной общей комнате для того, чтобы уменьшить препятствия для свободного общения. Команде необходимо предоставить все необходимое для комфортной работы, обеспечить магнитно-маркерной доской для крепления блока листа, предоставить все необходимые инструменты и среду для работы.
Product Backlog - это приоритезированный список имеющихся на данный момент бизнес-требований и технических требований к системе. Включает в себя use cases, defects, enhancements, technologies, stories, features, issues, и т.д.. Product backlog также включает задачи, важные для команды, например «провести тренинг», «добить всем памяти». (См. Рис. 2. Пример Product Backlog)
Product Backlog постоянно перематривается и дополняется - в него включаются новые требования, удаляются ненужные, пересматриваются приоритеты. За Product Backlog отвечает PO. Он также работает совместно с командой для того, чтобы получить приближенную оценку на выполнение элементов Product Backlog для того, чтобы более точно расставлять приоритеты в соответствии с необходимым временем на выполнение.
Sprint Backlog содержит функциональность, выбранную PO из Product Backlog. Все функции разбиты по задачам, каждая из которых оценивается ST. Каждый день ST оценивает объем работы, который нужно проделать для завершения задач. (См. Рис. 3. Пример Spint Backlog).
Сумма оценок оставшейся работы может быть построена как график зависимости от времени. Такой график называется Sprint Burndown chart. Он демонстрирует прогресс команды по ходу спринта. (См. Рис. 4. Пример Sprint Burndown chart)
В Scrum итерация называется Sprint. Ее длительность составляет 1 месяц (30 дней). Результатом Sprint является готовый продукт (build), который можно передавать заказчику (по крайней мере, система должна быть готова к показу заказчику).
Короткие спринты обеспечивают быстрый feedback (обратную связь) проектной команде от заказчика. Заказчик получает возможность гибко управлять scope системы, оценивая результат спринта и предлагая улучшения к созданной функциональности. Такие улучшения попадают в Product Backlog, приоритезируются наравне с прочими требованиями и могут быть запланированы на следующий (или на один из следующих) спринтов.
Каждый спринт представляет собой маленький «водопад». В течение спринта делаются все работы по сбору требований, дизайну, кодированию и тестированию продукта.
Scope спринта должен быть фиксированным. Это позволяет команде давать обязательства на тот объем работ, который должен быть сделан в спринте. Это означает, что Sprint Backlog не может быть изменен никем, кроме команды.
В начале каждого спринта проводится его планирование. В планировании спринта участвуют заказчики, пользователи, менеджмент, PO, SM и ST
Планирование спринта состоит из двух последовательных митингов.
Планирование спринта, митинг первый
Участники: ST, PO, SM, пользователи, менеджемент
Цель: Определить цель спринта (Sprint Goal) и Sprint Backlog -функциональность, которая будет разработана в течение следующего спринта для достижения цели спринта.
Артефакт: Sprint Backlog
Планирование спринта, митинг второй
Участники: SM, ST
Цель: определить, как именно будет разрабатываться определенная функциональность для того, чтобы достичь цели спринта. Для каждого элемента Sprint Backlog определяется список задач и оценивается их продолжительность.
Артефакт: в Sprint Backlog появляются задачи
Если в ходе спринта выясняется, что команда не может успеть сделать запланированное на спринт, то SM, PO и ST встречаются и выясняют, как можно сократить scope работ и при этом достичь цели спринта.
Остановка спринта производится в исключительных ситуациях. Спринт может быть остановлен до того, как закончатся отведенные 30 дней. Спринт может остановить команда, если понимает, что не может достичь цели спринта в отведенное время. Спринт может остановить PO, если необходимость в достижении цели спринта исчезла.
После остановки спринта проводится митинг с командой, где обсуждаются причины остановки спринта. После этого начинается новый спринт: производится его планирование и стартуются работы.
Этот митинг проходит каждое утро в начале дня. Он предназначен для того, чтобы все члены команды знали, кто и чем занимается в проекте. Длительность этого митинга строго ограничена и не должна превышать 15 минут.
Цель митинга - поделиться информацией. Он не предназначен для решения проблем в проекте. Все требующие специального обсуждения вопросы должны быть вынесены за пределы митинга.
Scrum Meeting проводит SM. Он по кругу задает три вопроса каждому члену команды
SM собирает все открытые для обсуждения вопросы в виде Action Items, например в формате что/кто/когда, например
Рекомендованная длительность: 4 часа
ST демонстрирует инкремент продукта, созданный за последний спринт. PO, менеджмент, заказчики, пользователи, в свою очередь, его оценивают. ST рассказывает о поставленных задачах, о том как они были решены, какие препятствия были у них на пути, какие были приняты решения, какие проблемы остались нерешенными. На основании ревью принимающая сторона может сделать выводы о том, как должна дальше развиваться система. Участники миитинга делают выводы о том, как шел процесс в команде и предлагает решения по его улучшению.
SM отвечает за организацию и проведение этого митинга. ST помогает ему составить адженду и распланировать кто и в какой последовательности что представляет.
Подготовка к митингу не должна занимать у ST много времени (не более 2-х часов). В частности, именно поэтому запрещается использовать презентации в Power Point. Подготовка к митингу не должна занимать у команды более 2-х часов.
Источники: Асхат Уразбаев | Википедия