
Онлайн книга «Agile: Оценка и планирование проектов»
— Конечно, — ответила Делани. — Начнем вот с этого: «Как игрок я могу отменить ход с тем, чтобы исправить серьезную ошибку». — Это наша первая история? — спросил Прасад, тестировщик. — Да, поэтому я запишу ее на карточке, чтобы не забыть, — сказала Делани и написала карточку истории (23.1.) ![]() — Теперь нам нужно оценить эту историю? — спросил Аллан. — Пока нет, Аллан. Это будет легче сделать, когда у нас появится группа историй. Мы оценим их одновременно, — ответил Карлос. — Теперь моя очередь. Если есть история об отмене действия, то нам нужна и история о повторе действия. «Как игрок я хочу иметь возможность повторить ход, который отменил, с тем, чтобы восстановить последовательность ходов», — сказал Фрэнк. — Хорошая история, Фрэнк. Запиши ее на карточку, — предложил Карлос менеджеру по продукту. — А не лучше ли ввести это в электронную таблицу? — спросил Фрэнк. — Возможно, позже. На совещании вроде нашего полезнее иметь реальные карточки. Вы увидите это, — сказал Карлос. — Они позволяют каждому из нас записать любую историю в любой момент. Нет необходимости ждать, пока кто-то введет ее с клавиатуры. — А когда мы дойдем до планирования, карточки будут еще полезнее, — добавила Саша. — Мы сможем сортировать их по приоритетам и распределять по итерациям. Фрэнк начал понимать преимущества использования карточек. Он мог написать новые карточки или забрать уже написанные. В электронной таблице проделать такое невозможно. Пока что этот новый «agile-процесс» был ему малопонятен, но уже увиденное внушало оптимизм. С растущим энтузиазмом Фрэнк написал карточку истории (23.2). ![]() — Чтобы записать все истории, нужно… — начал было Карлос. — Ты и в самом деле имеешь в виду все, Карлос? — перебила agile-тренера команды Саша. — Да. В какой-то мере. Я хотел бы посвятить это совещание составлению как можно большего количества карточек историй. Отмена и повтор действия — это слишком мало. Потом, не нужно стремиться к тому, чтобы все наши истории были такими маленькими. На деле нам бы надо объединить эти две истории, отмену и повтор действия. — Хорошо, я сделаю это, — сказал Фрэнк и написал карточку истории (23.3). — А как показать, что эта карточка связана с двумя другими? Их нужно как-то пронумеровать? — Нет, просто разорви первые две карточки, — ответил Карлос. — Они нам больше не нужны. Фрэнк разорвал первые две карточки. ![]() — Карлос, Фрэнк не включил в карточку причину. Там нет «с тем, чтобы». Это нормально? — спросил Аллан. — Эй, это всего лишь моя вторая история! — Фрэнк шутливо парировал выпад. — В действительности, — пояснил Карлос, — «с тем, чтобы» требуется не всегда. Если это помогает сделать историю более ясной, то такое дополнение нужно. Но слишком беспокоиться о нем не стоит, особенно в истории вроде этой, где и так понятно, почему пользователь хочет иметь данную возможность. — Карлос, ты сказал, что нам нужно написать все истории сегодня, даже если некоторые из них будут сформулированы в самом общем виде. Но разве нельзя добавить истории позже? — спросила Роуз. — Конечно, можно. Мы обязательно будем добавлять какие-то истории позже. Если это будет не так, значит, мы подходим к игре недостаточно креативно. Я и мысли не допускаю, что позже у нас не появятся новые идеи, более удачные, чем те, с которых мы начинаем сегодня. Цель письменного изложения «всех» историй сегодня — описать наши знания, пусть даже в общем виде, о том, какие функции наиболее желательны. Это здорово поможет Саше и Аллану, которые будут разрабатывать архитектуру игры и продумывать подходы к созданию генератора ходов. — Это здорово, Карлос. Продолжим. Может быть, мы все просто начнем писать карточки? — Можно, — сказал Карлос. — Но лучше, если мы придадим этой работе определенную структуру. Давайте обсудим, что может понадобиться пользователю в различные моменты игры — до начала игры, во время игры и даже после ее окончания. Со стороны членов команды послышались возгласы согласия, а Карлос продолжил: — Что может пользователь захотеть сделать сразу после загрузки Havannah? — Начать игру. — Восстановить сохраненную партию. — Выбрать уровень сложности. — Ну вот, давайте запишем это, — сказал Карлос. Через несколько минут команда выдала кучу историй (табл. 23.1). ![]() — Карлос, — сказал Фрэнк, — если эти истории представляют то, что пользователь может захотеть до начала игры, почему в их число включили «Как игрок я хочу, чтобы в игре был музыкальный фон»? Ведь это нечто нужное игроку во время игры, а не до ее начала. — Мы просто проводим мозговой штурм, чтобы определить круг пользовательских историй, — ответил Карлос. — Для нас пока не важно, какие истории связаны с периодом до начала игры, а какие с процессом самой игры. Такой подход, на мой взгляд, помогает осмыслить, что нам нужно в игре. — Понятно. А что делать дальше? — Теперь давайте подумаем, чего пользователь может захотеть во время игры. В ответ на предложение Карлоса члены команды написали истории, представленные в табл. 23.2. ![]() — А теперь, я думаю, нам надо перейти к тому, что пользователь может захотеть сделать после завершения игры, — сказал Фрэнк. — Вряд ли после завершения игры ее участник может хотеть многого. Мы не подумали о возможности сохранения игры ранее, поэтому можно добавить такую историю, — сказал Прасад. — Игрок может также захотеть вернуться и просмотреть ходы. Deep Black & White поддерживает такую возможность, — заметила Роуз. — Я могу сделать комментарий к ходу вроде такого: «Я также обдумывала возможность пойти на клетку А3». — Окей, запишем это в виде историй, — сказал Карлос (результат представлен в табл. 23.3). ![]() |