В статье авторы раскрывают процесс разработки программного продукта по методологии SCRUM сиспользованием экстремального программирования.
Ключевые слова: SCRUM, каскадная модель, экстремальное программирование, команда разработки, анализ требований, обзор спринта.
Процесс разработки программного продукта сложен и многогранен. Существует несколько моделей такого процесса, которые описывают свой подход в виде задачи. Процесс разработки состоит таких дисциплин, как:
– Анализ требований
– Разработка архитектуры
– Кодирование
– Тестирование и отладка
– Внедрение
– Сопровождение
Порядок этих подпроцессов определяет модели процесса: Waterfall (Каскадная модель), Agile (гибкая методология разработки), XP (экстремальное программирование).
Каскадная модель процесса регламентирует выполнения подпроцессов в последовательном порядке, начиная с анализа требований и заканчивая внедрением. Следующий этап процесса не начинается, пока полностью не выполнен текущий процесс. Только закончив один процесс можно приступать к другому.
Каскадная модель в основном применяется на старте проекта, и эта модель может смениться на другую, например, Agile, когда будет готов минимальный продукт, отвечающий требованиям заказчика.
Agile (в переводе с английского означает «гибкий») — это итеративная модель процесса разработки. Принцип этой модели заключается в последовательные выдачи результатов заказчику для более гибкого решения под новые нужды заказчика.
На рисунке ниже представлена наглядная разница между каскадной моделью и итеративной.
Рис. 1. Каскадная и итеративная модели процессов
SCRUM (англ. «схватка») — это фреймворк, который помогает решать изменяющиеся в процессе работы задачи, чтобы продуктивно и творчески поставлять клиентам продукты с максимальной возможной ценностью.
SCRUM является частью Agile, как и экстремальное программирование.
SCRUM был изобретен и представлен миру Джеффом Сазерлендом и Кеном Швабером на конференции в 1995 году.
SCRUM основан на теории эмпирического управления (эмпиризме). Согласно этой теории, источником знаний является опыт, а источником решений — реальные данные.
У SCRUM есть фундамент — «три кита», на которых и строиться методология.
Прозрачность означает, что значимые характеристики процесса должны быть известны тем, кто отвечает за его результат.
Инспекция означает, что участники процесса должны регулярно инспектировать артефакты методологии и свой прогресс в продвижении к цели спринта, чтобы вовремя обнаружить нежелательные отклонения.
Если в результате инспекции выясняется, что одна или несколько характеристик процесса выходят за допустимые пределы, и это приводит продукт в неприемлемое состояние, то процесс или обрабатываемый материал необходимо изменить, т. е. адаптировать.
Спринт — это контейнер для событий, таких как: планирование спринта, ежедневного скрама, разработки, обзор спринта и ретроспектива спринта. Каждый спринт можно считать проектом, который длится от 2 до 4 недель. Каждый спринт включает в себя цель и инкремент продукта как результат работы.
Во время планирования спринта определяют какие задачи будут сделаны и как, а также формируется цель спринта — ориентир для команды разработки. Каждая задача описывается в формате story (англ. «история»):
As a
I can
So that
Чтобы определить, какие задачи будут выбраны в Спринт, используют покер-планирование (Poker Planning). Это событие, в котором участники, используя числа Фибоначчи (1, 2, 3, 5, 8 и т. д.), определяют сложность той или иной задачи.
Ежедневный скрам — это мероприятие, в рамках которого команда разработки делиться информацией по поводу что было сделано вчера, что делаем сегодня и есть ли какие препятствия для достижения цели спринта.
Обзор спринта (Demo) подразумевает под собой событие, при котором команда разработки демонстрирует готовую работу и рассказывает, что получилось сделать во время Спринта, какие проблемы возникли.
Ретроспектива проводится для инспекции прошедшего Спринта применительно к людям, отношениям, процессам и инструментам, обнаружение и упорядочение того, что прошло хорошо и того, что нуждается в улучшении.
Использование методологии SCRUM вкупе с экстремальным программированием позволит создать продукт, отвечающий всем требованиям заказчика и изменяющийся, если требования поменялись.
Литература:
1. Джефф Сазерленд SCRUM. Революционный метод управления проектами = SCRUM. The art of doing twice the work in half the time. — Манн, Иванов и Фербер, 2016. — 288 с.
2. Хенрик Книберг Scrum и XP: заметки с передовой = Scrum and XP from the trenches. — C4Media, 2007. — С. 140.
3. Майк Кон Scrum: гибкая разработка ПО = Succeeding with Agile: Software Development Using Scrum. — М.: «Вильямс», 2011. — С. 576.
4. Кеннет Рубин Основы Scrum: Практическое руководство по гибкой разработке ПО = Essential Scrum: A Practical Guide to the Most Popular Agile Process. — М.: «Вильямс», 2016. — С. 544.