
Полная версия:
Рабочие истории. Системное проектирование с Картой реализации историй
С самых древних времён множество пересказываемых историй служило невидимой губкой, впитывающей знания о мире. До письменности истории кочевали из уст в уста. Будучи многократно передаваемыми от человека к человеку, они сохраняли в себе самое важное – некоторую структуру жизни или действа.
Сегодня мы имеем множество устных и письменных жанров, каждый из которых может передавать мысль о действии людей. Нам же важно сосредоточиться на самых лаконичных и в то же время ёмких формах передачи содержания с помощью текста. Краткость при одновременной вместительности крайне важна, потому что в работе проектировщика нет лишнего времени на чтение больших объёмов текста.
Далее рассмотрим в сравнении сюжетный и бессюжетный тексты, дающие две основные мета-формы историй.
1.1. Истории как сюжетный текст
Вот две типичные истории, раскрывающие детали жизненного уклада людей в области приготовления пищи.
Толя пришёл из школы уставшим и голодным. На столе его ждала родительская записка о том, что обед и ужин ему предстоит приготовить самому. Толя посмотрел пару видео-рецептов, прикинул объём предстоящих усилий и загрустил. Смирившись с неминуемым, он всё-таки решил купить недостающие продукты в ближайшем продуктовом магазине и приступил к приготовлению. В этот вечер Толя ел не самый вкусный в своей жизни жареный картофель, но благодаря победе духа чувствовал себя воодушевлённо и приподнято. – И-2
Люба обожала итальянскую кухню за вкус и элегантность, но готовила редко. Как только наступал случай – выходной или праздник, когда вся семья собиралась вместе, – она не упускала возможности побаловать себя и домочадцев отменной пастой и итальянским десертом. Так как она готовила от случая к случаю, подробности рецептов в её памяти стирались, и ей с большим трудом приходилось восстанавливать их. На выручку пришёл муж. Он помог Любе организовать запись и систематизировать карточки с рецептами. Так Люба обзавелась собственной картотекой и старательно её пополняла. Картотека разрослась и содержит на сегодня несколько сотен рецептов, помогая Любе время от времени радовать себя и домочадцев итальянской кухней. – И-3
Тексты с сюжетом повествуют о том «как что-то случилось» и составлены из последовательных действий. Сведения в них как будто бы нанизываются постепенно – предложение за предложением, – как наматываются нити и пучки волокон на веретено. Если выделить общее в этих двух повествованиях, получится следующее.
1. Каждый отрывок написан так, что удерживает внимание читателя на одном герое и рассматривает его уникальную ситуацию его глазами.
2. Каждый текст состоит из цепочки действий, формирующих сюжет, развивающийся строго последовательно.
3. Каждый сюжет соответствует композиционному шаблону «завязка – кульминация – развязка» или, на более практичном языке, схеме: «первопричина – затруднение – способ преодоления».
4. Каждый отрывок максимально конкретен: не содержит обобщений и описывает в подробностях личные переживания и особенности отдельных людей.
Подобные истории-сюжеты могли бы прекрасно фиксировать результаты отдельных интервью в ходе исследования проблемных ситуаций. Преимущество такой формы изложения в том, что читателю удаётся максимально соприкоснуться с проблемами героев, прочувствовать их проблемы на себе и попытаться их понять по-человечески. Очевидный же минус такого формата текста – его объём. С каждой ситуацией потребуется знакомиться последовательно, как того требует чтение любого текста. И чем подробнее текст, тем дольше и труднее через него продираться.
Одного этого достаточно, чтобы заключить, что истории-сюжеты плохо подходят для оперативной работы с требованиями к разрабатываемым системам. Они избыточны и нагружают восприятие излишними подробностями. Человек, работая с таким объёмом текста, должен удерживать в памяти несколько подобных историй одновременно, сопоставлять их, решать, что в них важно, а что второстепенно, принимать решения о наличии и отсутствии связей между разными историями. Каждый раз придётся искать ответ на вопрос: что перед нами? новая ситуация? или уже ранее встречавшаяся, но поданная в других декорациях? Всё это повышает когнитивную нагрузку, а значит быстрее утомляет.
Поэтому истории-сюжеты чаще всего используются как предварительный материал, полученный в ходе исследований. Такие истории появляются, например, в результате интервью и наблюдений в этнографических исследованиях. Их полезно сохранять, чтобы в любой момент можно было к ним вернуться и перепроверить: верно ли были сделаны выводы и последующий синтез. Работать же стараются с историями, полученными в ходе обобщения историй-сюжетов.
1.2. Текстовые модели
Проектировщику удобнее работать с бессюжетным текстом, который раскрывает, «как что-то устроено». Такой текст описывает некоторый установившийся порядок и регулярность в действиях людей, «вскрывает структуру жизни на каком-либо уровне её организации»4, не прибегая к изложению сюжетной последовательности. В таком тексте частные истории обобщены, в них выведены закономерности, носящие в том числе временный характер.
Про закономерности временного характера есть даже байка. Муж вслух удивляется тому, что молодая жена в который раз подносит ему разрезанный стейк. Она отвечает, дескать, так делала её мама. В ходе дальнейших допросов мамы становится понятно, что так делала и её мама. И когда очередь доходит до бабушки, то выясняется, что у той просто была маленькая сковородка, поэтому приходилось разрезать мясо. То есть закрепившийся способ делать что-то определённым образом долго оставался закономерностью просто потому, что передавался из поколения в поколение.
Я буду называть обобщённые тексты, выявляющие важную смысловую структуру, текстовыми моделями. В этой книге нас будут интересовать текстовые модели поведения. Текстовая модель поведения – это организованный специальным образом текст, воспроизводящий идеализированные знания о наблюдаемых закономерностях поведения группы людей в конкретной ситуации.
Из определения вытекает общая схема любой текстовой модели поведения. Она состоит из таких частей как:
– Модель группы людей
– Ситуация
– Форма поведения/действия
– Смысловое значение поведения/действия
Важно отметить, что сюжетность, отвечающая на вопрос, каким образом что-то произошло, из историй почти никогда полностью не исчезает. Она отступает на второй план и является изображением-примером фактического, конкретного, осязаемого для лучшего понимания смысла. Главная роль сюжетности в текстовых моделях – дать минимально необходимый контекст через описание картины практической деятельности.
1.3. Обобщение сюжетных историй до текстовых моделей
Я намеренно выбрал общую тему для историй-сюжетов выше, чтобы рассмотреть вариативность в какой-то одной области. Представим, что, наряду с Толей и Любой, мы бы встретились и с другими людьми, рассказывавшими нам подобные сюжетные истории. Заметив повторяемость ситуаций, мы бы захотели их объединить, выделив и оставив общее и отбросив все несущественные частности.
История Толи переписалась бы, например, так:
Человек без опыта приготовления еды, когда вынужденно остался без привычного источника пищи, ищет рецепты приготовления конкретного блюда, чтобы утолить голод тем, что хочется, а не абы чем. – И-4
А вот вариант обобщения истории Любы:
Человек, любящий готовить время от времени по настроению, понимает, что для сохранения тонкостей и аутентичности рецептов важна их запись и, когда появляется очередной рецепт, вносит его в картотеку, чтобы позже найти и восстановить в памяти. – И-5

