В этой статье мы поговорим об объёмных требованиях и о том, как работать с ними в Scrum. В итоге, это разбор понятия Epic, он же Эпик.
Что такое эпик в Agile?
Эпик в Agile-подходах — это большой кусок работы, который можно разделить на небольшие пользовательские истории. Эпик может реализовываться по спринтам и даже по отдельным командам. Epic — это высокоуровневое описание того, что хочет клиент. Его полное выполнение имеет максимальную ценность.
Среди задач эпик может служить способом организовать работу и создать иерархию задач. Идея состоит в том, чтобы разбить работу на отдельные части. Тогда крупные проекты действительно могут быть выполнены, а клиент получать часть функционала регулярно. Составные части в виде пользовательских историй представляют собой небольшие цели, а эпик — глобальную цель.
Проиллюстрировать эпик можно примером из жизни. Например, вас ждёт такое эпичное событие, как свадьба. «Провести свадьбу» — это эпик. С такой формулировкой к задаче сложно подступиться, так как предстоит выполнить множество шагов, крупных и поменьше:
составить список гостей, разослать приглашения,
забронировать площадку,
составить меню,
закупить напитки,
подобрать оформление и т. д.
Выполнив все эти задачи, которые также могут иметь под собой подзадачи, эпик будет выполнен.
Таким образом, эпик — это верхнеуровневое описание, а пользовательские истории — более детализированные требования, которые также имеют часть ценности эпика.
- Эпик помогает понять требования высокого уровня от заинтересованных сторон и то, что именно нужно. В нём отражается конечный результат по фиче.
- Он также нужен для определения объема работы, который согласуется с клиентом. Это также помогает в оценке того, сколько времени потребуется, чтобы доставить полную функциональность.
- Эпики помогают зафиксировать объёмные идеи в бэклоге продукта. Они устанавливают иерархию для PBI, где эпик представляет исходную идею, тесно связанную с конкретным результатом.
Как работать с эпиком?
Работа с эпиком строится так же, как с обычной пользовательской историей. Он также приоритизируется, декомпозируется и обсуждается внутри scrum-команды.
Важно разбивать эпик на фрагменты, которые бы:
- имели собственную ценность,
- могли быть доставлены за спринт.
Есть несколько приёмов декомпозиции эпика, в дополнение к стандартным методам разбивки историй.
Разбить по процессам
Мы можем разбить эпик из примера про свадьбу на несколько процессов. Некоторые этапы должны быть выполнены раньше, например, определиться с местом и временем нужно до того, как разослать приглашения. Какие-то этапы можно сделать в последний момент, делегировать, а другие — сделать только если останется время.
Смотрите на каждый эпик как на житейский процесс, тогда декомпозиция и расстановка приоритетов будет проще.
Разбить по ролям
Мы можем нарезать эпик в зависимости от исполнителя, роли в этом процессе. В случае свадьбы это могут быть молодожены, гости, повар, ведущий и т. д. Разбивая по ролям, мы будем говорить в терминах этой роли. Пользовательские истории будут иметь разных действующих лиц, и, соответственно, разный перечень работ. Этот приём помогает предусмотреть некоторую функциональность, которую команда рискует не заметить, декомпозируя по процессам.
Приоритет по времени завершения
Некоторые эпики лучше разбивать по времени, которое потребуется для завершения каждой истории. Команда обычно делит работу по объему спринта. Эпик разбивается на части, которые берутся в зависимости от приоритета и влияния на дальнейшую разработку.
В эпике приоритет по времени может быть критичен, если части имеют много зависимостей между собой.
Различия между эпиком, историей и таской
Эпик — большое требование, которое нельзя поставить за один спринт. Он разбивается на более компактные бизнес-требования — пользовательские истории. Историю можно поставить за один спринт.
Таски, или задачи — это основные этапы, которые нужно сделать для того, чтобы перевести историю в Done.
На уровне Epic мы даем лишь приблизительные оценки. Часто для их оценки используются размеры футболок в виде S, M, L и т. д. Команда отслеживает прогресс в работе над эпиком через Burndown.
Не существует фиксированного способа работы с эпиками, всё зависит от того, какой подход подойдёт вашим потребностям. А вы используете иерархию в бэклоге? Как строятся ваши эпики?