Перейти к основному содержимому
Mobius
Средний

Что такое технический долг (Technical Debt)

Другие названия: Technical Debt, техдолг, технологический долг, Tech Debt

Определение

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

Почему это важно

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

Частые ошибки

Считать любой технический долг небрежностью, хотя некоторые срезанные углы это правильное бизнес-решение.

Практический примерУсловный пример

Прайс-лист в трех местах

Перед праздничным сезоном разработчик сайта бронирования кладет прайс-лист в три места в коде, чтобы запуститься вовремя.

  1. Срезанный угол

    Сайт запускается вовремя. Угол срезали намеренно и разумно.

  2. Проценты

    Каждое следующее изменение цены требует трех правок вместо одной.

  3. Цена

    Одну правку пропускают, и клиент видит при оплате старую цену.

  4. Погашение основного долга

    Команда тратит одну запланированную рабочую сессию, чтобы перенести цены в одно место.

  5. После

    С этого момента изменение цены это одна правка.

Для запуска срезать угол было правильно. Дорого обошлось то, что его оставили на целый год.

Срезать углы сейчас, платить проценты потом

Без погашения линия срезанных углов стартует впереди, потом каждое изменение стоит дороже, и чистая линия ее обгоняет.Сделано функцийВремяЧистая архитектураСрезанные углыЗдесь процентыпревышаютсэкономленное...

Без погашения линия срезанных углов стартует впереди, потом каждое изменение стоит дороже, и чистая линия ее обгоняет.

Форма кривых: Martin Fowler, Design Stamina Hypothesis, 20 июня 2007. Без реальных данных и без правила, сколько гасить.

Два способа построить один и тот же продукт, показанные схематично, без реальных данных. Золотая линия срезает углы, зеленая держит архитектуру чистой.

Четыре вида технического долга

СознательныйНеосознанный

Безрассудный

«Нам некогда проектировать»

Выбран сознательно, цену никто не взвешивал.

«А что такое слоистая архитектура?»

Взят по незнанию, из-за нехватки опыта.

Разумный

«Выпускаем сейчас, разберемся потом»

Осознанный выбор, цена известна и запланирована. Как прайс-лист из примера.

«Теперь мы знаем, как надо было строить»

Обнаруживается только после постройки. Это часть обучения.

Martin Fowler, Technical Debt Quadrant, 14 октября 2009.

Квадрант Мартина Фаулера делит долг по двум вопросам: выбирали ли его сознательно и было ли это разумно. Золотая клетка: срезанный угол из примера.

Определение

Метафору придумал Уорд Каннингем в 1992 году, в докладе об опыте разработки системы WyCash на конференции OOPSLA: по его словам, выпустить код в первой версии значит влезть в долг, и небольшой долг ускоряет разработку, пока его быстро возвращают, переписывая код. Основной долг это работа, которая нужна, чтобы исправить срезанный угол. Проценты это дополнительные усилия, которые платят при каждом следующем изменении этого кода, пока основной долг не погашен. Позже Каннингем объяснял, что никогда не имел в виду разрешение писать плохой код: смысл в том, чтобы код отражал ваше текущее понимание задачи, пусть и неполное, и менялся по мере того, как понимание растет. Квадрант технического долга Мартина Фаулера (2009) делит долг по двум осям: безрассудный или разумный, намеренный или ненамеренный. «У нас нет времени на проектирование» это безрассудный и намеренный долг. Выпустить сейчас, понимая, во что обойдется срезанный угол, это разумный и намеренный долг. «Теперь мы знаем, как надо было это построить» это разумный и ненамеренный долг, и он случается даже у хороших команд.

Почему это важно

