Scrum — методика организации совместного рабочего процесса, в основе которой — поэтапная разработка и совершенствование продукта небольшой командой специалистов различного профиля.
Scrum изобрели программисты Джефф Сазерленд и Кен Швабер. Они смотрели, как работают американские военные и спецназ и пришли к выводу, что залог успеха — качественная командная работа. Сам термин пришел из регби и переводится с английского как «схватка». Сначала подход использовался среди разработчиков, а затем получил распространение в других сферах бизнеса.
Scrum относится к семейству гибких Agile-методик. Часто эти два понятия используются как синонимы, но это некорректно. Scrum — это частный пример Agile-подхода. Он представляет собой конкретную производственную методику, в то время как Agile является скорее философией или набором ценностей.
Особенности Scrum — командный подход и нестандартное распределение обязанностей в коллективе. В процесс вовлечены как сотрудники компании, так и бизнес-заказчики.
Зачем нужна методология Scrum
Подход отличается гибкостью и позволяет экспериментировать, поэтому эффективен, когда нужно быстро разработать новый продукт. Особенно если отсутствует итоговое видение результата или слишком часто меняются условия на рынке. Scrum помогает постепенно идти к цели и на протяжении всего пути контролировать эффективность проделанной работы.
Процесс работы Scrum-команды
Основная цель подхода — дать заказчику желаемый продукт вовремя и с минимально возможными затратами. Ее помогает достичь соблюдение следующих этапов работы.
Разработка бэклога продукта
Владелец разрабатывает концепцию продукта с учетом ситуации на рынке, потребностей пользователей. На основании этого составляется перечень требований к проекту, которые распределяются по приоритетности. Готовый бэклог — это техническое задание для команды.
Сбор команды
Scrum-команда — единое целое. В проекте участвует небольшая группа специалистов разного профиля (6–10 человек). Они работают на общий результат и стремятся к одной цели. В общем виде Scrum-команда включает:
- Владельца продукта. Это сам заказчик или его представитель. Он консультирует разработчиков, транслирует новые требования компании к продукту и следит за тем, чтобы работа шла в верном направлении. Владелец продукта должен уметь организовать эффективную связь между заказчиком, командой разработчиков и пользователями, понимать требования бизнеса и рынка, ставить понятные задачи.
- Scrum-мастера. Обычно это специально нанятый сотрудник, ведущий команду к достижению цели. Его задача — не управление разработчиками, а наблюдение за соблюдением принципов Scrum в рабочем процессе. Он не давит, не берет всю работу на себя и не распределяет обязанности, а направляет команду и решает проблемы, тормозящие рабочий процесс.
- Разработчиков. Это люди с различной специализацией и наборами навыков. Команда формируется отдельно под каждый проект и ведет его от начала до конца. Важно подобрать членов команды так, чтобы они органично дополняли друг друга. При этом в группе не должно быть явного лидера, а рабочий процесс должен строиться на равноправии.
Планирование коротких циклов (спринтов)
Спринт — период, в течение которого команда создает и совершенствует отдельную часть продукта, чтобы быть готовым к изменениям условий и исключить глобальную доработку.
Каждый спринт начинается с планирования. Вся команда, включая владельца продукта, Scrum-мастера и разработчиков, изучает бэклог продукта. На его основе составляются задачи, которые необходимо выполнить в пределах одного цикла. Так формируется бэклог конкретного спринта.
После этого команда проводит оценку предстоящей работы, подбирает продолжительность цикла (около двух недель).
Возможны три исхода:
- Команда не успевает вовремя — клиент перераспределяет сроки так, чтобы поставленная цель была достигнута.
- Команда успевает вовремя — заказчик одобряет результат, и разработчики переходят к следующему спринту.
- Команда успевает с опережением — разработчики выполняют в оставшееся время спринта дополнительные задачи.
Соблюдение сроков спринта организует рабочий процесс, задает ритм и помогает разработчикам распределять время. Цикл считается завершенным, если команда смогла создать в установленное время продукт, удовлетворяющий клиента и готовый к использованию.
Scrum-митинг, или стендап
Ежедневно вся команда собирается не более чем на 15 минут. Цель встречи — услышать от каждого участника ответ на три вопроса:
- Что я сделал с прошлой встречи?
- Что я буду делать сегодня?
- Что мешает выполнению задачи?
На основании этих микроотчетов Scrum-мастер старается понять, так ли идет рабочий процесс и как можно помочь команде преодолеть препятствия.
Scrum-доска
Команда использует физические либо программные доски, пространство которых разделяется на части, отражающие стадии работы над продуктом. Их количество может варьировать, но обязательно включает в себя три составляющих (слева направо):
- запланированные задачи;
- задачи в активной работе;
- выполненные задачи.
Доска — это визуальное отображение рабочего процесса на разных стадиях. С ее помощью каждый член команды может контролировать свою работу и следить за проектом.
Подведение итогов спринта
Оценка гибкости процесса и тестирование продукта проводятся после каждого спринта. Если проверка показывает несоответствие полученного результата желаемому, команда может быстро скорректировать стратегию разработки или пересмотреть бэклог.
Обзор результатов работы над проектом
В конце цикла вся команда, включая владельца продукта и Scrum-мастера, собирается для демонстрации результатов работы за отчетный период. Каждый разработчик показывает завершенные задачи из бэклога. Остальные оценивают его результаты, а после этого вся команда демонстрирует общий итог в виде работающего продукта.
Владелец принимает решение, выпускать его или нет. Кроме того, проводится ретроспектива рабочего процесса за прошедший период. Участники команды делятся наблюдениями, проблемами, с которыми столкнулись, оценивают уровень взаимоотношений с другими членами, используемые инструменты.
Принципы работы Scrum-команды
Во время работы по методике Scrum должны соблюдаться основополагающие принципы:
- Постоянное совершенствование. Продукт улучшается благодаря самосовершенствованию всей команды.
- Автономность. Каждый участник несет ответственность за свою часть работы и за общий результат.
- Кроссфункциональность. Наличие в команде людей с разными навыками делает ее самодостаточной.
Чем Scrum отличается от Kanban
Метод управления проектами Kanban тоже входит в семейство Agile. Но Scrum — структурированный подход с заданными этапами создания продукта, а Kanban — сбалансированный, основная цель которого — обеспечить всех членов команды одинаковым количеством работы.
В Scrum предусмотрены организованные периоды работы с задачами на период. В Kanban новые задачи могут появляться в любой день. Scrum-команды работают в течение заданного отрезка времени, а в Kanban задачи поступают непрерывно.
Преимущества
- Команда работает небольшими этапами, на каждом из которых определяются цели и способы их достижения, что повышает скорость работы.
- Команда одновременно работает над разными задачами проекта и быстрее достигает желаемой цели.
- Большие задачи дробятся на мелкие, поэтому удобно вносить корректировки в процессе работы.
- Благодаря быстрой реакции на изменения и устранения ошибок минимизируются финансовые риски.
- Каждый член команды знает, за что отвечает.
- Открытый обмен информацией делает работу максимально прозрачной.
- Ежедневная видимость достижений поддерживает высокий уровень мотивации.
Недостатки
- Scrum не подходит для слишком больших и сложных проектов, так как могут возникнуть проблемы с координацией команд.
- Необходим высокий уровень доверия в команде.
- После продолжительного периода работы падает динамика производительности, команду нужно перестраивать или разрушать.
- Заказчик должен постоянно общаться с командой и давать обратную связь.
1 комментарий