Краткий ответ

Технический долг измеряется не качеством кода, а стоимостью, которую он налагает на каждое будущее изменение. Поэтому приоритет отдается не «самому неприглядному», а тому, что делает следующую работу наиболее дорогостоящей.

Простое правило быстрого отбора: элемент, из-за которого любое изменение в его области требует обширного регрессионного тестирования, поднимается на первое место. Он удваивает стоимость любой другой действия в плане.

Оценка по четырем параметрам

ПараметрВопросВес
Бизнес-рискЧто произойдет, если это откажет при пиковой нагрузке?Высокий
Частота использованияКак часто в день к этому обращаются?Высокий
ЗависимостьСколько других областей заблокировано из-за этого?Средний
ТрудоемкостьСколько стоит исправить это в контролируемой среде?Обратный

Оценка не является точной наукой. Ее истинная ценность в том, что она инициирует открытый диалог между теми, кто понимает технический риск, и теми, кто осознает деловую проблему, создавая порядок, который можно защитить перед руководством.

Три типа долга, которые обходят очередь

Независимо от оценки, три типа долга выходят на первое место:

  1. Долг, блокирующий тестирование — отсутствие адекватной среды Sandbox или тестовых данных. Любое другое исправление, сделанное без этого, выполняется вслепую.
  2. Долг в разрешениях — модель видимости, потерявшая логику, является активным регуляторным риском, а не неудобством.
  3. Долг, сосредоточенный в одном человеке — когда только один человек понимает компонент, риск является не техническим, а организационным.

Как представить долг для получения бюджета

Руководство не финансирует «чистку автоматизаций». Оно финансирует сокращение времени и стоимости. Перевод делается в трех строках для каждого элемента: сколько часов поддержки он потребляет в квартал, сколько дней он добавляет к каждому изменению в своей области и какова угроза, если он откажет.

Тот, кто представляет «три запроса на изменение в квартал, каждый из которых продлевается на две недели из-за одного и того же компонента», получает одобрение. Тот, кто представляет диаграмму зависимостей, — нет.

Постоянная квота, а не разовая акция

Неудачный шаблон: крупный проект по очистке раз в два года. Работающий шаблон: постоянная квота в 15-20% от каждой волны, выделяемая на технический долг, устанавливаемая заранее и не подлежащая обсуждению в каждом спринте.

Наряду с квотой требуется как минимум одно правило предотвращения — например, запрет на добавление новой автоматизации к объекту, который уже содержит несколько, до их объединения. Без предотвращения, скорость образования долга превышает скорость очистки. Взаимосвязь с инфраструктурой разработки подробно описана в стратегии Sandbox и DevOps.

Резюме

Приоритизация технического долга — это упражнение по экономике, а не по эстетике: исправлять то, что удорожает следующее изменение, уделять первоочередное внимание тому, что блокирует тестирование и создает риски, и закреплять квоту, которая предотвращает повторение. Список из десяти ранжированных элементов ценнее ста картографированных элементов.