Что такое Scrum и как работает методология Agile

Scrum – это методология управления проектами, построенная на принципах тайм-менеджмента. Основной ее особенностью является вовлеченность в процесс всех участников, причем у каждого участника есть своя роль. Суть в том, что не только команда работает над решением задачи, но все те, кому интересно решение задачи, не просто поставили ее и расслабились, а постоянно работают с командой, и эта работа не означает только постоянный контроль.

Scrum – это методика работы, а Agile – это философия.

Scrum – это спортивный термин, который пришел к нам из регби, и представляет собой фигуру, которую образуют игроки перед началом игры.

Согласно принципам Scrum, команда тестировщиков должна участвовать в следующих этапах:

  • Участие в Scrum планировании
  • Поддержка в юнит-тестировании
  • Тестирование пользовательских историй
  • Сотрудничество с заказчиком и владельцем продукта для определения критериев приемлемости
  • Предоставление автоматического тестирования

Более того, участники QA-отдела должны присутствовать на всех ежедневных собраниях, как и другие члены команды, чтобы обсудить, что было протестировано и сделано вчера, что будет протестировано сегодня, а также общий прогресс тестирования.

В то же время принципы Agile методологии в Scrum приводят к появлению специфических особенностей:

  • Оценка усилий, необходимых для каждой пользовательской истории, обязательна
  • Тестировщик должен быть внимательным к требованиям, поскольку они могут постоянно меняться
  • Риск регрессии растет вместе с частыми изменениями в коде
  • Одновременность планирования и выполнения тестов
  • Недоразумение между членами команды в случае если требования заказчика не до конца ясны

Scrum – это одна из нескольких методологий гибкой разработки ПО:

  • Scrum
  • Lean
  • Feature Driving Development
  • Extreme Programming

Scrum процесс на одном листе:

В классическом Scrum существует 3 базовые роли:

  1. Владелец продукта Product owner (PO) является связующим звеном между командой разработки и заказчиком. Человек, имеющий непосредственный интерес в качественном конечном продукте, понимает, какой вид/работу должен иметь этот продукт. Этот человек не работает в команде, он работает на стороне заказчика/клиента, расставляет приоритеты для задач. Задача PO – максимальное увеличение ценности разрабатываемого продукта и работы команды. Одним из основных инструментов PO является Product Backlog. Product Backlog содержит необходимые для выполнения рабочие задания (например, Story, Bug, Task и т.п.), отсортированные в порядке приоритета (срочности).
  2. Scrum master (SM) является "лидером-служащим" (англ. servant-leader). Задача Scrum Master - помочь команде максимизировать ее эффективность посредством устранения помех, помощи, обучения и мотивации команде, помощи PO. Его задача – не управление разработчиками, а наблюдение за соблюдением принципов Scrum в рабочем процессе. Он не давит, не берет всю работу на себя и не распределяет обязанности, а направляет команду и решает проблемы, тормозящие рабочий процесс.
  3. Scrum-команда, Команда разработки (Development team, DT) состоит из специалистов, выполняющих непосредственную работу над производимым продуктом. Рекомендуемый размер команды – 7 (плюс-минус 2) человека. Согласно идеологам Scrum, команды большего размера требуют слишком больших ресурсов на коммуникации, в то время как команды меньшего размера повышают риски (за счет возможного отсутствия необходимых навыков) и уменьшают размер работы, который команда может выполнить за единицу времени.

В Scrum существует четыре основные церемонии, каждая из которых имеет свою цель и формат проведения:

1. Планирование спринта (Sprint Planning). Это совещание, на котором присутствуют все (команда, Scrum-мастер, Владелец продукта). Владелец продукта представляет бэклог с приоритетами, команда оценивает работу и формирует спринт-бэклог. По времени обычно занимает 1–2 часа и проводится в начале спринта. В итоге формируется список задач, который не может изменяться в течение спринта и к концу спринта должен быть полностью выполнен.

2. Ежедневный Daily Scrum Meeting Короткое ежедневное собрание (до 15 минут), где каждый член команды рассказывает, что он сделал за вчера, что планирует сделать сегодня и какие препятствия есть. То есть отвечает на вопрос "что я сделал вчера?", "что я планирую сделать сегодня?", "какие препятствия на своей работе я встретил?". Задача Daily Scrum – определение статуса и прогресса работы над Sprint, раннее выявление возникших препятствий, выработка решений по изменению стратегии, необходимых для достижения целей Sprint'а. Это помогает координировать работу и оперативно решать проблемы.

3. Backlog Refinement (рефайнмент) это вспомогательная, но неофициальная церемония, где команда и владелец продукта совместно уточняют и подготавливают задачи для будущих спринтов, чтобы облегчить планирование. Решает, что улучшить, почистить, оценивает приоритетность задач и все максимально детализирует.

4. Ретроспектива спринта (Sprint Retrospective). Встреча команды после спринта для обсуждения того, что прошло хорошо, что можно улучшить и какие изменения внести в процесс. Цель — постоянное улучшение работы команды.

Эти церемонии обеспечивают регулярную коммуникацию, прозрачность и адаптацию процесса разработки. По окончании Sprint'а проводятся Sprint Review и Sprint Retrospective, задача которых – оценить эффективность (производительность) команды в прошлом Sprint'е, спрогнозировать ожидаемую эффективность (производительность) в следующем спринте, выявить имеющиеся проблемы, оценить вероятность завершения всех необходимых работ по продукту и прочее.

В Scrum существуют 3 основных артефакта, которые помогают управлять процессом разработки и обеспечивают прозрачность:

1. Product Backlog (Бэклог продукта). Это упорядоченный список всех работ, функций, требований, улучшений и исправлений, которые нужно реализовать в продукте. Бэклог постоянно обновляется и уточняется владельцем продукта и командой, чтобы отражать текущие приоритеты и требования.

2. Sprint Backlog (Бэклог спринта). Список задач и элементов из Product Backlog, которые команда планирует выполнить в конкретном спринте. Он включает в себя также план достижения цели спринта и представляет собой рабочий план на короткий период.

3. Increment (Инкремент). Рабочая версия продукта, полученная после завершения спринта. Представляет собой сумму всех элементов беклога продукта, исполненных во время спринта, и ценность инкрементов всех предыдущих спринтов. Это часть продукта с добавленной новой функциональностью, готовая к использованию или демонстрации заказчику. Каждый инкремент должен соответствовать критериям готовности (Definition of Done).

Также важным связанным артефактом является Definition of Done (DoD) — набор критериев, по которым определяется, что работа над задачей или инкрементом завершена.

Эти артефакты обеспечивают прозрачность, контроль и адаптивность разработки, позволяя команде и заинтересованным сторонам точно видеть текущее состояние и прогресс проекта.

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

Product Backlog (владелец продукта)
        ↓
Sprint Planning (вся команда)
        ↓
Sprint (2 недели)
   ↳ Daily Scrum (ежедневно)
        ↓
Sprint Review (вся команда + заинтересованные лица)
        ↓
Sprint Retrospective (команда)
        ↓
Increment (готовый продукт)
        ↓
Обратная связь и обновление Product Backlog

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!