Что изменилось в предлагаемых текстах, если сравнить их с первоначальными историями-сюжетами? Финальные тексты всё ещё рассказывают про те же ситуации, однако теперь они лишены конкретных имён и несущественных для нас деталей. Благодаря этому тексты стали короче, но не потеряли в содержательности. Обобщения сделаны согласно пониманию смысла ситуаций, потребностей людей и их действий в этих ситуациях.
Осмысленное преобразование историй-сюжетов в более ёмкие текстовые модели также разительно сокращает время на их восприятие. Сравните следующую пару истории-сюжета и обобщённой истории.
Через пару минут Кристи предстоит защищать свой проект. В зале сотни инвесторов, расписание насыщенное – по пять минут на выступление. Кристи понимает, что нет времени на обмен бумажными визитками. Перед началом выступления она «открывает» свою электронную визитку. Теперь её визитку смогут взять все желающие, находящиеся поблизости. Кроме того, контактные данные в этих визитках никогда не устареют. – И-6
Спикер, вместо того, чтобы раздавать каждому бумажные визитки, которые теряют актуальность и не вовремя заканчиваются, открывает вещание электронных. – И-7
1.4. Адекватность текстовых моделей
При конструировании текстовой модели как будто устанавливается зеркальная пара между текстом и миром человеческой деятельности. Словесное описание начинает отражать какую-то часть этого мира. Весь вопрос в том, с какой точностью составлена модель, насколько она лишена искажений и адекватна описываемому миру.
Из этого кажется очевидным, что приходить к текстовым моделям через обобщение допустимо лишь на основе изучения реальности. Однако весь мой опыт показывает, что большинство людей, работающих с требованиями на основе историй, строят текстовые модели на основе собственных фантазий. Так уж мы устроены: слишком ленивы и самоуверенны. Так проще и дешевле в короткой перспективе. Но, когда мы составляем текстовые модели лишь на основании наших надежд о том, как люди себя ведут сейчас или вдруг начнут себя вести в будущем, в тексте фиксируется всё, что угодно, кроме того, что действительно отражает реальность. Такие тексты перестают быть моделями.
Когда знаний о ситуации недостаточно, переходят к исследованиям. Для этого важно наблюдать и расспрашивать людей, находящихся в соответствующих ситуациях, анализировать их слова и действия, отделяя вымыслы от реального поведения. При этом опрашивать следует ни любого, кто что-то слышал о вопросе, а лишь тех, кто уже пребывает в изучаемых ситуациях и даже как-то с ними справляется. Лишь тогда есть шанс собрать знания, а не слухи.
В ходе исследований у рабочей группы копится набор историй-сюжетов отдельных людей. Кто-то должен взять на себя ответственность и труд по их осмыслению и обобщению. Продуктом такого обобщения и становятся текстовые модели.
1.5. Опасность переобобщения
Итак, в поисках закономерностей мы исследуем мир, а затем записываем истории-сюжеты, отвечающие нашим наблюдениям и находкам. Когда Маша и Петя во Владивостоке рассказывают схожие истории с теми, что рассказывают Валентин и Лена из Москвы, мы понимаем, что нашли что-то общее. Вместо четырёх историй мы записываем одну, отбросив незначительное в их вариациях. Схожесть частей историй, например, общие ситуации или общий способ решения задач – основание для обобщения историй.
Но встречаются и другие «основания» для обобщений. Зачастую обобщают, чтобы сократить многообразие вариантов и тем самым понизить сложность задачи. Человеческое поведение и личные предпочтения невероятно разнолики. Даже если бы мы смогли описать все причуды этих форм, непонятно, как этим можно было бы воспользоваться в проектировании. На учёт поведенческого разнообразия попросту не хватит временных ресурсов и способности проектировщика удерживать все детали во внимании. Поэтому чаще всего несколько различных вариантов поведения складывают в одну корзину по принципу «подобно ибо комфортно».
Например, при покупке автозапчасти для личного автомобиля способы подбора подходящего решения среди автолюбителей могут существенно отличаться. Вот лишь некоторые из них:
– подбираю автозапчасть сам, пользуясь каталогами и собственным знанием автомобиля;
– узнаю поломку у профессионалов, дальше подбираю по названию узла и машине на специальных сайтах;
– делегирую моему другу-автослесарю, он подбирает по ситуации;
– делегирую подбор и покупку станции техобслуживания или автомагазину.
Когда способов становится много, возникает соблазн сократить их многообразие и обобщить несколько историй, сведя их к одной. Однако, объединение принципиально разных вариантов человеческого поведения с целью сокращения их общего числа может нам дорого обойтись. Да, это приводит к излюбленному нашим восприятием упрощению. Но это также снижает адекватность текстовой модели миру. Люди могут в одних и тех же ситуациях из личных предпочтений выбирать разные подходы и инструменты. Предлагая им один подход или инструмент согласно упрощенной текстовой модели, мы окажемся в ситуации, когда нереально будет понять, что же в нашем продукте не так. Другими словами, мы дорого расплатимся за потерю знаний, полученную упрощением.
Поэтому, обобщать стоит так, чтобы осталось всё существенное во всех его особенностях и пропало всё второстепенное. Для этого необходим способ различения важного и неважного. В историях, используемых в разработке, за это отвечает смысловой шаблон. Всё, что положено шаблоном, считается важным для описания, остальное допустимо опускать. Конкретные шаблоны мы рассмотрим в следующих главах.
1.6. Содержательность историй
Есть ещё один момент, важный для любой истории. Выкидывая лишние подробности, важно следить за тем, чтобы не выбросить контекст, минимально необходимый для понимания истории. Дело в том, что содержание в текстовом сообщении появляется и сохраняется только тогда, когда сообщающий вводит пространство, в котором это смысловое содержание было получено. В противном случае содержание остаётся только в голове автора сообщения.
Разберём этот момент на примере басни И. Крылова «Лебедь, Щука и Рак». В этой басне повествование ведётся сразу на двух уровнях. На уровне фабулы разворачиваются очень конкретные события. Мы видим конкретных персонажей и их действия. Вот встретились трое и решили перевезти что-то вполне им посильное, но из-за характера конкретных действий так и не могут сдвинуться с места. При этом автором явно вводится и другой уровень – уровень смысла, – где на материале введённой конкретики делается заключение общего вида.

