Пользовательские истории. Искусство гибкой разработки ПО (Паттон) - страница 151

Тщательно анализируйте и рассматривайте варианты. Используйте обсуждения, чтобы детально проанализировать:

• кто конкретно ваши пользователи;

• как конкретно, по мнению команды, они будут использовать продукт;

• как конкретно будет выглядеть продукт, то есть его интерфейс;

• как конкретно ведет себя программный продукт внутри интерфейса – какие бизнес-правила действуют, как нужно валидировать данные;

• сколько времени потребует разработка продукта с учетом всех технических деталей (на этом этапе мы обсуждаем все настолько подробно, что оценки могут быть довольно точными).

Помните: пока еще ничего не решено окончательно. Если дискуссия приводит к решениям, которые слишком сложны или дороги, вернитесь на шаг назад и обсудите проблемы, которые вы решаете, а также альтернативные способы решения.

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

• По каким критериям можно будет определить, что работа над программным обеспечением закончена?

• Что будет происходить во время демонстрации программного обеспечения, когда мы будем оценивать его все вместе?

Говорите и записывайте. Используйте доски или большие листы бумаги, чтобы рисовать картинки, записывать примеры и рассматривать варианты. Не позволяйте своим решениям испариться. Записывайте их на досках или на бумаге, чтобы каждый мог их видеть. Сфотографируйте записи и картинки, чтобы позднее задокументировать информацию.

Оперируйте примерами. Где только возможно, используйте специфические примеры поведения пользователей: какие конкретно данные могут быть введены, что именно пользователи увидят в результате, – словом, любые примеры, которые лучше всего иллюстрируют вашу историю.

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

Но все это не будет работать, если:

• нет совместной работы – кто-то один описывает, что нужно сделать, а все остальные слушают;

• разговор идет только о критериях приемки, но никто не вспоминает об истории и о «Кто?», «Что?», «Почему?»;

• не рассматриваются варианты реализации как с функциональной, так и с технической стороны.

Планирование спринта или итерации

Некоторые практики Agile воспринимают эти важнейшие обсуждения историй во время сессий планирования как планирование итерации или спринта. Это не так страшно, если вы имеете дело с командами, эффективно работающими вместе и начинающими дискуссию, хорошо понимая своей продукт. У команд, с которыми я работал на протяжении многих лет, это был устоявшийся способ работы.