$ sudo teach IT

Введение

Декомпозиция — это разбиение крупной цели на небольшие, исполнимые шаги с понятным результатом и сроком. Без декомпозиции трудно оценить сроки, назначить ответственных и увидеть риски. После разбиения становится ясно, что делать сначала, что можно делать параллельно и как проверить готовность каждого шага. Критерий хорошей декомпозиции прост: каждый шаг укладывается в короткий срок и имеет проверяемый выход.

Ключевые термины

  • Результат — конкретный, проверяемый итог работы, формально принимаемый назначенным владельцем по заранее оговорённым критериям.
  • Пакет работ — связанный блок из нескольких задач, объединённых общей целью и завершающийся промежуточным, измеримым результатом.
  • Задача — минимальный шаг длительностью обычно 0,5–2 рабочего дня, с чётким описанием, сроком, ответственным и измеримым «выходом».
  • Зависимость — внешнее или предшествующее условие (доступ, согласование, результат другой задачи), без которого задача не может начаться или быть принята; должна иметь владельца и срок.
  • Критерии готовности — краткий чек-лист признаков «сдано», включающий функциональные и нефункциональные требования, по которым принимающая сторона подтверждает завершение.

Метод: как разложить работу по шагам

  1. Сформулируйте конечный результат одним предложением.
  2. Определите 3–7 промежуточных результатов (пакеты работ).
  3. Разделите каждый пакет на короткие задачи; у каждой — проверяемый выход.
  4. Для задач укажите критерии готовности и зависимости.
  5. Проверьте порядок: что последовательно, что параллельно.
  6. Оцените длительность. Если задача > 2 рабочих дней — дробите.

Пример №1: стройка дома

Цель: построен одноэтажный дом, в нём можно жить.

Пакеты работ:

  1. Фундамент
  2. Коробка (стены, крыша)
  3. Коммуникации (электрика, вода)
  4. Отделка

Задачи (с критериями/зависимостями):

  • Фундамент: разметка — готово, когда колышки и шнур по плану; зависимость — утверждённый чертёж.
  • Фундамент: заливка — готово, когда бетон залит и выстоялся; зависимость — погода, доставка бетона.
  • Коробка: кладка стен — готово, когда стены по уровню и высоте; зависимость — готовый фундамент.
  • Крыша: монтаж — готово, когда кровля установлена и не течёт при проверке водой.
  • Электрика: проводка — готово, когда кабели проложены, автоматы собраны, проверка тестером пройдена; зависимость — проект электрики.
  • Вода: трубы — готово, когда выдержан опрессовочный тест.
  • Отделка: полы — готово, когда уложено покрытие, нет люфтов и скрипов.

Пример №2: написание книги

Цель: готова и издана книга объёмом N страниц.

Пакеты работ:

  1. План содержания
  2. Черновик
  3. Редактура
  4. Вёрстка и печать

Задачи:

  • План содержания — готово, когда утверждён список глав и аннотаций.
  • Черновик главы 1 — готово, когда текст написан и передан редактору.
  • Редактура главы 1 — готово, когда правки внесены, орфография проверена.
  • Вёрстка — готово, когда макет PDF соответствует требованиям типографии.
  • Печать — готово, когда получен тираж и проверен контрольный экземпляр.

Пример №3: оплата картой на сайте

Цель: пользователь может оплатить картой; при ошибке видит понятное сообщение; транзакции видны админу.

Пакеты работ:

  1. Форма оплаты
  2. Интеграция с провайдером
  3. Админ-просмотр транзакций
  4. Проверка сценариев

Задачи:

  • Форма: отобразить поля и отправить тестовый платёж — готово, когда операция проходит на тестовом стенде; зависимость — тестовые ключи.
  • Ошибка оплаты: показать понятное сообщение при отклонении — готово, когда вместо кода выводится текст для пользователя.
  • Интеграция: сохранить статус платежа — готово, когда «успех/ошибка» записывается в базу.
  • Админка: показать 3 последние транзакции — готово, когда админ видит номер заказа, сумму, статус.
  • Проверка: пройти 3 сценария (успех, отказ, возврат) — готово, когда чек-лист пройден без критических ошибок; зависимость — доступ на стенд.

Что будет, если плохо декомпозировать?

Плохая декомпозиция — это крупные и расплывчатые задачи без чёткого результата и видимых зависимостей. В такой конфигурации сроки системно срываются: объём работ недооценивается, детали всплывают поздно, а изменения обходятся дороже. Зависимости обнаруживаются в конце — не хватает доступов, не пройдены согласования, не забронированы внешние проверки. Команда не может работать параллельно: одна «толстая» задача занята неделями, остальные простаивают. Критерии готовности неясны, поэтому работа часто «возвращается на доработку», множатся циклы правок, страдает качество — тесты и проверки откладываются «на потом», и дефекты накапливаются. Фокус теряется, появляется «ещё чуть-чуть дописать» без оценки влияния (scope creep), растёт когнитивная нагрузка и стресс, а интеграционные проблемы всплывают уже в финале.

Простые аналогии помогают увидеть риски заранее. В стройке дома обещание «соберём коробку за месяц» без разбиения по этапам приводит к тому, что перекос фундамента обнаруживается на монтаже крыши — поздно и дорого исправлять. В написании книги задача «сдать черновик за две недели» без плана глав означает, что ключевые темы окажутся пропущены уже на этапе вёрстки.

Распознать проблему можно по повторяющимся симптомам: задачи кочуют из недели в неделю без закрытия, статусы звучат как «работаем/почти готово» без осязаемого результата, длительность типовой задачи стабильно превышает два рабочих дня и всё равно не укладывается, а возвраты «на доработку» становятся нормой. Антидот прямолинеен: резать работу на короткие и проверяемые шаги с явными зависимостями и критериями готовности, показывать промежуточную ценность как можно раньше (вертикальные срезы), держать размер типовой задачи в диапазоне 0,5–2 дня и намеренно планировать параллельность там, где это возможно.

Плохой и хороший примеры декомпозиции

Плохая (слишком крупно, без результатов):
— «Сделать оплату» — 3 недели
— «Сделать админку» — 2 недели
— «Протестировать» — 1 неделя
Почему плохо: нет промежуточной ценности, неясно, что именно «готово», риски проявятся в конце.

Хорошая (коротко и проверяемо):
— «Форма отправляет тестовый платёж на стенд; платёж проходит»
— «При отказе видно понятное сообщение»
— «Статус сохраняется в базе»
— «Админ видит 3 последние транзакции»
— «Три сценария проверены по чек-листу»
Почему хорошо: каждый шаг даёт осязаемый результат; прогресс можно показать; ошибки находятся раньше.

Практические правила

  • Формулируйте задачи через результат: что появится или что изменится.
  • Длительность типовой задачи — до двух рабочих дней. Дольше — делите.
  • Для задач фиксируйте критерии готовности и зависимости (с владельцем и сроком).
  • Держите число пакетов работ в диапазоне 3–7.
  • Сначала — то, без чего остальное не начнётся; остальное — параллельно.

Итог

Декомпозиция делает работу управляемой. Когда цель разобрана на краткие, проверяемые шаги с понятными зависимостями, команда быстрее понимает, что делать сейчас, что можно делать параллельно и как проверять готовность. Такой план легче оценивать, проще корректировать и удобнее объяснять всем участникам — от новичка до руководителя.