Урок 4. Организация работы по Scrum
Agile базируется на Манифесте 2001 года и объединяет большое количество более конкретных методик, которые строятся на принципах итеративной разработки: Scrum, Kanban, Экстремальное программирование, DSDM, FDD, BDD. Из всех методик самой популярной является Scrum. Его также чаще всего спрашивают на собеседованиях. Поэтому возьмем его за основу при разработки приложения кофейни.
В этом уроке рассмотрим концепцию Scrum и как по нему выстраивается работа. А в следующих уроках применим этот подход для разработки приложения кофейни.
Scrum
Связь Scrum и Agile:
  • Общее: Scrum основан на принципах Agile, таких как гибкость, итеративность и вовлеченность команды и заказчика.
  • Различия: Agile — это общий подход, а Scrum — это фреймворк или конкретный набор правил, практик и ролей, которые помогают следовать этому подходу.
Артефакты Scrum
Бэклог Продукта — список всего, что нужно сделать в продукте.
Бэклог продукта (product backlog) — это упорядоченный набор элементов, функций приложения, которые заинтересованные люди (стейкхолдеры) хотят получить от продукта.
Элементы бэклога упорядочены в зависимости от их бизнес «веса». Чем выше в бэклоге конкретный элемент, тем скорее разработчики будут работать над ним. Верхние позиции будут более подробно описанными и четкими по сравнению с нижними элементами. Все они должны быть понятны для нетехнических членов команды и заинтересованных сторон.
Каждый элемент в product backlog имеет свою оценку трудозатрат, которую делают разработчики. Система оценивания используются для определения количества элементов, которые будут выбраны для определенного спринта.
Бэклог Продукта никогда не бывает завершенным. Он постоянно меняется, уточняется и приоритезируется, включает в себя новые идеи для приложения.
  • Бэклог Спринта: конкретные задачи, выбранные для текущего Спринта.
Выбранные для работы в определенном спринте элементы Бэклога Продукта и план их реализации называют Бэклогом Спринта. Таким образом, Бэклог Спринта отражает весь объём работ, который нужно сделать для достижения целей спринта.

По ходу работы бэклог спринта уточняется, так как команда начинает лучше понимать как реализовать функционал. Результатом выполнения бэклога спринта станет создание инкремента - функционала, которым прирастет приложение по итогам спринта.
Инкремент: результат спринта – часть продукта, которая готова к использованию.
Инкремент — это сумма завершенных во время спринта элементов бэклога продукта. Например, разрабатывается видео блог. За спринт 3 команда реализовала функцию просмотра видео в ускоренном режиме, возможность ставить лайки и оставлять комментарии — все это будет инкрементом спринта.
Scrum-команда
Скрам-команда является кросс-функциональной. То есть в нее собираются специалисты разных направлений: бэкендеры, фронтендеры, тестировщики, дизайнеры, продакт и проджект менеджеры и т.д. Это нужно для того, чтобы команда обладала всеми необходимыми компетенциями для выполнения работы и не зависела от людей, которые в нее не входят.

В sсrum-команде выделяют три основные роли: владелец продукта, sсrum-мастер, командна разработки.
  • Владелец Продукта (Product Manager/Product Owner): Он взаимодействует с заказчиком, клиентами, любыми другими заинтересованными сторонами и выясняет, какие фичи нужны продукты, чтобы быть успешным. Таким образом, владелец продукта определяет, что нужно сделать и наполняет бэклог продукта. Другие участники команды без ведома и согласия владельца продукта не могут вносить изменения в продуктовый бэклог.
  • Скрам-мастер: Отвечает за внедрение и развитие Scrum в команде. Помогает наладить процессы, коммуникацию и гарантирует, что Scrum понятен и используется правильно.
  • Команда Разработки: Группа специалистов, которые реально создают продукт: программисты, тестировщики, дизайнеры и т.д. Они самостоятельно организуют свою работу и решают, как лучше всего выполнить задачи.

Их рабочий инструмент это бэклог спринта. Если бэклог продукта нельзя менять без ведома владельца продукта, то бэклог спринта нельзя менять без ведома команды разработки.
События Scrum
Организация работы по спринтам:
Scrum делит процесс разработки на короткие итерации, известные как спринты. Каждый спринт — это временной отрезок (обычно от 1 до 4 недель), в течение которого команда реализует и выпускает небольшой, но ценный инкремент продукта.

Во время спринта команда проводит определенные Scrum встречи:
  • планирование спринта,
  • ежедневный скрам (дейли/стендап),
  • обзор спринта (ревью)
  • ретроспектива спринта (ретро)

Команда может проводить и другие встречи, которые считает полезными для координации работы.
Планирование спринта (Sprint Planning)
Это событие, на котором команда определяет, что будет делать в следующем спринте. Владелец продукта представляет наиболее важные элементы из бэклога продукта, а команда выбирает, какие из них она сможет реализовать в следующем спринте. Вместе они формируют бэклог спринта и составляют план работы. Таким образом результатом планирования спринта является определение командой:
  • каким будет Инкремент в конце спринта (что будет сделано);
  • как организовать работу, чтобы получить готовый Инкремент Продукта (как будет выполнена работа).
Ежедневный Scrum (Daily Scrum)
Краткая ежедневная встреча (обычно 15 минут), на которой каждый участник команды делится информацией:
  • что было сделано вчера,
  • что будет сделано сегодня,
  • какие препятствия возникли на пути.

Это помогает команде быть на одной волне и быстро реагировать на изменения. Также на ежедневной встрече команда смотрит общий прогресс, чтобы понимать, насколько она приблизилась к выполнению спринта.
Часто сразу после дейли команда разработки в полном составе или её отдельные участники встречаются для более детального обсуждения.
Ревью спринта (Sprint Review)
По завершении спринта проводится встреча, на которой команда демонстрирует что было сделано за спринт (инспекция инкремента). Это позволяет получить обратную связь от заинтересованных сторон и владельца продукта.

На основе полученной обратной связи вносятся изменения в бэклог продукта, чтобы учесть предложения в последующих спринтах.
Ретроспектива спринта (Sprint Retrospective)
Это встреча, на которой команда обсуждает, что прошло хорошо, что можно улучшить, и какие действия будут предприняты для улучшения процесса в следующем спринте. Ретроспектива — ключевой момент для непрерывного улучшения в Scrum.

В отличие от ревью, где разбирается выполненная работа (внешний результат), ретроспектива больше направлена на разбор коммуникации и процессов внутри команды.

Цели проведения ретроспективы:
  • инспекция прошедшего спринта применительно к людям, отношениям, процессам и инструментам;
  • Обнаружение и упорядочение того, что прошло хорошо и того, что нуждается в улучшении;
  • Создание плана внедрения улучшений в процесс работы Скрам-команды.
  • К концу ретроспективы скрам-команда должна запланировать конкретные улучшения, которые она реализует в следующем спринте.
Груминг бэклога (Backlog Grooming)
Груминг (или уточнение) бэклога — это процесс, в котором владелец продукта и команда регулярно обновляют и уточняют бэклог продукта. Это включает в себя оценку новых идей, переоценку существующих элементов и удаление устаревших или ненужных. Груминг помогает убедиться, что бэклог продукта актуален, понятен и подготовлен для будущих спринтов.

Груминг бэклога может проходить как на отдельной встречи, так и походу других встреч.
Итог
Таким образом, Scrum предлагает четкую и структурированную рамку для организации работы над проектами, позволяя команде эффективно справляться с задачами и адаптироваться к изменениям. В следующий уроках мы применим Scrum к процессу разработке приложения кофейни.
Loading...