объясни technical-debt --простыми-словами

Технический долг
Каждый shortcut, который ты берешь, чтобы выпустить сегодня, — это кредит. И как любой кредит, он начисляет проценты.
Я почувствовал это телом еще до того, как узнал слово. В начале, когда быстро строил с AI, я говорил ему: "просто сделай, чтобы работало, мне все равно как". И он делал. Штука выходила. Я чувствовал себя гением. Потом через две недели я пытался поменять одну мелочь, и весь карточный домик начинал шататься. Правка на пять минут почему-то съедала полдня. Я не ломал ничего нового. Я просто наконец платил за угол, который срезал, когда чувствовал себя гением.
Этот разрыв между "как же быстро получилось" и "почему теперь все так тяжело" и есть технический долг.
Вот кредит в конкретном виде. Тебе нужно выпустить фичу сегодня вечером. Есть чистый способ ее собрать (занимает день) и хакерский способ (занимает час). Ты выбираешь час. Честно, умный ход. Ты попадаешь в дедлайн. Но ты не сэкономил работу, ты занял ее у будущего себя. И будущий ты возвращает ее с процентами каждый раз, когда трогает этот кусок кода.
Проценты проявляются как трение:
- "Быстрая" правка, которая загадочно занимает неделю.
- Одно изменение ломает три вещи, которые, ты клялся, никак не связаны.
- Новый сотрудник (или свежая сессия AI) тратит вечность, чтобы просто понять, как все связано.
- Тот самый файл, который вся команда тихо боится открывать.
Это не баг. Это счет пришел.
Важная часть: долг — не грех. Вот где люди путаются. Немного долга нормально, и часто это правильный выбор. Ты занимаешь скорость, чтобы успеть к запуску, выиграть клиента, доказать, что идею вообще стоит строить хорошо. Основатели постоянно делают это намеренно. Срезать угол, чтобы выпустить, — не ошибка.
Ошибка — никогда его не отдавать. Долг, который ты игнорируешь, не стоит на месте. Он растет. Срежь достаточно углов и ни разу не вернись, и однажды получишь кодовую базу, где каждое изменение медленное, каждая правка страшная, и все ползет еле-еле. Команда не ленится. Она просто обслуживает проценты по сотне старых shortcut-ов, и на новое строительство ничего не остается.
Почему с AI это бьет сильнее. Когда ты вайбкодишь, за один день можно сгенерировать огромное количество "оно работает". Это потрясающе. И это самый быстрый способ набрать долг, которого ты даже не видишь, потому что код писал не ты и ты не знаешь, какие углы были срезаны. AI оптимизировал под "сделай, чтобы запустилось" — ровно как ты попросил.
Несколько привычек, которые держат счет управляемым:
- Занимай осознанно и вслух. Когда выбираешь хакерский путь, скажи это. Оставь заметку в коде, issue, документе: "это shortcut, вот как потом сделать нормально". Долг, который ты записал, можно выплатить. Долг, который ты забыл, — тот самый, который нападает из-за угла.
- Плати понемногу и часто. Тебе не нужен гигантский проект "почистить вообще все" (такие все равно не случаются). Прибери один грубый край каждый раз, когда ты уже работаешь в этой части кода. Маленькие платежи лучше огромного платежа в конце, который никогда не наступает.
- Попроси AI найти счет. Направь его на грязный участок и спроси прямо: "Какие shortcut-ы здесь есть, и что меня потом укусит?" Он правда хорошо это умеет. Нельзя выплачивать долг, которого ты не видишь, а он подсветит углы, которые ты забыл, что срезал.
Быстрая версия и правильная версия редко бывают одной и той же версией. Это нормально. Просто помни, какую выбрал, и что счет в любом случае придет.