Используйте семинары по историям, чтобы довести понимание до совершенства и точно определить, что конкретно должна создать команда разработки. Семинар – это обсуждение продукта (поддерживаемое множеством данных и картинок), которое поможет команде принять необходимые решения и определить признаки готовности, то есть критерии приемки того, что было решено разработать.
• кого-то, кто хорошо понимает пользователей и пользовательские интерфейсы, их требования и возможности, – чаще всего это владелец продукта, специалист по пользовательскому взаимодействию или бизнес-аналитик;
• одного или двух программистов, имеющих представление о коде, который вы хотите добавить в продукт, и поэтому хорошо понимающих степень реалистичности разработки;
• тестировщика, отвечающего за качество продукта, потому что именно он задаст каверзные вопросы, известные как «Что, если», о которых не подумают остальные, обычно настроенные оптимистично.
Другие люди и другие роли тоже могут быть полезны, но не забывайте об оптимальном количестве участников дискуссии – не больше, чем в компании за обеденным столом.
Вы убедитесь, что один человек вполне может выступать в двух ролях, или, как говорят, носить сразу две шляпы. Например, во многих IT-организациях я встречал тестировщиков, одновременно исполняющих обязанности бизнес-аналитиков. Но если силами присутствующих не удалось преодолеть все камни преткновения, приостановите семинар и найдите кого-то еще, кто может помочь в решении трудного вопроса.
• кто конкретно ваши пользователи;
• как конкретно, по мнению команды, они будут использовать продукт;
• как конкретно будет выглядеть продукт, то есть его интерфейс;
• как конкретно ведет себя программный продукт внутри интерфейса – какие бизнес-правила действуют, как нужно валидировать данные;
• сколько времени потребует разработка продукта с учетом всех технических деталей (на этом этапе мы обсуждаем все настолько подробно, что оценки могут быть довольно точными).
Помните: пока еще ничего не решено окончательно. Если дискуссия приводит к решениям, которые слишком сложны или дороги, вернитесь на шаг назад и обсудите проблемы, которые вы решаете, а также альтернативные способы решения.
• По каким критериям можно будет определить, что работа над программным обеспечением закончена?
• Что будет происходить во время демонстрации программного обеспечения, когда мы будем оценивать его все вместе?
Но все это не будет работать, если:
• нет совместной работы – кто-то один описывает, что нужно сделать, а все остальные слушают;
• разговор идет только о критериях приемки, но никто не вспоминает об истории и о «Кто?», «Что?», «Почему?»;
• не рассматриваются варианты реализации как с функциональной, так и с технической стороны.