Вначале нужно идентифицировать ТД: какие накопились проблемы, почему они возникли (нехватка времени, плохая архитектура, костыли, недостаточное покрытие тестами и т.д.). Для этого нужны код-ревью, аудит системы, общение с разработчиками и пользователями продукта.
Второе – спланировать действия:
- Составить бэклог задач по техническому долгу.
- Рассортировать задачи по приоритетности (степени важности и сложности выполнения). Для этого можно использовать Матрицу Эйзенхауэра, фреймворк RICE. Сначала нужно браться за то, что требует немедленного внимания.
- Рассчитать, хватит ли ресурсов на каждую задачу. Возможно, потребуется больше сотрудников или временное перераспределение тасков.
- Установить сроки выполнения.
- Распределить задания между разработчиками.
Третье – продумать метрики выполнения техдолга. Соответствие кода определённым стандартам, процент покрытия тестами и документацией и т.д. Метрики не должны вызывать несогласие у команды – ей по ним отслеживать прогресс борьбы с ТД.
Четвёртое – выполнять задачи по беклогу. Самый продуктивный метод – закладывать некоторое время от разработки только на технический долг. Можно посвящать 10-30% от очередной итерации или целую итерацию (между проектами), или день в одну-две недели. Крупные компании, которые не справляются с техдолгом, выделяют на него целые группы разработчиков или передают на аутсорс – например, нам.