Книга Пользовательские истории. Искусство гибкой разработки ПО, страница 27. Автор книги Джефф Паттон

Разделитель для чтения книг в онлайн библиотеке

Онлайн книга «Пользовательские истории. Искусство гибкой разработки ПО»

Cтраница 27

Задачи похожи на камни. Если вы возьмете большой камень и стукнете по нему молотком, он разобьется на кучку осколков, но эти осколки – такие же камни. То же самое происходит с задачами. Я не сумею определить, достаточно ли камень велик, чтобы считать его валуном, или достаточно мал, чтобы считать его галькой, но способ отличить крупные задачи от мелких существует.

Мой друг Алистер Коберн описал концепцию целевых уровней в книге «Написание эффективных пользовательских ситуаций» (Cockburn Alistair, Writing Effective Use Cases, издательство Addison-Wesley Professional). Не волнуйтесь, расписывать пользовательские ситуации мы сейчас не будем – это просто концепция, очень полезная при обсуждении поведения людей.

Алистер пользуется метафорой уровней высоты: уровень моря находится в середине, а все остальное – выше или ниже его. Задача на уровне моря – это то, что мы собираемся сделать, прежде чем намеренно остановимся и перейдем к чему-то еще. В ваших задачах наверняка есть «Принял душ». Это и есть задача на уровне моря – вы же не выключаете воду, думая: «Этот душ, похоже, затягивается, пойду-ка я выпью чашечку кофе, а потом закончу мыться». Алистер называет такие вещи задачами функционального уровня и помечает их значком океанской волны. Но я их называю просто задачами.


Пользовательские истории. Искусство гибкой разработки ПО

Задача «Принять душ» может быть разбита на множество маленьких подзадач вроде «Настроить температуру воды» или «Вымыть голову», а также, как у моей жены, чего-нибудь включающего надраивание мочалкой из люфы. Помните, что люди разные, и вы заметите различия в их поведении, касающиеся того, как они подходят к решению задач. Алистер помечает такие вещи маленькой рыбкой, потому что они находятся ниже уровня моря.

И наконец, мы переходим к ряду задач итогового уровня. Принять душ, побриться, почистить зубы и все остальное, что вы проделываете по утрам, поднявшись с постели, в конце концов сводятся к одной задаче-итогу. Я не уверен, как точно сформулировать ее название. «Стать чистым»? «Утренняя гигиена»? Мне не очень нравится слово «гигиена». Не будем его использовать.

2. Организуйте свою историю

Если вы этого еще не сделали, расположите свои задачи слева направо так, чтобы действия, которые вы выполняете первыми, располагались слева, а выполняемые последними – справа.

Попробуйте изложить историю, начиная с первого стикера: «Сначала я делаю это…», а затем перейдя к следующему со словами «а потом это». Продолжайте таким образом двигаться слева направо и рассказывать свою историю. Вы можете рассматривать каждый стикер как один шаг и переходить от одного шага к другому с помощью простой конструкции «а затем я…».

Порядок слева направо я называю хроникой повествования, но это просто красивое название порядка изложения истории слева направо. То, что у нас получилось, можно назвать картой, и хроника повествования – ее горизонтальная ось слева направо.


Пользовательские истории. Искусство гибкой разработки ПО

Оказывается, мое повествование получилось довольно длинным. Я также начал собирать вместе события, которые происходят примерно в одно и то же время. По мере выкладывания стикеров в последовательную историю я понял, что пропустил несколько деталей, и сейчас пытаюсь решить, стоят ли они того, чтобы их добавить.

Карты организуются слева направо согласно хронике повествования – порядка, в котором вы рассказываете историю.

Добавьте пропущенные детали. Приятная особенность составления карт с помощью стикеров заключается в том, что увидеть и оценить общую картину очень легко. А видя историю, организованную по порядку хроники повествования, вы обязательно заметите, что каких-то частей истории не хватает.

Посмотрите на свою карту и подумайте, не пропустили ли вы какие-нибудь шаги.

Я добавил всего несколько. Ниже уровня моря находится множество деталей, которыми я решил пренебречь: если попытаться записать их, получится несколько сотен стикеров.

3. Исследуйте альтернативные истории

Пока все довольно очевидно, правда? Знания, которые вы получили, вряд ли стоят использованных бумажек. Но подождите, сейчас будет кое-что интересное.

Задумайтесь на минуту о том, что вы делали вчерашним утром. Если найдутся какие-то действия, отличные от того, что вы делали сегодня утром, запишите их на стикерах и добавьте на карту.

Бывает, что утром все катится кувырком. Что вы будете делать, если у вас в доме внезапно отключат горячую воду? Если внезапно не окажется молока, или овсяных хлопьев, или чего-то еще, что вы привыкли есть на завтрак? Если дочка внезапно вспомнит о домашнем задании, которое нужно было обязательно сделать к сегодняшнему дню (у нас это происходит регулярно)? Что тогда? Запишите возможные действия и добавьте их на карту.

А сейчас подумайте об идеальном утре. Что бы сделало ваше утро безупречным? Мне, например, хотелось бы сделать небольшую зарядку, а затем не спеша позавтракать, читая что-то интересное. Но для этого пришлось бы вставать намного раньше и не переключать будильник.

Обратите внимание на то, что вы можете разместить некоторые задачи в столбик, во-первых, чтобы сэкономить место, а во-вторых, потому, что эти задачи аналогичны тем, которые вы решаете регулярно. Например, если вы добавили задачи по приготовлению изысканного завтрака, то можете их поместить в одну колонку с задачами приготовления быстрого завтрака, который едите обычно.


Пользовательские истории. Искусство гибкой разработки ПО

Мой друг Дэвид Хассман называет этот процесс игрой во «Что, если» – вы, наверное, помните эту фразу из глав 2 и 3. К сожалению, в эту игру можно играть бесконечно, в результате чего карта разрастется до невероятных размеров. Я добавил в свою карту только то, что когда-либо происходило на самом деле – я делал зарядку или позволял себе немного расслабиться за завтраком. Кроме того, добавил несколько распространенных вариантов развития событий, которые, как правило, могут наблюдаться по утрам.

Основная часть карты заполняется деталями, альтернативами, вариантами и исключениями.

Сохраняйте порядок. Наверное, вы обратили внимание на то, что, добавляя новые задачи, вам, скорее всего, пришлось переставить старые. Мне вот, например, пришлось: зарядку нужно было поместить между подъемом с кровати и утренним душем. Кроме того, еще раньше пришлось добавить «Надеть спортивную форму», ведь это не то же самое, что предусматривает задача «Одеться», стоящая после душа.

Вход
Поиск по сайту
Ищем:
Календарь
Навигация