Scrum переводится с английского как «схватка», и это слово очень верно отражает суть подхода к работе. Вся работа строится на коротких промежутках планирования и реализации, спринтах, позволяющих выкатить работоспособный продукт в минимальные сроки. Scrum нашел широкое применение в IT-отрасли и не только.
Поговорим подробнее, что такое Scrum-подход в управлении проектами и зачем его нужно знать айтишникам и всем, кто связан с разработкой ПО.
Сам термин «scrum» относится к регби, где короткими, но очень интенсивными атаками команда продавливает оборону соперника. Схваткой же называют диспозицию игроков на поле перед очередным натиском. В этот момент главное, чтобы каждый участник знал свою роль и четко следовал выбранной тактике.
Designed by freepik
Программисты Джефф Сазерленд и Кен Швабер, придумавшие SCRUM-подход, руководствовались теми же соображениями: команда решать конкретную задачу за фиксированный промежуток времени. Далее следует анализ и корректировка работы в случае необходимости.
Scrum-методика строится на поэтапном решении задач:
Короткий период планирования, анализ потребностей заказчика;
Оформление требований к проекту и распределение задач по приоритетности;
Создание бэклога — технического задания для команды;
Выделение ресурсов и распределение ролей;
Планирование спринта и создание тех. задания по нему;
Спринт на фиксированный промежуток времени (короткий, 24 часа, длинный на 7 дней или на 30 дней);
Фиксирование результатов на совещании;
Оформление нового спринта.
Так постепенно, шаг за шагом команда разработки создает продукт и доводит его до ума. При этом в планировании и спринтах работают не только IT-специалисты, менеджеры, дизайнеры и прочие сотрудники компании, но и заказчики. Они подключаются на этапе совещания и высказывают свои пожелания, если их не устраивает промежуточный результат. В этом суть SCRUM-подхода в IT и программировании.
В коллективе всегда есть четкое распределение ролей и лидеры:
На первом месте владелец продукта, то есть его заказчик или его представитель. Он же одновременно и куратор проекта, который формирует обратную связь и спускает на уровень исполнителей новые вводные;
SCRUM-мастер — это формальный или неформальный лидер команды разработки, чаще всего нанятый со стороны под конкретный проект. Его задача состоит в том, чтобы коллеги соблюдали принципы SCRUM, а на пути было как можно меньше препятствий;
Разработчики, то есть непосредственные исполнители, которых также набирают под конкретный проект. Все они имеют разные специализации и набор навыков, но каждый должен дополнять друг друга. Важное условие в том, что в команде не должно быть людей, тянущих одеяло на себя и желающих поруководить: рабочий процесс строится на равноправии.
Нестандартность и пространство для экспериментов;
Возможность откатить проект и что-либо доделать;
Четкая организация процесса и распределение ролей;
Автономность всех участников;
Кроссфункциональность команды, гарантирующая её самодостаточность;
Самосовершенствование коллектива в процессе выполнения задач;
Сравнительно малый срок планирования;
Микроконтроллинг — участие заказчика на каждом этапе разработки.
Не подходит для крупных проектов, поскольку могут возникнуть проблемы с координацией команд;
Нельзя делегировать некоторые задачи на сторону, поскольку требуется слаженность работы всех участников команды;
Необходимо высокое доверие внутри коллектива;
Нельзя поддерживать рабочий ритм длительное время, производительность падает, что требует "перезагрузки" команды;
Заказчик вынужден постоянно контролировать процесс разработки;
Неравномерность распределения нагрузки среди членов команды.
Итак, разберемся, как всё устроено изнутри. У SCRUM-подхода есть определенный паттерн, от которого желательно не отступать, дабы не потерять рабочий ритм. Вот его элементы:
Команда собирается ежедневно на планерку, чаще всего утром и не более чем на 15 минут. Каждый участник должен отчитаться, что сделал вчера, что собирается делать сегодня. Если есть необходимость, он может рассказать, что мешает ему работать, и как по его мнению устранить препятствия.
Такие отчеты помогают SCRUM-мастерам понять, всё ли идет по плану и чем можно помочь команде.
Так называют физическую доску, либо специальную программу, где расписаны все текущие задачи, закрепленные за каждым участником. В ней в разных колонках отражены:
Проделанные результаты;
Текущие задачи;
Запланированные задачи.
Так каждый член команды может следить за проектом и контролировать работу коллег.
Designed by freepik
Ещё одна важная составляющая процесса — оценка результатов спринта и работы каждого из его участников. Если команда не укладывается в сроки, можно либо скорректировать бэклог проекта, стратегию разработки, либо пересмотреть роли каждого из членов коллектива.
По завершении цикла разработки вся команда подводит итоги, показывая, какие задачи решил каждый участник и какого результата добился. Также специалисты разбирают сам процесс разработки и делятся наблюдениями: как шла разработка, какие трудности возникли, как их избежать в дальнейшем и т.д.
Заказчик же решает, удовлетворяет его результат или нет, и стоит ли выпускать для коммерческого использования полученный продукт. По итогу он может отправить проект на доработку, и тогда запускается новый цикл.
Agile — это семейство гибких методик разработки (мы про неё уже писали), которая объединяет в себе и Scrum, и Kanban, и некоторые иные более экзотические подходы.
Отличие между Scrum и Kanban одно: в первом случае задачи структурированы и расписаны на определенный период (сутки, неделя, месяц), во втором — задачи поступают непрерывно.
Scrum-подход позволяет четко распределить обязанности и этапы создания продукта, а Kanban помогает правильно распределить нагрузку и дать всем членам команды одинаковый объем работы.
Изучать Scrum и в целом методику Agile нужно всем, кто задействован в IT-отрасли. Речь идет не только о программистах, но и командах техподдержки, системных администраторах, редакторах и UX-писателях, дизайнерах.
Однако по-настоящему актуально это знание именно для Scrum-мастеров, тимлидов и менеджеров проектов, поскольку им нужно видение продукта, умение организовывать коллектив и прорабатывать стратегию.
Где же учат Scrum-методике? Лучший вариант пройти онлайн-курсы в IT-школах, вроде Нетологии, Skill Factory или Skillbox. Здесь расскажут о базовых принципах Agile и Scrum, причем на реальных примерах.
Scrum — один из ключевых soft skills любого IT-руководителя и разработчика. Владение этим инструментом помогает лучше находить общий язык в команде, распределять роли, купировать бардак и неразбериху при работе над любым проектом. Проблема в том, что обучение Scrum не всем кажется очевидным, поскольку кажется, что всему можно научиться в процессе. Однако без понимания Scrum будет очень тяжело выработать видение конечного продукта, разработать проект и заметить проблемы на любом этапе разработки.