Термин · Глоссарий B2B-ПО

Техдолг

Техдолг (технический долг) – метафора, введённая Уордом Каннингемом (1992), обозначающая совокупность компромиссных технических решений, принятых ради скорости разработки, которые потребуют рефакторинга в будущем. Подобно финансовому долгу, накапливает «проценты» в виде снижения скорости разработки.

Буква «Т» В категориях: 4 Платформ: 6+

Введение

Технический долг (техдолг, technical debt) – метафора, введённая Уордом Каннингемом в начале 1990-х годов. Подобно финансовому долгу, технический долг позволяет «взять взаймы» у будущего: принять быстрое, но не лучшее техническое решение сейчас, чтобы успеть к дедлайну. Расплата – «проценты» в виде снижения скорости разработки, роста числа багов и сложности поддержки системы.

Каннингем описал это так: «Не совсем правильный код, который мы когда-нибудь исправим». Не всякий техдолг является ошибкой – иногда сознательный техдолг оправдан для быстрого вывода продукта на рынок.

История и контекст

Уорд Каннингем впервые использовал метафору долга в 1992 году для объяснения менеджерам необходимости рефакторинга. Мартин Фаулер развил концепцию, предложив «квадрант технического долга» по осям «осознанный/неосознанный» и «благоразумный/безрассудный». Agile Alliance включила управление техдолгом в число ключевых инженерных практик XP и современного Agile.

Как это работает

Виды технического долга:

  • Долг по коду – спагетти-код, дублирование, отсутствие тестов, нарушение SOLID;
  • Архитектурный долг – тесная связанность (coupling), монолит вместо микросервисов, неверный выбор БД;
  • Технологический долг – устаревшие библиотеки, deprecated API, legacy-фреймворки;
  • Инфраструктурный долг – ручные деплои, отсутствие IaC, непропатченные серверы;
  • Долг по тестированию – недостаточное покрытие, нет интеграционных тестов, нет CI.

Управление техдолгом включает его выявление (code review, статический анализ – SonarQube, Checkstyle), оценку в условных «долговых единицах» и включение задач по рефакторингу в бэклог наравне с новым функционалом.

Где применяется

  • Любая команда разработки – мониторинг состояния кодовой базы через инструменты статического анализа;
  • Legacy-системы при миграции – выявление и поэтапная ликвидация накопленного долга;
  • Agile-процессы – выделение 20% спринта на технические задачи;
  • M&A и due diligence – оценка техдолга при покупке технологического продукта.

Преимущества управления и ограничения

Зачем управлять техдолгом: снижение скорости разработки («interest»); рост числа регрессионных багов; сложность онбординга новых разработчиков; риски безопасности из-за устаревших зависимостей.

Ограничения: нулевой техдолг недостижим и нецелесообразен; некоторые решения становятся техдолгом только ретроспективно; избыточный рефакторинг «ради чистоты» без бизнес-ценности – waste.

Связь с другими понятиями

Техдолг особенно опасен в монолитных архитектурах из-за высокой связанности. Переход к микросервисам – один из способов ликвидировать архитектурный долг, но сам создаёт операционный долг. CI/CD и автоматические тесты – основные инструменты контроля техдолга. Feature Flag может стать источником техдолга (flag debt), если флаги не удаляются вовремя. Domain-Driven Design помогает избежать накопления архитектурного долга с самого начала.

Понятия из глоссария Цифрового маркетплейса, которые часто встречаются вместе с термином «Техдолг».

Платформы класса «Техдолг»

Решения из каталога Цифрового маркетплейса, относящиеся к этому классу ПО. Карточки ведут на полные карточки платформ с тарифами, обзорами и кейсами внедрения.

Онколинк

Онколинк

Разработка ПО
Платформа для управления онкологическими пациентами и координации медицинского обслуживания. Входит в Единый р...
Цена по запросу
Подробнее →
MO

Moon

Разработка ПО
Moon - platforma avtomatizirovannogo testirovaniya veb-prilozheniy v nastol'nykh i mobil'nykh brauzerakh po pr...
Цена по запросу
★ 4.2
Подробнее →
Модуль обмена C3D Converter

Модуль обмена C3D Converter

Разработка ПО
Модуль обмена C3D Converter отвечает за чтение и запись 3D-моделей в файлах нейтральных форматов и в собственн...
Цена по запросу
Подробнее →
JaCarta АРМ УЦ

JaCarta АРМ УЦ

Разработка ПО
ПО JaCarta АРМ УЦ - приложение, позволяющее генерировать ключевые пары с использованием встроенных криптографи...
Цена по запросу
★ 4.7
Подробнее →
АВ

Автограмма

Разработка ПО
Автограмма — визуальная среда разработки встраиваемых систем управления (No-Code/IDE) для промышленной автомат...
Цена по запросу
Подробнее →

Категории каталога

Разделы каталога Цифрового маркетплейса, в которые входят решения, использующие «Техдолг».

Где применяется

Отрасли, в которых «Техдолг» используется на практике. Откройте отраслевой раздел Цифрового маркетплейса, чтобы увидеть подходящие решения, кейсы и новости.

Частые вопросы про Техдолг

Кто придумал метафору технического долга?

Уорд Каннингем – один из авторов Agile Manifesto и создатель первой wiki. Метафору он ввёл в начале 1990-х годов для объяснения менеджерам, почему необходимо тратить время на рефакторинг.

Всегда ли техдолг плох?

Нет. Осознанный, благоразумный техдолг – принять быстрое решение с планом его улучшения – нормальная инженерная практика. Проблема в безрассудном или неосознанном долге, когда команда не понимает его масштабов.

Как измерить технический долг?

Инструменты статического анализа (SonarQube, NDepend) оценивают долг в «человеко-днях» на исправление. Косвенные метрики: время на реализацию новой фичи, частота регрессий, покрытие тестами, цикломатическая сложность.

Что такое квадрант Фаулера?

Матрица 2×2: оси «осознанный/неосознанный» и «благоразумный/безрассудный». Дает 4 типа долга. Хуже всего – безрассудный неосознанный: команда не понимает, что делает неправильно.

Как работать с техдолгом в Agile?

Включать технические задачи (рефакторинг, обновление зависимостей) в бэклог с оценкой бизнес-ценности. Популярная практика – правило 20%: 20% мощности спринта на технические задачи.