Veltos.Tech

Разработка

Технический долг

Также называют: техдолг, технический долг в разработке

Определение

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

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

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

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

Смежные термины

Услуги по теме

Почитать подробнее

Нужна помощь с этим на практике?

Мы не только объясняем термины, но и делаем это руками. Опишите задачу — разберём и пришлём смету по этапам.