Истории постоянно обсуждают в процессе движения идеи от одной стадии разработки к другой. На каждом обсуждении не выходите за рамки «полезное», «удобное» и «реалистичное». Привлекайте людей, которые могут дать оценку этим факторам. Избегайте «дизайна в комиссии», возлагая на владельца продукта ответственность за удачный и цельный продукт.
Существует вредный антишаблон, который часто мешает хорошей работе пользовательских историй. Фактически его применение может привести к тому, что в результате совместной работы не получится вообще ничего хорошего.
В этом антишаблоне один участник играет роль клиента, а другой – исполнителя. Задача клиента – знать, чего он хочет, и объяснить исполнителю все детали. Это мы называем требованиями. Работа исполнителя – слушать, вникать, а затем продумать технический подход к реализации того, что хочет клиент. После этого исполнитель оценивает трудозатраты, что в сфере разработки программ часто является синонимом обязательства (кстати, этим часто объясняется страх программистов перед необходимостью давать оценки без тщательного анализа).
Конец истории печален и вполне предсказуем.
Изредка, конечно, оценка снайперски точна, клиент получает именно то, что просил, а просил он именно то, что ему было нужно.
Но в большинстве случаев реализация решения занимает больше времени, чем предсказывал исполнитель. Работник, являющийся исполнителем, может приводить любые оправдания, в том числе, что в требованиях, которые ему дали, плохо проработаны детали или просто «требования никуда не годятся». Клиент может жаловаться на неточную оценку, и, кажется, никому не приходит в голову, что это оксюморон. Когда же решение наконец предъявлено и клиент получает то, что просил, он может попробовать полученное и обнаруживает, что это совсем не то, что ему было нужно, намеченной им цели достичь нельзя.
Самое ужасное здесь то, что клиент понимает свою проблему лучше всех, а вот найти ее решение у него получается хуже, чем у других. А исполнитель отлично понимает технологии, и чаще всего только он обладает достаточной квалификацией, чтобы решить проблему, потому что он работает с этими технологиями и знает, как они могут помочь в данном случае. Более того, большинство технических специалистов искренне хотят помочь, им было бы приятно знать, что результаты их труда полезны людям.
Но в антишаблоне «клиент – исполнитель» обсуждение проблем и решений заменено дискуссиями и соглашениями относительно требований. Проигрывают в такой ситуации все.
Одна из целей метода историй – избавиться от этого антишаблона.
Хороший пример отношений, разрушающих этот антишаблон, – отношения многих из нас со своим врачом. Попробуйте явиться в кабинет врача и предъявить ему свои «требования». Перечислите рецепты, которые вам нужно выписать, и процедуры, которые следует назначить. Если у вас хороший врач, он ответит: «Очень интересно, а сейчас расскажите мне, что вас беспокоит».
Я представляю себе диапазон, на одном конце которого слово «официант», а на другом – «врач». Вам нужно стремиться к тому, чтобы ваши рабочие отношения больше напоминали общение врача и пациента, а не официанта и гостя.
Владелец продукта как продюсер
Если ваша организация работает в традиционной манере разработки программного обеспечения, в ней могут не совсем ясно понимать, чем должен заниматься владелец продукта. Например, вы участвуете в разработке критически важных систем для банков. Банк знает, что реальные продукты – это банковские услуги, которые он продает своим клиентам. Если у вас есть сотрудник на должности менеджера продукта, то его работа – отвечать за определенный тип банковского счета или кредитного продукта. Компьютерные системы, которые поддерживают этот тип услуги, всего лишь шестеренки в большом механизме. Зачастую бывает, что одна и так же IT-инфраструктура поддерживает множество различных банковских продуктов. Понятно, что банк не рассматривает эту инфраструктуру как продукт, и, как правило, нет никого, кто может выступать в роли ее владельца.
В таких типах организаций бизнес-аналитики часто исполняют обязанности по «сбору требований». Они являются передаточным звеном между программистами и представителями бизнеса, например менеджерами банковского или страхового продукта. Когда этим представителям бизнеса нужны изменения IT-инфраструктуры, которая поддерживает их продукт, они работают с бизнес-аналитиками, чтобы сформулировать эти изменения. Очевидно, что в данном случае они выступают в роли клиентов, а бизнес-аналитики – в роли исполнителей, в результате чего и запускается описанный ранее антишаблон.
Как-то в одном разговоре мой друг Дэвид Хассман предложил лучшую метафору для отношений, которые на самом деле должны существовать между бизнес-аналитиками и представителями бизнеса, – они должны быть такими же, как отношения между музыкальным продюсером и его группой. Дэвид знает в этом толк, потому что он не только гуру Agile, но и экс-гитарист хеви-метал-группы Slave Raider, существовавшей в 1980-х годах. Ему приходилось как работать с продюсерами, так и быть продюсером самому. Группа вступает в шоу-бизнес с энтузиазмом и, хочется надеяться, некоторым талантом, но участники не разбираются в подводных камнях шоу-бизнеса или в процессе записи альбома. В этом компетентен продюсер. Это его работа – помочь группе выпустить настолько успешный альбом, насколько это возможно. Хорошие продюсеры могут вырастить из талантливого новичка популярного, коммерчески успешного артиста.
Такова и работа бизнес-аналитика в IT. Используйте видение представителей бизнеса и помогите им воплотить его в успех. Вы не можете работать как приемщик заказов – вы должны выступать в роли доктора. Иногда это означает необходимость объяснять представителям бизнеса то, что они не хотят слышать. Но если вы искренне хотите помочь им добиться успеха, они заметят это и оценят вашу помощь.
Будучи владельцем продукта в отношении идей ваших партнеров, выступайте продюсером, который поможет им добиться успеха.
Здесь кроется еще один потенциальный антишаблон, выражающийся в том, что представителя бизнеса пытаются заставить исполнять роль владельца продукта. Я сказал «потенциальный» потому, что это, в принципе, может и сработать, если представитель бизнеса получает помощь и поддержку других членов команды, готов учиться работе владельца продукта и имеет время, чтобы заниматься ею. Владение продуктом – обязанность весьма нетривиальная, не стоит рассматривать ее как нечто необременительное, что можно делать в свободное время. Поэтому советую не возлагать на представителей бизнеса дополнительную работу, а найти продюсера, который поможет им добиться успеха.
Это сложно
Для идеи, весьма простой в своей основе, вся эта история с историями становится слишком запутанной на практике. Если кто-нибудь когда-нибудь говорил вам, что разработка программного обеспечения – да и предъявление любого продукта – прошла легко и просто, это было вранье.
Истории объединяют в себе много разных вещей. Мы употребляем это слово, подразумевая карточку, фрагмент программного продукта, который разрабатываем, и особенно способ обсуждения, которое проводим, чтобы решить, что нужно создать. Истории могут описывать очень большие возможности или сложно формулируемые части предоставления продукта, которые сами по себе могут не значить ничего особенного для заказчиков или пользователей. Работа с историями – продолжительный процесс обсуждений и дискуссий, в результате чего большие истории должны быть разбиты на маленькие части. На протяжении всех этих обсуждений мы концентрируемся не только на том, что можем создать, но также для кого и почему это делаем. Карты историй – лишь один из способов облегчить разбиение больших частей на маленькие, при котором мы не упускаем из виду людей, использующих продукт с удовольствием и пользой для себя.
Если все это начинает обретать для вас смысл, значит, ваше мировоззрение изменилось, что очень важно и совершенно необходимо. Это шаг не в сторону использования историй для документирования требований, а к более эффективной работе с людьми, совместному фокусированию на решении реальных проблем с помощью продуктов, которые вы создаете.
Я надеюсь, вы тоже думаете, что это замечательно.
Глава 13. Начните с возможностей
Разрешите мне вернуться к сходству историй с камнями. Части, на которые вы разобьете камень, все равно можно назвать камнями, просто меньшего размера. Но это все еще такие же камни, как тот, первоначальный, который нам нужно было внимательно рассмотреть, чтобы понять, достоин он разбиения или нет. Давайте условно назовем его «нулевой камень». В терминах метода историй я бы употребил слово «возможность».
Под возможностями я подразумеваю идеи, которые, по нашему мнению, могли бы решить проблему. Нет, я вовсе не тот человек, чей стакан всегда наполовину пуст, но все-таки не очень умно считать любую возникшую идею достойной реализации в нашем продукте, ведь, как вы знаете, времени и людей, чтобы реализовать все, никогда не бывает достаточно. Но даже если бы у вас было сколько угодно ресурсов, ваши заказчики были бы слегка шокированы таким продуктом.
Обсуждайте свои возможности
Когда мы предлагаем для обсуждения какую-нибудь идею, обычно эта идея довольно велика, хоть и не всегда. На жаргоне историй мы можем назвать такую идею эпиком, но я предпочитаю слово «возможность». Независимо от того, как вы их называете, это все еще истории, и главная цель их начальных обсуждений – решить, стоит ли продолжать работу над этими историями или просто отбросить их. Для каждой возможности мы можем обсудить:
• для кого она. На этом уровне чаще всего упоминаются разные группы пользователей, заказчиков или целевой сегмент рынка;