Разработка программного обеспечения внутри компаний за редкими исключениями уже давно выделилась в самостоятельную функцию. При этом коммуникация с остальными подразделениями организации, чье функционирование программисты призваны поддерживать своими разработками, зачастую оставляла желать лучшего. Сотрудники других отделов могли в целом не понимать, что такое программное обеспечение, а разработчики, в свою очередь, быть недостаточно осведомленными о потребностях бизнеса, которым занимается компания.
С одной стороны, проблемы с коммуникацией слишком часто приводили к тому, что на выходе получался совсем не тот продукт, который был необходим, или (в лучшем случае) не совсем тот. С другой – они становились причиной неэффективного управления проектами и неоправданного роста затрат. Внедрение гибких методологий позволило существенно ускорить циклы обратной связи и успевать изменять продукт под потребности до того, как закончится бюджет на разработку.
Нам необходимы подходы, которые помогут разработчикам стать полноправными партнерами других подразделений и создавать продукты, с энтузиазмом принимаемые пользователями, а это, в свою очередь, приведет к успеху в бизнесе. В основе сотрудничества разработчиков и заказчиков должна лежать именно эффективная коммуникация. Такой коммуникации мешает различный взгляд на вещи и даже разный словарь, используемый разработчиками программного обеспечения и всеми остальными. Поэтому важно научиться визуализировать проблемы, над решением которых приходится работать совместно, – это даст возможность осмысленно участвовать в разработке независимо от своей предметной области, будучи при этом уверенными, что мы говорим об одном и том же. В качестве инструмента визуализации в гибких методологиях используется принцип «работающее ПО». Его смысл в том, что разработчики быстро реализуют небольшой набор пожеланий к продукту, и это сразу же обеспечивает обратную связь от реальных пользователей. Идеология «работающего программного обеспечения» действительно дает возможность удостовериться, что принятые ранее решения являются правильными, однако эта идеология никак не помогает отбирать из уже имеющегося набора пожеланий к продукту именно те, реализация которых будет наиболее ценной с точки зрения пользователей и вызывать у них максимум энтузиазма.
Множество барьеров на пути эффективного сотрудничества возникает из-за неразделенных, никогда не обсуждавшихся и непроверенных исходных предположений. Специалисты в разных областях исходят из разного набора допущений и гипотез. Если эти допущения и гипотезы сформулировать в явном виде, то получится их своевременно проанализировать и протестировать. В результате все последующие решения будут приниматься гораздо быстрее. Именно с этой точки зрения impact maps (карты влияния) являются эффективным инструментом. Они позволяют в наглядном виде представить ответы на вопросы «ЗАЧЕМ», «КТО», «КАК» И «ЧТО», связанные с проблемой, которую необходимо решить в рамках конкретного проекта.
Подобно тому, как карты автомобильных дорог показывают, какие дороги соединяют большие и малые населенные пункты, impact maps описывают, какой продукт мы хотим создать и как именно с его помощью мы собираемся облегчить жизнь пользователям. При этом следует иметь в виду, что основная цель автомобильной карты не столько давать подробную информацию о городах и других населенных пунктах, сколько четко указывать, как проехать от одного из них к другому. Ее дополнительная цель – помочь нам прокладывать альтернативные маршруты.
Наглядно продемонстрированные на impact maps узлы и предположительные способы обеспечения переходов между ними позволяют вовлекать в обсуждение специалистов любого профиля. Impact maps создают понятный для всех контекст и в явном виде отражают те неопределенности, с которыми будет необходимо разобраться экспериментальным путем. Подобно дорогам, закрытым для проезда или находящимся в стадии строительства, определенные исходные предположения могут оказаться нежизнеспособными или попросту неправильными. Поэтому соответствующие карты и называются картами автомобильных дорог, а не «картами назначения». Impact maps помогают визуализировать исходные гипотезы, которые и проверяются впоследствии опытным путем.
Мы наблюдаем, как на наших глазах совершается переход от подхода «push» к подходу «pull»[1], от директивного управления к адаптивному. Подход «push» предполагает, что мы говорим людям, что им делать; «pull» начинается с формулировки проблемы, открывшейся возможности или какого-либо вызова – при этом кроссфункциональная команда должна самостоятельно во всем разобраться и решить эту задачу. Подход «pull» предполагает фундаментальный сдвиг: чтобы достичь своей цели, мы переносим фокус внимания c «производства» продукта, который заказал клиент, на сотрудничество со всеми заинтересованными сторонами. Это требует перехода от внешней мотивации («push») к внутренней или самомотивации («pull»). Как элегантно выразился Дэн Пинк, внутренняя мотивация возникает при наличии автономии, профессионализма и понимания своего предназначения.
Создание автономных групп, куда входили бы специалисты, обладающие необходимыми компетенциями, является единственным эффективным способом достижения тех целей, что мы ставим перед собой сегодня. Однако группа не может стать эффективной командой, если у нее отсутствует разделенная цель (или цели). Разделенные цели вытекают из разделенных пожеланий к продукту. Самое главное здесь – совместная работа по их созданию. Кроме того,