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

Антишаблон «клиент – исполнитель»

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

В этом антишаблоне один участник играет роль клиента, а другой – исполнителя. Задача клиента – знать, чего он хочет, и объяснить исполнителю все детали. Это мы называем требованиями. Работа исполнителя – слушать, вникать, а затем продумать технический подход к реализации того, что хочет клиент. После этого исполнитель оценивает трудозатраты, что в сфере разработки программ часто является синонимом обязательства (кстати, этим часто объясняется страх программистов перед необходимостью давать оценки без тщательного анализа).



Конец истории печален и вполне предсказуем.

Изредка, конечно, оценка снайперски точна, клиент получает именно то, что просил, а просил он именно то, что ему было нужно.

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

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

Но в антишаблоне «клиент – исполнитель» обсуждение проблем и решений заменено дискуссиями и соглашениями относительно требований. Проигрывают в такой ситуации все.

Одна из целей метода историй – избавиться от этого антишаблона.

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