Текст книги "Impact mapping: Как повысить эффективность программных продуктов и проектов по их разработке"
Автор книги: Гойко Аджич
Жанр: Программирование, Компьютеры
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 2 (всего у книги 7 страниц) [доступный отрывок для чтения: 2 страниц]
Что такое Impact mapping?
Impact mapping – это способ визуализировать границы проекта и основные гипотезы, созданные совместными усилиями лиц, принимающих технические и бизнес-решения. Это ментальная карта, возникающая в ходе обсуждения ответов на следующие четыре вопроса:
Цель
Центральная часть impact map должна отвечать на самый важный вопрос: зачем мы это делаем? Это цель, которую мы стремимся достичь.
Может показаться, что стремление в самом начале проекта получить ясный ответ на этот вопрос – всего лишь проявление здравого смысла. Однако мой опыт показывает, что лишь немногие из разработчиков точно знают, какие бизнес-цели преследует заказчик. Иногда их описывают в каком-либо формальном документе, но чаще всего бизнес-цели существуют лишь в головах заинтересованных лиц. Даже в тех редких случаях, когда бизнес-цели доводятся до разработчиков, они зачастую сформулированы весьма смутно.
Исследование, проведенное Гэри Кляйном на материале аварийно-спасательных служб и армейских подразделений, показало, что при осуществлении любой деятельности люди на местах должны понимать конечные цели операции, иначе они не в состоянии правильно реагировать на непредвиденные проблемы. Если очередной релиз или проект в целом позволяет достичь поставленной бизнес-цели, то это успех с точки зрения бизнеса, даже если в итоге разработанный продукт будет отличаться от того, что было предусмотрено первоначально. В то же время, если программный продукт точно соответствует задуманным спецификациям, но при этом не позволяет решить поставленную бизнес-задачу, его следует признать провальным. Это верно даже тогда, когда разработчики не без оснований обвиняют клиента, что он сам толком не понимает, чего хочет.
Поместив ответ на вопрос «ЗАЧЕМ?» в центр impact map, мы получаем возможность убедиться, что все знают, зачем они выполняют те или иные действия. Это помогает командам лучше соотносить свою текущую деятельность с конечной целью, точнее формулировать требования к функциональности и находить оптимальные с точки зрения дизайна решения.
Рекомендации
Обозначенная цель дает разработчикам инструмент для пересмотра первоначальных планов по мере поступления новой информации. Поэтому верно сформулированные цели, как правило, соответствуют критериям SMART: они конкретны, измеримы, ориентированы на совершение конкретных действий, достижимы и ограничены во времени.
Цели не должны описывать сам продукт, процесс его создания или устанавливать границы проекта. Они обязаны объяснять, почему данный продукт будет полезен.
Целям следует определять проблему, которую предстоит решить, а не воспроизводить решение. Избегайте включать в описание цели какие-либо конструктивные ограничения, касающиеся готового продукта.
Крис Мэттс предлагает сначала сформулировать, в чем состоит бизнес-ценность проекта, а затем объяснить, каким образом в результате осуществления задумки ситуация изменится, – обозначив при этом цели в качестве этапов постепенного приращения бизнес-ценности. Это особенно эффективно, если у вас уже есть набор ключевых показателей, по которым будет оцениваться эффективность данного продукта.
Для коммерческих продуктов и организаций старайтесь формулировать цели таким образом, чтобы связь с зарабатыванием денег была очевидной.
Примеры
• Открыть торговлю ценными бумагами в Бразилии в марте следующего года.
• За три месяца увеличить конверсию пользователей на 20 %.
Действующие лица
Первый уровень impact map дает ответы на следующие вопросы: на чье поведение мы хотим воздействовать? Кто сможет произвести желаемый эффект? Кто способен помешать? Кто является потребителем или пользователем нашего продукта? На кого наш продукт повлияет? Это и есть те действующие лица, чье поведение может сказаться на результатах проекта.
Джеральд Вайнберг определяет качество как «ценность, предоставляемую кому-либо». Чтобы обеспечить высокое качество результатов, мы сначала должны выяснить, кто эти люди и какую ценность они хотят обрести, воспользовавшись продуктом или результатами нашего проекта. В дополнение к тем, кто непосредственно получит ценность от пользования нашим программным продуктом, мы также должны учитывать интересы множества других людей, чьи решения будут так или иначе влиять на успех продукта или исход проекта. Программное обеспечение работает не в вакууме, и редко когда изначально удается поставить под контроль поведение всех действующих лиц, так или иначе с ним связанных.
У людей есть свои собственные потребности, цели и предпочтения, которые имеют значение, если мы действительно хотим достичь какой-либо бизнес-цели. И тем не менее большинство моделей управления акцентирует внимание на конкретных функциях программного обеспечения, а не на людях, для которых оно будет полезным. Затем где-то в середине работы из ниоткуда появляется новое действующее лицо, и все коренным образом меняется. Как вариант, кто-то с достаточными полномочиями может вообще неожиданно приостановить разработку.
Impact maps заставляют задуматься обо всех, кто принимает решения, а также о разных группах пользователей и разных категориях клиентов. Определившись со списком действующих лиц, мы приобретаем способность лучше расставлять приоритеты в своей работе.
Рекомендации
К важным действующим лицам относятся конечные пользователи, а также внутренние или внешние по отношению к проекту люди, принимающие решения. Алистер Коберн советует искать действующих лиц трех типов:
1. Первичные действующие лица, на удовлетворение потребностей которых направлен процесс разработки, например, игроки игровой системы.
2. Вторичные действующие лица, которые предоставляют услуги, например, команда, занимающаяся предотвращением мошенничества.
3. Закулисные действующие лица, которые имеют заинтересованность в проекте, но непосредственно не извлекают из него выгоду и не предоставляют услуги. Пример – государственные агентства, регулирующие данный вид деятельности, лица, принимающие решения на самых высоких уровнях в соответствующих компаниях.
Необходима максимальная конкретность. Избегайте слишком общих терминов. Постарайтесь определять круг лиц в таком порядке: конкретные персоны, целевые пользователи, действующие лица, вовлеченные в проект в силу своей роли или занимаемой должности, группы или отделы.
Примеры
• Майк Смит из отдела маркетинга.
• Пользователи в возрасте до 18 лет, приходящие на концерты, имея при себе мобильные устройства.
• Сотрудники Apple, утверждающие приложения, прежде чем разместить их в iTunes.
Примеры влияний
На втором уровне нашей impact map необходимо соотнести действующих лиц с нашей бизнес-целью. При этом нужно получить ответы на следующие вопросы: как должно измениться поведение действующих лиц? Как они могут помочь нам достичь поставленной цели? Как они могут создать нам препятствия или помешать добиться успеха? Это и есть те влияния, которые мы стремимся осуществить.
Энтони Ульвик писал, что ключом к успешной разработке продукта является понимание, какую именно работу клиенты хотят видеть выполненной при помощи вашего продукта. Это помогает рассмотреть различные технические варианты решений и проанализировать те из них, что могут привести к желаемым результатам. К тому же это позволяет сфокусировать разработку на решении задач, стоящих перед пользователями.
Перечисляя на втором уровне impact map желательные влияния, мы указываем, каких изменений в поведении действующих лиц мы хотим добиться. Это способствует разработке более точных планов и четкой приоритизации. На нашем пути к достижению ключевых бизнес-целей разные действующие лица будут разными способами как помогать, так и мешать нам. Некоторые из влияний станут конкурировать друг с другом, между некоторыми обнаружатся противоречия, а какие-то из них дополнят друг друга. Мы вовсе не обязаны заниматься всеми влияниями без исключения; однако если их не учесть при определении границ проекта, то будет очень трудно определить приоритеты и сравнить разные варианты решений. Поскольку impact maps имеют иерархическую природу, то с их помощью становится очевидно, кто именно должен оказать необходимое влияние и как именно оно поспособствует достижению цели. Визуализация позволяет выявить, какие влияния будут наилучшим образом способствовать достижению цели и какие риски могут поджидать нас на этом пути; все это чрезвычайно позитивным образом сказывается на нашей способности к расставлению приоритетов.
Рекомендации
Не стремитесь перечислить все возможные запросы данного действующего лица. В список должны войти только те влияния, которые действительно помогут вам продвинуться к основной цели.
Список влияний – это не список функциональных возможностей будущего продукта. Избегайте перечисления исключительно «программистских» идей – на этом этапе в фокусе внимания должны находиться бизнес-аспекты проекта.
В идеале следует описать те изменения, которые произойдут в поведении того или иного человека, а не просто его поведение после развертывания продукта. Опишите, чем его будущее поведение будет отличаться от возможного на данный момент. Поэтому вместо того, чтобы просто указать на impact map «продавать билеты», следует использовать иные формулировки, например «продавать билеты в пять раз быстрее».
Учитывайте не только позитивные, но и негативные или прямо препятствующие достижению цели влияния.
У важных действующих лиц часто есть несколько способов помогать или препятствовать благополучному исходу проекта. После того как вы идентифицируете одно из вероятных влияний данного лица, не останавливайтесь и попытайтесь разобраться до конца, какие еще способы воздействия на исход проекта есть в его распоряжении.
Примеры
• Возможность пригласить друзей принять участие в онлайн-игре.
• Возможность приобрести билеты без звонка в колл-центр.
• Более быстрая продажа билетов.
Поставляемый функционал
Ответив на первые три вопроса, можно переходить к обсуждению границ проекта. Третий уровень impact map призван ответить на следующий вопрос: что мы можем сделать, чтобы добиться необходимых влияний? Имеются в виду ожидаемые результаты проекта, поставляемые функциональные возможности и организационные изменения, которые могут потребоваться в этой связи.
Планы разработки и документы, описывающие требования к готовому продукту, зачастую похожи на списки покупок и не содержат каких-либо внятных пояснений, почему тот или иной функционал будущего продукта является столь важным. Если не установить четких связей между бизнес-целями и списком желаемого функционала и не поддержать эти связи с помощью перечня необходимых влияний, то будет невероятно сложно договориться о том, в какой потенциально возможный функционал следует инвестировать, а в какой нет.
Impact map показывает, какие именно желательные влияния должны быть оказаны при помощи заявленных функциональных характеристик. Это помогает разделить проект на независимые этапы, каждый из которых обладает самостоятельной бизнес-ценностью, тем самым позволяя получить ценные с точки зрения бизнеса результаты как можно раньше. Четкая иерархичность impact map позволяет объединить связанные между собой функциональные характеристики в группы, сравнить их и воздержаться от чрезмерного инвестирования в удовлетворение запросов наименее важных действующих лиц или наименее значительные влияния. Это также помогает отказаться от реализации тех частей проекта, которые на практике не способствуют достижению ни одной из важнейших целей. И, наконец, увязывая функциональные возможности продукта с желаемыми влияниями и бизнес-целями, impact map позволяет визуализировать цепочку рассуждений, в результате которых заинтересованные лица приняли решение включить в готовый продукт ту или иную функциональность. Это делает логику принятия таких решений более очевидной.
Рекомендации
Не пытайтесь с самого начала отметить все до единого элементы. Вы сможете уточнить тонкости в несколько итераций по мере продвижения разработки.
Рассматривайте свое первоначальное представление о готовом продукте в качестве факультативного: что не все желаемые функциональные возможности в итоге будут непременно реализованы.
На ранних этапах проекта старайтесь не погружаться в излишние детали, вы сможете уделить им внимание позже. Поначалу вас интересует только функциональность самого высокого уровня. Позже вы всегда сумеете разложить эту функциональность на составляющие более низких уровней.
Даже когда необходимость в новом программном обеспечении кажется вполне очевидной, нередко имеются альтернативные способы решить бизнес-задачу, вообще не прибегая к разработке продукта. Так, для вовлечения в онлайн-игру новых игроков иногда оказывается дешевле разместить рекламу, чем потратить месяцы на переделку имеющейся игровой платформы. Не отказывайтесь от рассмотрения любых вариантов, которые помогут оказать необходимое влияние.
Примеры
• Продажа билетов онлайн.
• Размещение бланка заказа непосредственно на стартовой странице сайта.
• Оптимизация скриптов, по которым работают сотрудники колл-центра.
• Подписание контрактов с реселлерами.
Никогда не стремитесь воплотить в своем продукте все без исключения элементы impact map.
Вместо этого найдите с ее помощью кратчайший путь к цели!
Пример: Платформа для онлайн-игр
Impact map иллюстрирует основные события при разработке платформы для онлайн-игр. Ключевая бизнес-цель данного этапа – увеличить количество активных игроков до одного миллиона.
Игроки являются важными действующими лицами. Они способны помочь нам, рекомендуя игру друзьям, размещая о ней посты на Facebook или рассылая своим знакомым приглашения присоединиться к игре. Сгруппировав все эти желательные воздействия вместе, мы увидим, что все они вносят свой вклад в достижение одной и той же цели, поэтому нам необязательно поддерживать все из них без исключения.
Другая группа важных действующих лиц – рекламные распространители. Они также могут привести дополнительных игроков, если мы разместим у них рекламные баннеры.
Таким образом, существуют разные приемы, чтобы повлиять на поведение игроков. Примером является возможность в полуавтоматическом режиме рассылать приглашения, которая делает этот процесс более простым и персонализированным. В результате повышается вероятность, что игроки будут приглашать друзей, а прохождение новых уровней или другие достижения должны мотивировать пользователей размещать посты об этом в социальных сетях.
Пример: Обработка финансовых транзакций
На impact map показаны основные события, происходящие в процессинговой системе при обработке транзакций. Ключевая цель – на 10 % сократить затраты на обработку транзакций. Ключевое предположение: данной экономии получится добиться, удешевив IT-операции. Некоторые методы, которые могли бы способствовать достижению данной цели: упрощение системной архитектуры и отказ от устаревшего оборудования, требующего дорогостоящей поддержки. Но чтобы решить эти задачи, потребуется много работы, причем замена архитектурных решений сопряжена с высокими рисками.
Другой вариант заключается в сокращении ручной работы при обработке транзакций. Важным действующим лицом здесь является команда по расчетам, базирующаяся в Германии. Она могла бы значительно снизить стоимость транзакций, ускорив обработку важных исключений, что, в свою очередь, позволило бы сократить объем работы, приходящийся на команды, находящиеся в технологической цепочке «ниже по течению». Чтобы добиться такого результата, потребуется доработать отчеты по исключениям и полностью автоматизировать процесс приоритизации транзакций. Еще один способ снижения затрат – улучшить автоматизированную обработку транзакций, снизив рабочую нагрузку на команду по расчетам и другие зависящие от нее команды.
Также важными действующими лицами являются трейдеры, размещающие заказы. Они могли бы снизить стоимость процессинга, размещая заказы, требующие меньше ручной работы. Есть предположение, что значительная часть задержек и ненужной ручной работы вызвана поведением команды по расчетам, тратящей излишне много времени на поиск нестандартных заказов и изучение текстовых комментариев, которые при размещении заказов вносятся трейдерами в свободном формате. Однако очень часто эти комментарии представляют собой не более чем рабочие заметки и не являются признаком настоящих исключений. Вероятно, мы могли бы снизить частотность подобных ситуаций. Стандартизация кодов исключений и предоставление трейдерам возможности вводить эти коды вместо текстовых заметок в свободном формате являются бизнес-задачами и не связаны напрямую с разработкой программного обеспечения. Однако эти меры также могли бы привести к сокращению затрат.
Роль Impact maps
Осуществляя итеративную разработку, при помощи метода Impact mapping очень удобно обсуждать исходные гипотезы, разрабатывать планы и согласовывать потребности заинтересованных сторон. Impact maps также облегчают применение нескольких популярных методов управления проектами.
Три ключевые функции
Когда все участники проекта одинаково понимают его цели, желательные влияния и основные исходные гипотезы, это позитивно сказывается на результатах: работа приобретает более сфокусированный характер и сокращаются непроизводительные издержки. Именно поэтому методы управления требованиями, ориентированные на цели[5]5
Goal-Oriented Requitements Engineering, GORE. – Прим. пер.
[Закрыть], становятся все более популярным предметом исследования. В настоящий момент сложилась практика прибегать к целеориентированным методам управления требованиями только на очень ранних стадиях проектов. Это серьезно снижает их эффективность.
Итеративные методы разработки и бережливое управление стартапами делают серьезный акцент на применении полученной в ходе разработки информации для корректировки границ проектов и внесения изменений в спецификации и первоначальные требования. Составляемые заранее планы действительно не годятся, поскольку ландшафт меняется слишком быстро. Но и у итеративной разработки есть свой недостаток – здесь слишком легко утратить представление о структуре в целом.
Impact maps являются мостиком между этими двумя мирами: они не только облегчают стратегическое планирование и мышление, позволяя создать представление об общей картине и ключевых бизнес-задачах, но и способствуют интеграции получаемых в ходе разработки данных, помогая нам корректировать дорожные карты. Они дают возможность отображать границы проекта таким образом, что ими становится легче управлять – развивать, расширять, сужать или вносить изменения в приоритеты, по мере необходимости реагируя на открывшиеся новые возможности или свежую важную информацию.
Стратегическое планирование
Impact mapping является отличным способом привлечь к совместной работе руководителей технического и бизнес-направлений с самого начала проекта или этапа. Это позволяет сформировать одинаковое понимание границ проекта с обеих точек зрения.
Благодаря визуальным методам проведения совещаний и совместной работе у лиц, принимающих решения, также формируется одинаковое представление об основных исходных гипотезах. В результате действия всех заинтересованных сторон приводятся в соответствие с общим видением проблемы.
Эффективному обсуждению трудностей способствует и сама структура impact maps, помогающая воспользоваться «мудростью толпы». В результате часто удается найти варианты решений, которые можно реализовать моментально, или как минимум выдвинуть оригинальные альтернативные предложения, позволяющие добиться необходимого результата быстрее и дешевле.
При стратегическом планировании для эффективного использования impact maps требуется выполнение следующих двух условий:
• наличие стратегических целей – impact maps неприменимы для управления проектами, связанными с поддержанием уже существующей функциональности;
• участие руководителей технического и бизнес-направлений.
Требования к качеству
Impact map наглядно показывает, какие влияния с точки зрения бизнеса должны быть реализованы при помощи разрабатываемого программного продукта. Благодаря визуализации можно определить требования к ожидаемому качеству на уровне продукта как единого целого и гарантировать, что все участники проекта понимают эти требования одинаково.
Impact map помогает разработчикам оставаться сфокусированными на приоритетах и действиях, направленных на обеспечение или улучшение качества. При этом новая роль тестирования – проверить, что создаваемый функционал поддерживает нужное нам поведение действующих лиц, а не просто сравнить готовый функционал со спецификацией. В случае, когда готовый продукт не поддерживает необходимое влияние, даже если с технической точки зрения он работает правильно, можно считать, что в этой части проект закончился неудачей. Имеющаяся проблема должна быть либо устранена, либо от продолжения работ в данном направлении следует отказаться.
Чтобы эффективно использовать impact maps для определения требований к качеству, необходимо согласие заинтересованных сторон о том, что:
• цель разработки – поддержка желательных изменений в поведении действующих лиц;
• контрольные показатели действительно выражают ожидания заинтересованных сторон в части этих изменений.
Внимание! Это не конец книги.
Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?