Признаки узнаваемы: оценки для мелких правок все растут, исправление в одном месте ломает другое, только один разработчик решается трогать определенную часть, а команда начинает просить все переписать. Долг не всегда ошибка. Срезанный угол, который вовремя выводит на рынок MVP (простую первую версию для проверки), бывает верным решением, а прототип, который выбросят, вообще не нужно гасить. Опасен долг, который никто не решал брать и никто не отслеживает. Гипотеза Фаулера о «выносливости дизайна» (2007) описывает эту закономерность: вложения в хороший дизайн позволяют команде дольше работать в высоком темпе, а запущенный дизайн кажется быстрее только поначалу. Код, который написал ИИ и никто не прочитал, как при вайб-кодинге, это долг с первого дня.

Напрямую связано: Вайб-кодинг (Vibe Coding), Git (система контроля версий), MVP (минимально жизнеспособный продукт).

Советы по улучшению

  • Ведите видимый список известного долга в бэклоге, рядом с функциями, чтобы он открыто боролся за время.
  • Гасите долг в той части, которую все равно собираетесь менять: там самые высокие проценты.
  • Выделяйте фиксированную долю времени разработки на крупные пункты и дайте команде предложить ее размер, потому что никакое исследование не задает конкретную цифру.
  • Осознанно решайте, какой долг оставить, например долг в прототипе, который выбросят.
  • Просите автоматические тесты перед чисткой, чтобы рефакторинг (перестройка кода без переписывания с нуля) не сломал то, что уже работает.

Частые ошибки

  • Игнорировать долг, пока мелкие правки не начнут занимать недели, а переписывание не покажется единственным выходом.
  • Считать долг проблемой одних разработчиков, хотя он проявляется в более медленной работе и более высоких расходах.
  • Срезать угол и не записать это, так что никто не вспомнит, что долг надо вернуть.
  • Верить, что фиксированный процент времени на долг это доказанное правило, хотя никакое исследование его не задает.

Связанные термины

ТехнологииБазовый

Вайб-кодинг (Vibe Coding)

Вайб-кодинг (vibe coding) это создание программ, когда вы описываете ИИ словами, что нужно, запускаете написанное и не читаете код. Хорошо для прототипа.

ТехнологииСредний

Git (система контроля версий)

Git это бесплатная система контроля версий: она сохраняет версию кода при каждом коммите, поэтому видно, кто что менял, и можно вернуться к прошлой версии.

СтартапыБазовый

MVP (минимально жизнеспособный продукт)

MVP (минимально жизнеспособный продукт) это самая простая версия продукта для реальных клиентов, которая показывает, нужен ли он, до полной разработки.

Управление проектамиСредний

YAGNI (вам это не понадобится)

