По аналогии с DoD, DoR формируется командой самостоятельно в процессе работы.
Табл. 3.7. Акроним INVEST как основа для определения завершенности
Для старта подойдет популярная группа критериев, названная INVEST по первым буквам (табл. 3.7).
Помимо INVEST, в DoR могу входить и другие критерии в зависимости от домена, например, «описание соответствует шаблону юзерстори», «готов дизайн-макет» или «написан тест-кейс».
История, которая не умещается в один спринт и обычно занимает до одного квартала разработки, называется эпик (epic story). Для декомпозиции эпиков используются инструменты декомпозиции, такие как картирование пользовательской истории (user story mapping). Далее, если история недостаточно маленькая, ее разбивают снова, используя шаблоны декомпозиции.
Картирование пользовательских историй, которое обычно называются сторимэппингом, – это метод, разработанный Джеффом Паттоном и очень интересно и с юмором описанный в одноименной книге.
Если кратко, суть метода в том, что продукт представляется в виде двухмерной матрицы, где по горизонтали – обязательные шаги пользователя (или нескольких) для выполнения работы, а по вертикали – отсортированные по значимости особенности и идеи того, как может быть реализован тот или иной шаг.
Такой подход позволяет собрать все идеи реализации, отсортировать их и распределить по релизам.
В сторимэпе выделяется четыре слоя:
➠ Роль – смена ролей в процессе взаимодействия; иногда их может быть несколько.
➠ Активность – неделимый набор шагов. Если в точку повествования можно попасть из разных мест или меняется роль, то в этой точке началась новая активность.
➠ Шаг – атомарный элемент пользовательского путешествия.
➠ Особенности – идеи того, как может быть реализован шаг.
Рис. 3.15. Пример карты пользовательской истории
1. Определяются активности, которые нужно декомпозировать в первую очередь.
2. Для выбранных активностей выстраиваются шаги от последнего к первому, чтобы избежать ветвления.
3. В процессе размещаются новые активности и роли.
4. После этого для каждого шага описывается особенности – то, как он может быть реализован.
5. Для каждого шага особенности сортируются сверху вниз по критериям, которые определяют участники, например важность для пользователя, для бизнеса и реализуемость.
6. Особенности распределяются по релизам.
7. В первый релиз выделяют то, без чего действительно невозможно обойтись (минимально жизнеспособный релиз).
В приведенном на рис. 3.15 примере команда решила сфокусироваться на функциональности регистрации, авторизации и создания коллективных пространств (спейсов). Для того чтобы запуститься как можно быстрее, команда решила убрать из релиза функцию проверки сложности пароля, так как без нее можно обойтись на старте. Менее значимые и более дорогие идеи были перемещены в последующие релизы.
Для каждых из шагов и особенностей, входящих в релиз, формулируется и вносится в бэклог пользовательская история. Название активностей удобно использовать для обозначения эпиков. Приоритизация основана на порядке релизов; внутри каждого релиза в более высоком приоритете истории, основанные на шагах, потом на особенностях. Далее приоритизация идет в соответствии с расположением элементов слева направо и сверху вниз.
Табл. 3.8. Пример бэклога для одного релиза, сформированного на основе карты пользовательской истории (рис. 3.6)
Существует большое количество шаблонов декомпозиции. Приведем некоторые из них.
Если в описании истории используется «И/ИЛИ», значит, можно разделить прямо по этим союзам. Это относится и к спискам, разделенным запятыми.
Пример:
Можно разделить на: