Автор DEEP-критериев Майк Кон предложил метафору айсберга, которая отражает состав бэклога продукта, соответствующего этим критериям.
Представьте себе айсберг — большую глыбу льда, плывущую в глубоком синем море. Вы видите только заострённый пик айсберга, возвышающийся над поверхностью воды. А большая его часть скрыта от ваших глаз.
Представили? А теперь представим в виде айсберга бэклог продукта и мысленно разделим его на четыре части:
- Верхушка.
- Средняя часть.
- Подножие.
- Подводная часть.
Чем ближе элемент к верхушке айсберга, тем выше его приоритет, тем больше о нём известно команде разработки и тем больше он ей понятен. И наоборот: чем ближе к поверхности воды находятся элементы, тем ниже их приоритет и тем больше связанной с ними неопределённости.
В подводной части скрываются ещё неизвестные команде разработки элементы. Их суть и приоритет непредсказуемы.
В каждой части айсберга расположены элементы бэклога продукта с примерно одинаковыми оценками размера.
На верхушке находятся небольшие элементы, для реализации которых команде разработки понадобится несколько дней. Команда может включать в итерацию множество таких элементов.
В середине видимой части айсберга расположены элементы, размер которых больше тех, что на пике, но меньше тех, что находятся в нижней части айсберга. Элементы здесь имеют слишком большой размер, чтобы команда разработки могла успеть их реализовать в течение одной итерации.
У подножия айсберга находятся элементы большого размера. На их реализацию команде разработки нужно несколько итераций.
Размер элементов, расположенных в подводной части, команде разработки неизвестен.
Верхушка
Верхушку айсберга образуют небольшие элементы бэклога продукта. Это самые важные на текущий момент элементы. Также они более понятны команде разработки и более детально описаны.
В уроке «INVEST-критерии» вы узнали, что истории должны быть масштабируемыми (Sized Appropriately). Они должны иметь размер, подходящий для использования на разных этапах разработки и для разных целей. Истории бывают высокого, среднего и низкого уровня.
Другие категории элементов бэклога также могут иметь разный масштаб. Части айсберга отражают эти уровни.
На верхушке айсберга расположены элементы низкого уровня, подходящие для реализации командой разработки в рамках одной или нескольких итераций. Это должны быть элементы небольшого размера, чтобы команда разработки успела реализовать несколько из них в течение короткой итерации.
Команда разработки включает в бэклог итерации только элементы, расположенные на верхушке айсберга. Когда составляется бэклог итерации, верхушка как будто «срезается». После этого айсберг бэклога продукта напоминает скорее плато.
Рассмотрим детали этой метафоры на примере разработки уже знакомого вам клиентского приложения банка. Предположим, что после выполнения первой итерации в бэклоге продукта остались следующие функции:
Эти функции расположены в бэклоге продукта в порядке снижения приоритета.
До начала следующей итерации системному аналитику следует озаботиться возвращением айсберга в первоначальную форму. Чтобы это сделать, ему нужно совместно с пользователями и командой разработки обсудить расположенные в средней части айсберга элементы и вертикально декомпозировать их.
Теперь рассмотрим среднюю часть айсберга бэклога продукта.
Средняя часть
Середину видимой части айсберга образуют элементы среднего размера. Это менее важные на текущий момент элементы бэклога, которые команда разработки планирует включить в следующие итерации. Они менее понятны команде разработки и содержат меньше деталей, чем элементы верхушки айсберга.
Посмотрите на элементы среднего уровня, направленные на достижение целей заинтересованных лиц. Они слишком большого размера, чтобы команда разработки могла включить их в итерацию без вертикальной декомпозиции.
Например, в средней части айсберга расположена функция «Выписка по счёту клиента».
Обсудив функцию и оценив её размер, команда разработки поняла, что не сможет реализовать её в течение одной итерации. Поэтому команда разработки решила вертикально декомпозировать эту функцию, используя технику разбивки по группам элементов данных:
- Номер.
- Дата.
- Информация о клиенте.
- Информация о счёте и остатке
- Факсимиле.
Команда приняла решение о разбивке по группам данных выписки, потому что у них разные источники — различные системы банка. Например, информация о клиенте хранится в CRM-системе, а логотип банка — в дизайн-системе.
Все эти элементы после декомпозиции будут соответствовать INVEST-критериям, в частности критерию «Ценный» (Valuable). Вы уже знаете, что определить ценность элемента помогает вопрос: «Можно ли вообще не реализовывать его?» Выписка должна включать все перечисленные выше группы элементов данных, иначе клиенты не смогут её использовать.
Несмотря на то что выписка может быть предоставлена клиентам только после реализации всех вышеперечисленных элементов, команда разработки может в конце итерации продемонстрировать заказчикам их часть. Благодаря этому получится оперативно учесть обратную связь от заказчика.
Например, заказчик может вспомнить, что выписка по счёту должна формироваться ещё и на английском языке. Эта обратная связь будет влиять на другие элементы бэклога продукта, относящиеся к выписке.
Также, увидев реализованную часть выписки, заказчик может обратить внимание на формат даты выписки и попросить команду разработки заменить «14.01.2022» на «14 января 2022 года».
В результате вертикальной декомпозиции команда разработки добавила в бэклог продукта элементы небольшого размера, восстановившие заострённый пик айсберга:
Подножие
У подножия видимой части айсберга расположены элементы большого размера. Это элементы бэклога продукта, которые команда разработки планирует реализовать через несколько итераций. Они содержат ещё меньше деталей, чем элементы средней части айсберга.
Посмотрите на элементы высокого уровня. Они сформулированы общо, без углубления в детали.
Например, у подножия айсберга бэклога продукта расположена функция «Выписки по кредиту». Заказчик попросил повысить её приоритет, и команда разработки вертикально декомпозировала эту функцию, чтобы переместить её в среднюю часть айсберга. В результате обсуждения функции команда разработки выяснила, что к выпискам по кредиту относятся разные документы:
- График платежей.
- Справка о задолженности по кредиту.
- Справка об уплаченных процентах по кредиту.
Элемент бэклога «Выписки по кредиту» был заменён входящими в него документами. Таким образом, после вертикальной декомпозиции и изменения приоритетов бэклог продукта стал выглядеть так:
Подводная часть
Тёмные воды моря скрывают будущие элементы бэклога продукта от команды разработки и даже заказчиков и пользователей, но вполне могут в какой-то момент всплыть на поверхность. Новые элементы могут быть любого уровня: низкого, среднего или высокого.
Например, команда разработки могла вспомнить, что забыла добавить элемент бэклога продукта для оформления выписки по счёту (логотипа банка и других элементов фирменного стиля). Заказчик мог вспомнить, что в ближайших итерациях нужно автоматизировать формирование справки по арестам и взысканиям, а после этого команде разработки нужно будет заняться справками для государственных органов.
После добавления этих элементов бэклог продукта стал выглядеть так:
Кроме разных уровней, новые элементы могут иметь разный приоритет. Например, может появиться элемент высокого уровня, который должен оказаться сначала у подножия айсберга. Но появляются новые обстоятельства, из-за которых реализовать его нужно в ближайшей итерации. Такое случается, например, в случае публикации нового нормативного правового акта (НПА), который влияет на работу компании.
В этом случае команде разработки нужно как можно скорее обсудить новый элемент, чтобы он стал более понятен и содержал больше деталей. Ей также нужно вертикально декомпозировать его таким образом, чтобы размер получившихся элементов соответствовал верхушке айсберга.