Здесь важны оба уровня. Опусти автор фабулу, и вывод будет не только сух, но и непонятен, потому что всё абстрактное – многозначно в своей интерпретации. Оставь автор лишь повествование без вывода, неясно будет, для чего рассказывался сюжет, на что именно в нём должно быть обращено внимание. Лишь увязывание обоих уровней сохраняет и передаёт нам то, что хотел сказать автор.
Таким образом, в истории нам важно удержание обоих слоёв. Слой фактического и осязаемого, в котором рисуется конкретная картинка деятельности. И слой принципиального или абстрактного, в котором закрепляется смысл. В общем виде схематично это выглядело бы так:

История на уровне фактического закладывает ключ к дешифровке смысловой трактовки. Дела и ситуации конкретны, а принципы общие и повторяются. Только наличие тесной связи, переплетения фактического и принципиального придаёт истории содержательность.
Практические напутствия главы
– Превращайте сюжетные повествования в ёмкий текст, выявляющий главные закономерности поведения группы людей.
– Изучайте действительность – наблюдайте и расспрашивайте людей, а не фантазируйте в текстовых моделях поведения.
– Сохраняйте всегда два слоя при обобщении: фактический – с конкретной картиной организации деятельности, и принципиальный – со смыслом происходящего.
Глава 2. Решение проблемы вавилонской башни
Пользовательские истории как упрощённый язык взаимопонимания разработчиков, бизнеса и пользователей · Классический шаблон: роль, функциональность, основание · Трудности с восстановлением понимания при лаконичной записи
—
Все люди – один народ, у них один язык;
вот они и затеяли такое;
теперь не будет для них ничего невозможного.
Сойдём же и смешаем им язык,
чтобы они перестали понимать друг друга.
Бытие 11:1-9, Новый русский перевод
Хочешь понять назначение и ограничение любого инструмента – смотри на него в историческом контексте. Оглядываясь назад, можно с уверенностью сказать, что пользовательские истории были решением двух мощных вызовов своего времени:
– как понять, что и как нужно сделать;
– как организовать разработку.
2.1. Краткая историческая справка
К концу 90-х персональные компьютеры заняли прочное место в жизни западного общества, придя в каждый дом и на рабочие места в компаниях. Времена, когда вычислительные машины занимали несколько комнат, а то и целые этажи, остались позади. Позади оказались и времена, когда программное обеспечение создавалось по модели каскадного производства, требовавшего внушительного объёма предваряющего проектирования до начала разработки и эксплуатации.
Главной формой проектной документации в проектах для больших компьютеров были гигантские технические задания на сотни и тысячи страниц. Полное предваряющее проектирование было возможно потому, что чаще всего речь шла о сложных, но не запутанных средах в терминах фреймворка «Кеневин»5. В этой ситуации можно было заранее построить модель системы и подчинить ей разработку.
С приходом персональных компьютеров программное обеспечение стало доступно малому и среднему бизнесу. Конкурентная среда компаний этого масштаба запутана и постоянно меняется. Построить модель в такой динамически меняющейся ситуации невозможно, а стало быть, подход с предварительным продумыванием всего и вся стал неуместен. Ведущими средствами проектирования стали исследования элементов среды и проверка гипотез в ней.
Именно для такой проверки понадобились модели другого типа. С ростом конкуренции и после снятия всех «низко висящих фруктов» – так называют легкодоступные решения – ситуация сложилась так, что потребитель всё чаще стал диктовать требования, голосуя рублём. Понадобилось изучать потребителя, и пользовательские истории пришлись здесь как нельзя кстати.
Лаконичное, но ёмкое описание требований в виде коротких историй появилось в беседах разработчиков с будущими пользователями и бизнесом. Рассказывание историй помогало любому включиться в обсуждение требований к будущей системе. То, что рождалось в беседе, фиксировали в виде краткой записи истории. Потребность услышать и понять друг друга стояла настолько остро, что первые истории называли пиджином – общим упрощённым языком, одинаково доступным разным специалистам. Другими словами, появление историй стало мостиком между профессионалами из разных сфер деятельности, думающих и говорящих почти буквально на разных предметных языках.
2.2. Подход пользовательских историй
Пользовательские истории – это вариант текстовых моделей поведения человека. За тридцать лет практики подход широко распространился и зарекомендовал себя главным образом в сфере информационных технологий. Область их применения – взаимопонимание в беседе и планирование разработки.
Приставка «пользовательская» означает, что требования, описываемые историей, рассматриваются исключительно с перспективы людей, которые будут пользоваться разрабатываемой системой.
Прелесть пользовательских историй в том, что они просты для восприятия, потому что схватывают ситуацию и человеческое поведение в ней на привычном нам неформальном естественном языке.
Несмотря на неформальность языка, пользовательские истории довольно скоро заполучили более строгий формат, который помог не упускать важные составляющие. Строгость вводится шаблоном, который необходимо заполнить содержанием имеющейся ситуации.
Первый вариант текстовой модели пользовательской истории был предложен в 2001 году компанией «Коннекстра». Он широко распространился благодаря активности Agile-сообщества и используется до сих пор. В этом варианте текстовой модели выделяется три важных аспекта:
– роль (role);
– функциональность (feature, requirement);
– основание или мотив, требующий обозначенную функциональность (reason).
Наиболее распространённая современная версия шаблона выглядит так:
Я, как <функциональная роль ИЛИ представитель сегмента целевой аудитории>,
хочу <описание функциональности>,
чтобы <описание выгод и ценности> – Ш-1