YAGNI (You Aren't Gonna Need It) это принцип из экстремального программирования: не делать функцию, пока в ней нет реальной нужды, а есть лишь догадка.

Управление проектамиБазовый

Scrum (Скрам)

Scrum (Скрам) это легкий фреймворк: небольшая команда работает спринтами до месяца, каждый день сверяется за 15 минут и в конце показывает работающий результат.

ПродуктСредний

Прототип (Prototype)

Прототип (prototype) это дешевая ранняя версия продукта или услуги. Ее показывают людям, чтобы понять, что исправить, до того как строить настоящую.

Короткая проверка

Какая из этих ситуаций это технический долг?

Выберите ответ

Часто задаваемые вопросы

Нужно ли понимать технический долг до открытия бизнеса?
Идею да: срезанные углы в коде это взятое взаймы время, которое потом возвращают с процентами. Это объясняет, почему разработчики иногда просят время на наведение порядка вместо новых функций и почему это время не потеряно.
Когда технический долг становится важен для нового бизнеса?
С первым прототипом или MVP. На этом этапе срезать углы часто правильно, если кто-то их записывает и планирует, когда вернуть долг.
Плохо ли запускаться с техническим долгом?
Нет, намеренно срезанный угол, чтобы раньше проверить спрос, это нормальный компромисс. Вредит долг, который никто не выбирал, не записывал и не собирается возвращать.
Как совместить качество кода и сроки запуска?
Решите, какие части нужно сразу строить как следует, например платежи, вход и данные клиентов, а где временный срезанный угол допустим, например ручной шаг за кулисами. Запишите срезанные углы, чтобы команда к ним вернулась.
Почему технический долг важен для работающего бизнеса?
Потому что проценты растут с каждым изменением. Разработчики тратят больше времени на обход старых срезанных углов, чем на новое, и каждая новая функция стоит дороже, чем должна.
Что будет, если бизнес игнорирует технический долг?
Мелкие правки занимают все больше времени, исправления ломают другие части, а некоторые участки понимает только один разработчик. В конце концов команда просит все переписать, а это самый дорогой способ вернуть долг.
Как гасить технический долг, не останавливая текущую работу?
Гасите его там, где и так работаете: если новая функция затрагивает участок с долгом, приведите его в порядок в рамках той же задачи. На крупные пункты выделяйте фиксированную долю каждого цикла и дайте команде предложить ее размер.
Как объяснить технический долг партнеру, который не разбирается в технике?
Как кредит. Срезанный угол купил скорость сегодня, а каждое изменение этого кода платит проценты лишними часами, пока кредит не погашен.
Что такое технический долг на обычном русском?
Дополнительная работа, за которую вы заплатите позже из-за быстрого решения, выбранного сегодня. Быстрое решение это кредит, а лишние часы на каждом следующем изменении это проценты.
Опасно ли гасить технический долг?
Некоторый риск есть, потому что, меняя работающий код, его можно сломать. Автоматические тесты и рефакторинг маленькими шагами держат риск низким.
Нужен ли отдельный разработчик, чтобы управлять техническим долгом?
Нет, им управляет та же команда, которая работает с кодом, в своих обычных циклах. Ваша часть в том, чтобы выделить на это время и попросить показать список долга.
Чем технический долг отличается от ошибки в программе?
Ошибка ломает что-то прямо сейчас. Технический долг это код, который работает, но устроен так, что каждое следующее изменение идет медленнее.

Источники: Ward Cunningham, The WyCash Portfolio Management System, OOPSLA 1992 experience report (c2.com/doc/oopsla92.html), Martin Fowler, Technical Debt Quadrant (martinfowler.com/bliki/TechnicalDebtQuadrant.html), 14 October 2009, Martin Fowler, Design Stamina Hypothesis (martinfowler.com/bliki/DesignStaminaHypothesis.html), 20 June 2007

Последняя проверка: 2026-09-23

Работал с

Что говорят клиенты

Из разных сфер и на разных этапах бизнеса

Дэн Манто

Eclipse Capital

Инвестиции и финансы в недвижимости, США

Арти МакЛабин

GameReady

Обучение и аутсорсинг в разработке игр, международная компания

Анна, Косметолог

Анна

Косметолог

После курса косметологии в одной из ведущих компаний я была в растерянности. Не знала, как открыть бизнес, что продавать из дома и как привлекать клиентов. С тех пор как я обратилась в Mobius, всё изменилось. Мы составили чёткий план с понятными шагами, без лишних рисков. Сегодня я вижу результаты, расту и развиваюсь каждый месяц.

Марк, Массажист, Ган-Явне

Марк

Массажист, Ган-Явне

Когда я закончил курс массажа, я представлял себе всё совсем иначе. Оказалось, что это тяжёлая сфера и найти финансовую стабильность непросто. Когда я пришёл в Mobius, что-то изменилось. Мы начали планомерную работу и составили бизнес-план. Без Mobius? Наверное, я бы сдался. Сегодня я верю в себя и в свой путь.

Технологические решения не по силам вашей команде?

Алекс помогает бизнесам в Израиле выбирать технологии под бизнес, а не под моду. Первый звонок бесплатный.

+972 055-248-6151. Лучше в WhatsApp: большую часть дня я на встречах и отвечаю, как только освобождаюсь.