User Story Map - один из непременных инструментов разработки цифровых продуктов. Сложно представить, что когда-то команды обходились без него. О том, как жила продуктовая разработка до появления USM и как сегодня она помогает создавать продукты для людей, журналу IT News рассказывает Павел Голуб, сооснователь и директор по развитию компании arcsinus.
В 2008 году Джефф Паттон, эксперт по гибкой разработке и дизайн-мышлению, в одном из своих постов описывал жалобу, которую часто слышал от команд разработки: «Работая над большим продуктом, мы теряем целостное видение, перестаём понимать, зачем делаем тот или иной элемент». Рефлексируя над этим, Паттон пришёл к выводу: команды теряют helicopter view продукта, потому что работают по «плоскому бэклогу» (упорядоченному, без иерархии, списку элементов планирования проекта (продукта)). И в качестве альтернативы предложил бэклог в форме карты пользовательских историй.
Карта пользовательских историй (User Story Mapping) - популярный фреймворк гибкого подхода к разработке, точнее, к этапу планирования. Она представляет собой визуализацию пути, который клиент проходит, взаимодействуя с продуктом. USM включает в себя все задачи, которые пользователь обычно выполняет в ходе этого путешествия.
Что такое User Story
Как понятно из самого термина, User Story Map - карта, состоящая из пользовательских историй. А что собой представляет непосредственно пользовательская история (User Story)? Это простой, интуитивно понятный способ сформулировать требование к элементу разрабатываемого продукта. Пользовательская история говорит голосом пользователя и строится по следующему шаблону:
Как [представитель группы пользователей]
я хочу [выполнить задачу]
чтобы [достичь цели]
Сила такого подхода заключается в простоте. Мы рассматриваем конкретного пользователя, понимаем, что он хочет сделать и какой результат ожидает получить. В этой формулировке есть все данные для поиска решения.
При этом история не навязывает конкретную форму решения. Она помогает держать в фокусе действительно важные вещи — пользователя и его потребности.
Что не так с плоским бэклогом
С подачи Паттона, в середине нулевых концепция User Story Map стала распространяться в среде продуктовых разработчиков. До этого общей практикой был так называемый «плоский бэклог» (flat backlog). Он представляет собой список проектных задач, похожий на to-do list, который мы составляем в начале дня, или список покупок, который набрасываем по дороге в магазин. Плоский бэклог состоит из множества низкоуровневых задач типа «сделать форму отправки контактов».
Человеку, не знакомому с разработкой, может показаться, что с этим подходом всё в порядке, ведь из самой формулировки ясно, что делать. Недостатки становятся видны, если взглянуть на него с позиции гибких методологий разработки.
Плоский бэклог не даёт общего представления о продукте
Если продукт достаточно большой и сложный, в плоском бэклоге видны все отдельные функции. Но по ним сложно судить, как работает система целиком. Глядя на множество разрозненных задач, невозможно понять главную ценность для пользователя, увидеть связи и зависимости между элементами.
Плоский бэклог не помогает команде планировать релизы
Это особенно важно, когда речь идет о разработке нового продукта. Нужно очертить границы первой версии (MVP), а затем определиться с функционалом последующих. В плоском бэклоге всё выглядит одинаково важным. И столь же одинаково неважным.
Плоский бэклог не помогает расставить приоритеты
Команда не может делать всё сразу. Значит, необходимо выделить задачи, за которые нужно взяться в первую очередь, затем те, что пойдут в работу следом, и так далее. Сам Паттон признаётся, что худшие часы жизни он провёл на собраниях, где команда пыталась приоритизировать задачи.
Даже если плоский бэклог состоит из задач, сформулированных как пользовательские истории, проблема с приоритетами сохраняется. Хорошо, что задачи фокусируются на потребностях пользователя. Но это только половина дела. За вторую половину отвечает сам принцип организации этих историй - карта.
Сам Джефф Паттон описывает проблему плоского бэклога, приводя через метафору с деревом:
«Мы уделяем много времени работе с нашими клиентами. Мы стараемся понять их цели, пользователей, определить основные части будущей системы. Затем мы переходим к деталям — элементам функционала, которые...