Скрам является одной из гибких методологий разработки ПО. Основополагающим принципом данной методологии является качественный контроль разработки ПО. Схематично представлен на картинке ниже:

Scrum

Итак, скрам (Scrum) — это набор принципов, на которых строится процесс разработки, позволяющий в жёстко фиксированные и небольшие по времени итерации, называемые спринтами (sprints), предоставлять конечному пользователю работающее ПО с новыми возможностями, для которых определён наибольший приоритет. Новые возможности, над которыми предстоит работать в ходе спринта, определяются на этапе планирования и не могут изменяться на всём его протяжении. Время спринта регламентируется также на этапе планирования и неизменно, что делает процесс создания продукта предсказуемым и гибким.

Давайте для начала разберемся в основных ролях участников проекта, разрабатываемого по Scrum:

  1. Product owner – это человек, который знает, как он хочет, чтобы выглядел продукт, т.е. он формирует список требований, которые заносятся в бэклог продукта идут в разработку
  2. Team – это команда, которая непосредственно участвует в разработке. Очень важно чтобы она была самоорганизующейся и самоуправляемой, а также могла самостоятельно выделить какие из предложенных требований необходимо разработать в первую очередь.
  3. Scrum Master – это человек, который следит за тем, чтобы соблюдались правила Scrum
Scrum
Scrum

Таким образом, идея есть, команда есть – можно начинать. Но для того, чтобы начать надо определиться, с ЧЕГО? Правильно, с планирования спринта. На этом этапе определяются функциональности, которые необходимо разработать и сколько времени на это потребуется. Далее начинается спринт.

 

Спринт — итерация в скраме, в ходе которой создаётся функциональный рост программного обеспечения. Жёстко фиксирован по времени, его длительность составляет от 2 до 4 недель. Тем не менее, разные команды подбирают длину спринта согласно специфике своей работы, составу команд и требований, часто методом проб и ошибок. Считается, что чем короче спринт, тем более гибким является процесс разработки, релизы выходят чаще, быстрее поступают отзывы от потребителя, меньше времени тратится на работу в неправильном направлении. Задания, которые решаются в ходе спринта берутся из бэклога.

 

Нужно различать бэклог продукта и бэклог спринта.

Бэклог продукта — это список требований к функциональности, упорядоченный по их степени важности, подлежащих реализации. Элементы этого списка называются пользовательскими историями (user story) или элементами бэклога (backlog items). Бэклог проекта открыт для редактирования для всех участников скрам процесса.

Бэклог спринта — содержит функциональность, выбранную владельцем проекта из Бэклога проекта. Все функции разбиты по задачам, каждая из которых оценивается скрам-командой. Каждый день команда оценивает объём работы, который нужно проделать для завершения спринта.

 

Стоит отметить что неотъемлемой чертой скрама являются ежедневные митинги, в которых объясняется кто сколько чего сделал и остались/появились ли у него какие-то вопросы.

 

Таким образом, имеем схему: из бэклога продукта берутся задачи для бэклога спринта, все характеристики которого заранее планируются. По окончании спринта мы имеем рабочую версию продукта с обновлениями, которые были заранее определены. И так раз за разом от спринта к спринту проходит весь цикл разработки ПО по методологии скрам.

Читать про все методологии разработки