Decision Patterns, пост 2
Посты про фреймворк Джона Фитча под названием Decision Patterns.
В первом посте мы выяснили, что «принять решение» — на самом деле довольно сложный процесс. Нужно уметь разделять проблему, потенциальные способы разрешения (solutions), и ситуацию выбора из этих способов с применением критериев — decision.
В этом посте разберем основы фреймворка и некоторые устойчивые паттерны.
Определения и фундаментальные концепты
Начнем с понимания основы — что же такое этот самый decision:
«Принимаемое решение» (decision) в фреймворке Фитча — это фундаментальный вопрос или проблема, требующие ответа/решения (solution).
Примеры «принимаемых решений»:
- Выбери университет для поступления
- Выберите технологию для тормозной системы автомобиля
- Выберите юзкейсы, которые нужно реализовать в продукте
- Выберите маркетинговые каналы для рекламной кампании.
С этой точки зрения «принимаемое решение» — это составная часть задачи. А сама задача состоит из набора таких «принимаемых решений», вопросов, на которые нужно последовательно ответить. «Принимаемые решения» организуются в Decision Breakdown Structure (DBS), я про нее писал в прошлом посте.
С точки зрения системной инженерии — это следование принципу separation of concerns, мы «распиливаем» домен задачи на отдельные функциональные блоки и разбираемся с ними по отдельности.
Перечислю основные сущности домена решаемой задачи, для верности:
«Принимаемое решение» — в форме вопроса «Выбери Х»; «способы решения» (solutions) — потенциальные варианты выбора в рамках принимаемого решения; критерии — требования для оценки способов решения в рамках принимаемого решения.
На примере университета:
- Принимаемое решение: нужно выбрать универ для поступления.
- Альтернативы: АГТУ, АГУ, МГУ, Бауманка, МФТИ.
- Критерии: универ в Астрахани или в Москве; хорошая репутация; есть возможность пройти на бюджет; сильные программы по экономике и маркетингу.
На примере маркетинговых каналов:
- Нужно выбрать маркетинговые каналы для рекламной кампании
- Альтернативы: РСЯ; контекстная реклама; реклама в видео; размещение у блогеров.
- Критерии: бюджета хватит на 60 дней размещения; обеспечит охват в 250 тысяч; можно разместить видео; можно менять креативы раз в две недели; можно оплатить с юрлица.
Порядок принятия решения такой: определяем задачу → определяем критерии → ищем и подбираем альтернативы. Люди склонны к ошибке подтверждения, поэтому существует вероятность несознательной подгонки критериев под уже выбранную альтернативу. Такая подгонка — интуитивный подход, а ему никакие фреймворки не нужны: выбирай сердцем и не мучай мозг. Поэтому по науке сначала — критерии, потом — альтернативы.
Как принимаемые решения объединяются в паттерны?
В рамках конкретной задачи определяется одно главное принимаемое решение, которое разделяется на несколько принимаемых решений более низкого уровня. Это и есть Decision Breakdown Structure (DBS) — структура/диаграмма разбиения принимаемого решения. Устойчивый набор принимаемых решений, организованный в такую диаграмму, называется «паттерном принимаемых решений» (Decision Pattern).
Далее будет пример такого паттерна — «Дизайн оргспособности» (ОС, Capability Concept). Он будет состоять из номера принимаемого решения, его названия, короткого вопроса и класса принимаемого решения.
Capability/оргспособность — это способность вашей системы (софта, организации) что-то делать. Например, для системы управления умным домом оргспособностью может быть «обеспечение безопасности дома». В рамках нее у системы может быть несколько функций: видеонаблюдение, датчики движения, умные замки и т. д. Но сама оргспособность — это общая способность системы обеспечивать безопасность.
Номер | Название ПР | Описание ПР | Класс ПР |
1. | Концепт оргспособности | Какова верхнеуровневая архитектура, дизайн или пример имплементации для этой ОС? | Один ответ |
1.1 | Сценарии использования | В каких ситуациях или сценариях мы будет использовать ОС? | Несколько ответов |
1.1.1 | Ценностное предложение | Какую уникальную ценность предложит новая ОС в этом сценарии? | Один ответ |
1.2 | Ключевые методы | Какие методы или комбинации методов обеспечат основу этой ОС? | Один ответ |
1.3 | Архитектура процесса | Какую архитектуру, фреймворк или флоу процесса мы используем для разворачивания ОС? | Многочастный ответ |
1.3.1 | Дизайн процесса | Как вот эта часть процесса будет работать? | Один ответ |
1.3.1.1 | Инструменты | Какой набор инструментов мы используем, чтобы обеспечить эту часть процесса? | Один ответ |
1.3.1.2 | Рабочие продукты | Какие РП будут созданы этим процессом? Как они будут доставлены в следующий процесс? | Несколько ответов |
1.4 | Интерфейсы ОС | С какими процессами или другими ОС целевая ОС будет взаимодействовать? | Несколько ответов |
1.4.1 | Концепт интерфейса | Как эти ОС будут взаимодействовать друг с другом? Как их интерфейсы будут работать? | Один ответ |
1.5 | Оргдизайн | Как нам организоваться, чтобы эффективно использовать эту ОС? Кем укомплектуем команду? Какую роль будет играть каждый член команды? | Многочастный ответ |
1.6 | Платформа | Какая потребуется инфраструктура (помещения, рабочие центры, оборудование) для обеспечения ОС? | Многочастный ответ |
1.7 | Метрики | Какие метрики потребуется отслеживать для новой ОС? Как мы их соберем? | Несколько ответов |
1.8 | Развитие | Как мы получим или разовьем эту ОС? | Один ответ |
Классов принимаемого решения три:
- «Один ответ» — обычно используется для вопросов вида «Каков/какой/как...», определяет концепты или технологии, выбираем один вариант из какого-то количества альтернатив.
- «Несколько ответов» — используется для портфолийных вопросов вида «Какие N из набора M мы выберем?», выбираем все подходящие варианты.
- «Многочастный ответ» — используется для архитектурных выборов, где варианты обычно представлены архитектурными моделями из нескольких связанных элементов. Например: какую оргструктуру выбрать для компании — более плоскую или более иерархичную? Каждый вариант «плоская, иерархичная» — это схема из нескольких элементов.
В принимаемых решениях классов «Несколько ответов» и «Многочастный ответ» у каждой рассматриваемой альтернативы должны быть рассмотрены все принимаемые решения ниже уровнем.
Пример:
1.1 | Сценарии использования | В каких ситуациях или сценариях мы будет использовать ОС? | Несколько ответов |
1.1.1 | Ценностное предложение | Какую уникальную ценность предложит новая ОС в этом сценарии? | Один ответ |
Если в «Сценариях использования» мы выбрали три сценария из пяти, то «Ценностное предложение» нужно выбрать для каждого из этих трех сценариев.
Понятнее станет, если мы посмотрим на то же самое в виде схемы:
Так же в рамках паттерна составляются списки критериев по каждому вопросу/принимаемому решению.
Вот пример критериев для вопроса «1.1 Сценарии использования»:
Критерий | Описание |
Комплаенс | ОС должны поддерживать сценарии использования, которые соответствуют спецификациям заказчика, нормативным требованиям и соответствующим стандартам. |
Кол-во пользователей | ОС должны поддерживать юзкейсы с большим количеством пользователей |
Срочность | ОС должна поддерживать юзкейсы, решающие срочные потребности пользователей |
Дифференциация | ОС должны поддерживать юзкейсы, в которых ценностное предложение выгодно отличается от конкурентов |
Долгосрочные потребности | ОС должны поддерживать юзкейсы, закрывающие стабильные долгосрочные потребности |
Время вывода на рынок | ОС должны поддержать юзкейсы, которые мы готовы предоставить в короткие сроки |
Низкая себестоимость | ОС должны поддерживать юзкейсы, которые мы можем предоставить с низкими издержками |
Соответствие стратегии | ОС должны поддержать юзкейсы, которые соответствуют нашей стратегии и создают новые возможности |
Конструкция «система должна» не обязательна, критерии/требования вполне могут быть в формате «максимизировать/минимизировать показатель N».
Сколько надо: Фитч пишет, что обычно получается 7-12 критериев на принимаемое решение. Лучшие критерии — измеримые и проверенные временем на ряде проектов: паттерн может и должен эволюционировать после каждого использования.
Как пользоваться паттерном? Как чеклистом и основой для плана: в паттерне должны быть все важные вопросы в отношении принимаемого решения. Нужно составить порядок ответа на все вопросы из таблички, начиная с самых критичных; составить список критериев для них; начать разбираться с потенциальными способами решения. Времени это займет порядочно, за день не управиться, но и вопрос создания новой оргспособности — довольно важный.
В работе по паттерну есть цикл, я его затрагивал в первом посте: после каждого принятого решения из DBS нужно вернуться к критериям и пересмотреть их, т. к. выбранный вариант решения может породить некоторое количество новых требований и ограничений. Именно поэтому важно в первую очередь принять самые критичные решения, которые позже будет сложно и дорого откатить — они обеспечат нам набор новых требований.
Как следствие, в фреймворке Фитча нет конфликта принимаемых решений — может быть только конфликт варианта решения с критериями или требованиями.
Что нам дают паттерны принимаемых решений? Они нам дают возможность выработать шаблонный способ принимать сложные решения. Золото для консультантов и работников «знаниевых» профессий.
Примеры паттернов
У Фитча таких паттернов некоторое количество, приведу примеры из исходной статьи.
System/Product Design
Содержит порядка 100 вопросов/принимаемых решений, наиболее часто применялся самим Фитчем.
Enterprise Strategy
Содержит около 60 вопросов/принимаемых решений, является «материнским» паттерном, от которого потом пойдут плясать продуктовые паттерны, паттерны оргспособностей и прочие.
Service Design
Содержит 25 вопросов/принимаемых решений; принимаемое решение Service Delivery Platform может стать триггером для запуска паттерна System/Product Design
Curriculum/Courseware Design
Содержит около 40 вопросов/принимаемых решений, позволяет спроектировать учебный артефакт от уровня индивидуального онлайн-курса до уровня полного университетского курса.
Выводы
Конец второго поста и конец оригинальной статьи. Подведем итоги.
- Фитч нашел способ формализовать и описать сложный домен «принимаемых решений» через понятийный аппарат системной инженерии. Это позволяет разложить принимаемое решение на набор элементов — решаемую проблему, критерии хорошего решения, доступные варианты решения, — и разобраться с ними по очереди. Получился фреймворк для принимаемых решений с основным рабочим артефактом Decision Breakdown Structure.
- С помощью фреймворка и набора методов Фитч предлагает создавать паттерны решений — устойчивые наборы принимаемых решений и наборы критериев для конкретных доменов задач. Паттерны можно переиспользовать в разных проектах для решения похожих задач, что особенно ценно для консультантов: у них есть задача алгоритмизировать любые уникальные задачи, чтобы их можно было решать быстрее или силами менее опытных сотрудников.
Дальше буду разбирать статью Фитча «Decision Patterns. So what?» на ту же тему.