Техники Руководство BABOK v3, 10.22
Функциональная декомпозиция
Коротко Функциональная декомпозиция (functional decomposition) разбивает что-то большое и сложное — процесс, систему, продукт или результат проекта — на меньшие части, уровень за уровнем, пока каждая часть не станет достаточно маленькой, чтобы её понять, оценить или кому-то поручить. Части на каждом уровне в сумме должны давать целое.
По материалам: IIBA, Руководство BABOK® v3, техника 10.22 «Функциональная декомпозиция»; Watermark Learning, BABOK v3 Study Tables (2016), техника 10.22.
На этой странице
Что это#
Руководство BABOK® описывает функциональную декомпозицию как разделение сложного элемента высокого уровня на меньшие подмножества для изучения или анализа. При этом исходят из того, что подкомпоненты вместе полностью описывают родительский элемент.
Техника строится вокруг четырёх элементов:
- Цели декомпозиции — зачем вы её делаете: чтобы понять, определить границы, оценить, распределить работу, измерить.
- Предметы декомпозиции — что вы разбиваете. Типичные предметы: бизнес-результаты, предстоящая работа, процессы, функции, подразделения, компоненты решения, продукты и услуги, принимаемые решения.
- Уровень декомпозиции — насколько глубоко идти. Останавливайтесь, когда каждая часть достаточно ясна для цели; глубже — не значит лучше.
- Представление — как показать результат: дерево, список с отступами, вложенные прямоугольники или ментальная карта.
Корректность декомпозиции обеспечивают два правила. Соседние элементы (дочерние узлы одного родителя) не должны пересекаться, а вместе они должны охватывать всё, что входит в родителя. Многие практики знают это как принцип MECE (mutually exclusive, collectively exhaustive): «взаимоисключающие, совместно исчерпывающие».
Когда применять#
Руководство BABOK применяет технику широко: в задаче «Планирование подхода к бизнес-анализу»; в задачах «Трассировка требований» и «Поддержание требований» (разбиение границ решения на компоненты); во всей области знаний «Анализ стратегии» (понимание сложных текущих и будущих состояний и компонентов стратегии изменений); в задачах «Спецификация и моделирование требований» и «Определение архитектуры требований». Применяйте её, когда:
- проблема или система слишком велика, чтобы обсуждать её целиком;
- нужно согласовать границы, распределить работу или оценить трудоёмкость;
- нужно определить метрики для каждой части процесса;
- вы структурируете набор требований так, чтобы ничего не упустить.
Слабые места техники стоит знать. На нижних уровнях информации может не хватать или она может оказаться неверной; проработка каждой ветви может занять много времени; у заинтересованных сторон может не хватить глубины знаний или времени, чтобы вместе разбирать большую декомпозицию. Кроме того, она показывает только структуру, но не последовательность, сроки или потоки данных: для них дополните её моделированием процесса или диаграммами потоков данных.
Как это делать#
- Сформулируйте цель. На какой вопрос ответит декомпозиция? От этого зависят предмет и глубина.
- Выберите один предмет и одно основание для разбиения. Например, процесс разбивайте по этапам, а систему — по функциям. Если смешать основания на одном уровне (одни дочерние элементы по этапам, другие по подразделениям), появятся пересечения.
- Точно назовите верхний узел и укажите согласованную границу.
- Разбейте его на 3–7 дочерних элементов. Функции и процессы называйте по схеме «глагол + существительное» («Забронировать ремонт»).
- Проверяйте каждый уровень. Пересечения: может ли какая-то работа относиться к двум соседним элементам? Пробелы: есть ли в родителе что-то, что не покрыто ни одним дочерним элементом?
- Идите глубже только там, где это нужно для цели. Ветви могут заканчиваться на разной глубине.
- Пронумеруйте узлы (1, 1.1, 1.1.1), чтобы ссылаться на них в требованиях, оценках и при трассировке.
- Проверьте дерево вместе с заинтересованными сторонами, которые знают каждую ветвь, и поддерживайте его в актуальном состоянии при изменении границ.
Пример#
«Мастерская» (вымышленная сеть веломастерских) должна согласовать границы своей новой системы записи и ремонта. Аналитик декомпозирует функцию «Управлять ремонтами»:
Показать текстом
1 Управлять ремонтами
1.1 Забронировать ремонт
1.1.1 Выбрать мастерскую и время
1.1.2 Описать велосипед и неисправность
1.1.3 Подтвердить бронь и отправить напоминание
1.1.4 Перенести или отменить бронь
1.2 Принять велосипед
1.3 Диагностировать и оценить стоимость
1.3.1 Диагностировать неисправность
1.3.2 Подготовить смету
1.3.3 Получить согласие клиента
1.4 Выполнить ремонт
1.4.1 Заказать недостающие запчасти
1.4.2 Фиксировать ход ремонта
1.5 Информировать клиента о статусе
1.6 Выдать велосипед и принять оплатуПроверяя пробелы, владелец спрашивает, куда относятся гарантийные возвраты. Они никуда не подходят, поэтому аналитик добавляет узел «1.7 Обработать гарантийный возврат». Проверяя пересечения, команда замечает, что и «1.5 Информировать клиента о статусе», и «1.1.3 Подтвердить бронь и отправить напоминание» отправляют сообщения. Договариваются, что 1.5 охватывает только сообщения после того, как велосипед сдали в мастерскую, и записывают эту границу в описание узла.
Дальше пронумерованное дерево служит трём целям: плану релизов (сначала 1.1 и 1.5), оценке (каждый лист оценивается отдельно) и трассировке (каждое требование ссылается на лист).
Частые ошибки#
- Разные основания разбиения на одном уровне → выбирайте одно измерение на уровень (этапы, функции или организационные единицы).
- Пересекающиеся соседние элементы → напишите для каждого узла границу в одну строку и проверьте её на реальных случаях.
- Пропущенные части → для каждого родителя спрашивайте «Что ещё здесь происходит?» и сверяйтесь с теми, кто делает работу.
- Везде слишком глубоко → останавливайтесь, когда узел достаточно ясен для цели.
- Структуру путают с последовательностью → дерево декомпозиции — не схема процесса; поток рисуйте отдельно.
- Дерево устаревает → обновляйте его при изменении границ: от него зависят оценки и трассировка.
Чек-лист#
- Цель декомпозиции сформулирована.
- У верхнего узла есть согласованная граница.
- На каждом уровне используется одно основание разбиения.
- Соседние элементы не пересекаются и вместе покрывают родителя.
- Глубина соответствует цели.
- Узлы названы единообразно и пронумерованы.
- Заинтересованные стороны проверили каждую ветвь.
Источники и что почитать#
- IIBA. A Guide to the Business Analysis Body of Knowledge (BABOK® Guide), version 3. International Institute of Business Analysis, 2015. Рус. изд.: Руководство к своду знаний по бизнес-анализу (Руководство BABOK®), версия 3.0. Техника 10.22 «Функциональная декомпозиция».
- Watermark Learning. BABOK v3 Study Tables. 2016 (учебное пособие к Руководству BABOK). Техника 10.22.