SCRUM
SCRUM (от англ. scrum «толкучка») - методология управления проектами, активно применяющаяся при разработке информационных систем для гибкой разработки программного обеспечения. Scrum чётко делает акцент на качественном контроле процесса разработки. Кроме управления проектами по разработке ПО, Scrum может также использоваться в работе команд поддержки программного обеспечения (software support teams), или как подход управления разработкой и сопровождением программ: Scrum of Scrums.
Scrum методология делает основной акцент на общении с заказчиком, на общении внутри команды, достижении самоорганизации, достижении высокого уровня самосовершенствования.
Содержание
Основные концепции
- Временные рамки. Scrum достаточно жестко фиксирует временные рамки на свои практики. Scrum чётко фиксирует длину итерации (от 1 до 4х недель).
- Роли:
- Команда. Это команда разработчиков - основная движущая сила. Она состоит из профессионалов, которые работают над созданием инкремента продукта. Scrum требует, чтобы команда разработки была кроссфункциональна, то есть содержала людей со всеми необходимыми знаниями у умениями для того, чтобы создать каждый инкремент продукта.
- Владельца продукта (Product Owner). Человек, который владеет видением продукта, отвечает за то, что продукт движется в нужном направлении. Он ответственный за определение того, что же будет являться наиболее ценным и возможным продуктом к желаемой дате. Это делается посредством управления работой, которая поступает команде, выбором и уточнением элементов Бэклога Продукта. Product Owner поддерживает Бэклог Продукта и заботиться о том, чтобы все знали, что в нем находится и какие приоритеты расставлены. Также стоит заметить, что Product Owner типично является человеком, наиболее приближенным к «бизнес стороне» проекта. Обычно он наделен полномочиями в организации, чтобы «вытолкнуть этот продукт» и чаще всего подразумевается, что этот тот человек, который сможет лучше других удовлетворить пожелания всех заинтересованных сторон.
- Скрам-мастер (Scrum Master). Человек, который отвечает за то, что команда разрабатывает продукт эффективно. Он должен иметь хорошее понимание фреймворка Скрама и способен учить других тонкостям этого процесса. Скрам Мастер работает вместе с Product Owner-ом, помогает ему понимать, создавать и поддерживать Бэклог Продукта. Он работает с командой разработки, пытается найти и внедрить технические практики, которые позволят команде достичь нужного состояния готовности продукта по окончанию Спринта. Скрам Мастер помогает всем улучшаться, чтобы Scrum Команда стала более эффективной и ценной.
- Практики– это набор инструментов, который позволяет разрабатываемому продукту двигать в требуемом направлении с необходимой эффективностью.
Кроме этих концепций, SCRUM также вводит следующие понятия:
- Бэклог продукта (Product Backlog) – список идей, требований, хотелок, пожеланий, фич и т.д. Главный человек, который за ним следит – Product Owner. Это его инструмент. Product Backlog всегда приоритизирован и чем выше приоритет, тем более важно требование для конечного результата. Как правило, каждое требование в бэклоге записывается в виде пользовательской истории.
- Бэклог спринта (Sprint Backlog) - список задач, но уже более конкретных задач на спринт (верхушка из Product Backlog). Каждый раз в начале нового спринта команда забирает Sprint Backlog из Product Backlog. Смысл в том, чтобы Product Owner постоянно следил, что на верхушке Product Backlog находились самые приоритетные требования, которые в первую очередь нужны с точки зрения бизнеса. Затем команда оценивает трудоемкость с помощью разных инструментов и берет из них тот кусок, который она сама чествует и верит, что успеет сделать в течение итерации. Здесь важно понимать, что когда команда сама берет желаемый объем задач, то тогда она и более ответственно относиться к их выполнению.
- Внутри спринта есть также ежедневные итерации, которые поддерживаются таким инструментом как stand-up митинги. Эти митинги проводятся каждый день в одно и то же время и на них обсуждается ситуация по задачам. Обычно на stand-up митинге обсуждается три основных вопроса:
- что сделано?
- что планируем делать?
- есть ли какие-то проблемы?
- Внутри спринта есть также ежедневные итерации, которые поддерживаются таким инструментом как stand-up митинги. Эти митинги проводятся каждый день в одно и то же время и на них обсуждается ситуация по задачам. Обычно на stand-up митинге обсуждается три основных вопроса:
- За все что происходит внутри Спринта (stand-up митинги, следования), контроль того, что разработка движется с нужной скоростью и т.п. отвечает Scrum Master. В конце спринта проводится демо и ревью спринта. Команда демонстрирует инкремент продукта, созданный за последний Спринт. Product Owner, менеджмент, заказчики, пользователи, в свою очередь, его оценивают. Команда рассказывает о поставленных задачах, о том как они были решены, какие препятствия были у них на пути, какие были приняты решения, какие проблемы остались нерешенными. На основании ревью принимающая сторона может сделать выводы о том, как должна дальше развиваться система. Участники миитинга делают выводы о том, как шел процесс в команде и предлагает решения по его улучшению. Скрам Мастер отвечает за организацию и проведение этого митинга. Команда помогает ему составить адженду и распланировать кто и в какой последовательности что представляет.
- Бэклог спринта (Sprint Backlog) - список задач, но уже более конкретных задач на спринт (верхушка из Product Backlog). Каждый раз в начале нового спринта команда забирает Sprint Backlog из Product Backlog. Смысл в том, чтобы Product Owner постоянно следил, что на верхушке Product Backlog находились самые приоритетные требования, которые в первую очередь нужны с точки зрения бизнеса. Затем команда оценивает трудоемкость с помощью разных инструментов и берет из них тот кусок, который она сама чествует и верит, что успеет сделать в течение итерации. Здесь важно понимать, что когда команда сама берет желаемый объем задач, то тогда она и более ответственно относиться к их выполнению.
Методика
Схему методики Scrum вкратце можно описать следующим образом:
- Выбрать «Владельца продукта».
- Собрать «Команду».
- Выбрать «Скрам-мастера».
- Создать «Бэклог продукта».
- Участники команды должны оценить по своей системе оценок каждый пункт на предмет сложности и затрат, которые потребуются для его выполнения.
- Участники команды, скрам-мастер и владелец продукта должны провести первое скрам-собрание (stand-up митинг), на котором они запланируют спринт.
- Продолжительность спринта не должна превышать один месяц.
- За каждый спринт команда нарабатывает определенное количество баллов.
- Команда должна постоянно стремиться к тому, чтобы превзойти в новом спринте количество наработанных баллов за предыдущий спринт, то есть ее цель — постоянно превосходить свои собственные результаты — «наращивать динамику производительности».
- Чтобы все участники были в курсе состояния дел нужно завести скрам-доску с тремя колонками: «Нужно сделать, или бэклог»; «В работе»; «Сделано». На доску участники клеят стикеры с заданиями, которые в процессе работы поочередно перемещаются из колонки «Бэклог» в колонку «в работе», а затем в «сделано» (см. Канбан).
- Ежедневно проводится stand-up митинг — пятнадцать минут на то, чтобы все дали ответы на три вопроса:
- «Что ты делал вчера, чтобы помочь команде завершить спринт?»;
- «Что ты будешь делать сегодня, чтобы помочь команде завершить спринт?»;
- «Какие препятствия встают на пути команды?».
- По завершении спринта команда делает его обзор — проводит встречу, на которой участники рассказывают, что сделано за спринт.
- После показа результатов работы за спринт участники проводят ретроспективное собрание, на котором обсуждают, что команда делала хорошо, что можно сделать лучше, что можно улучшить прямо сейчас.