Вот несколько типичных пользовательских историй в формате этого шаблона.
Я, как клиент банка, хочу снимать деньги со своего счёта в любой момент, чтобы оставаться свободным в планировании своего времени, а не быть ограниченным часами работы банка. – И-8
Я, как рекламодатель, хочу размещать рекламу только на сайтах выбранных тематик, чтобы захватить желаемую аудиторию и результативно использовать рекламный бюджет. – И-9
Я, как спикер, хочу на время сделать свою контактную информацию доступной всем присутствующим в аудитории, чтобы сейчас не тратить время на раздачу каждому, а впоследствии обеспечить актуальность данных. – И-10
Объём содержания истории может варьироваться в зависимости от масштаба акта деятельности, описываемого ею. Но каждая история обязательно должна затрагивать какие-то действия или их практические особенности. Каждая история должна относиться к практике в физическом мире или цифровом.
Крупномасштабные истории могут описывать целиком цифровой продукт. Например, история И-10 задаёт идею инструмента работы с электронными визитными карточками. В рамку таких объёмных историй попадает многосоставное действие по удовлетворению какой-то одной потребности пользователя.
Истории помельче затрагивают предпочитаемые способы решения конкретных задач. Например, история И-8 описывает предпочтительный способ поведения при решении задачи «получения наличности», а история И-9 уточняет часть инструментария в системе размещения интернет-рекламы.
2.3. Лаконичная запись как повод для беседы
В классике истории записывались на стикер Post-it, чтобы оставаться краткими. Ограниченный размер самоклейки помогал не растечься мыслью по древу. Запись велась в процессе беседы команды со всеми важными заинтересованными лицами. Чтобы избежать фантазий, все участники беседы должны были прийти к соглашению, что зафиксированная история отвечает целям и интересам всех заинтересованных лиц.
Строгий шаблон пришёл в пользовательские истории не сразу, и, к великому сожалению, соблюдается единицами практиков. Ряд авторов [Кон6, Паттон7], напротив, считают, что придерживаться строгого шаблона необязательно, как не стоит и стремиться к точности формулировок при записи историй. Они утверждают, что запись историй вторична по отношению к обсуждению её содержания.
Такая точка зрения опирается на мнение, что история – это всего лишь знак, обещающий беседу8 о ней. С одной стороны, мне симпатична эта фраза-образ. Коммуникация об объекте разработки – важнейшая часть процесса согласованного понимания. В беседе согласуются наименее поддающиеся интеграции компоненты: представления разных людей. Любая, даже мастерски сформулированная в записи история скорее всего потребует разговора для более полного восстановления её контекста и принятия допущений по вариантам её реализации.
С другой стороны, независимо от этого, история должна оставаться историей – её описание не должно деградировать до двух-трёх слов с обозначением темы будущей функциональности. Во-первых, краткая неряшливая запись с опусканием шаблона незаметно приводит нас к тому, что мы перестаём писать истории и пишем вместо них варианты решений или задачи на разработку. Во-вторых, при создании инструментов для сложных предметных областей восстановить содержание подобных недоисторий будет невозможно.
Вместе с тем наскоро и кратко намеченные истории долгое время процветали и процветают в отрасли. Далее рассмотрим на примерах, с чем они хорошо справляются, а с чем не очень.

