TGViewer
asisakov asisakov @asisakov_channel · 4.07K subscribers
Post #986 1.88K
Техдолг платежом красен

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

На самом деле релиз может быть и не сырой, а даже полностью упакованный и готовый. И при этом все равно существует вероятность возникновения техдолга - например, не написали документацию. Вместо идеалистичной цели полного устранения техдолга (пишите в комментариях, почему это осуществимо или нет), можно научиться осознанно им управлять - то есть, если долг контролируется, он перестает быть такой ноющей проблемой и по сути превращается в инструмент работы с рисками.

Не пишите хреновый код, и не будет вам техдолга

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

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

При этом естественно техдолг не возникает на ровном месте:
▫️Могут быть жесткие дедлайны или сроки, либо сильная динамика требований (тяжело влиять на это - вдруг у вас сильнорастущий бизнес), вплоть до смены стратегии
▫️Классика в неоптимальных процессах: допустим, отсутствие автоматизации тестирования, ну или плохое проектирование (влиять чуть легче)
▫️Может быть и недостаток компетенций (влиять легче всего)

Самое главное, это обнаружить скрытые угрозы и затем контролируемо над ними работать. По сути это и есть управление техдолгом, когда мы находим, оцениваем, планируем и устраняем его. Но при этом еще очень важно и предотвратить накопления нового долга!

Что делать?

Если вы внимательно читали предшествующие абзацы, я думаю вы уверенно ответите, что сначала техдолг надо обнаружить, или сделать видимым. Идем в обратном порядке от последствий к причинам: симптомы → последствия → технический долг → причины. Например, замедление разработки (симптом) может указывать на сложный для понимания код (технический долг), возникший из-за спешки при реализации (причина). Ну и анализируем все артефакты разработки: часто меняющиеся требования, монолитность, проблемы с масштабируемостью, отсутствие тестов, уязвимости, ручное развертывание, долгие и непрозрачные CI/CD-пайплайны.

Далее классифицируем по сложности устранения и срочности, и обязательно проводим экономическую оценку (не только стоимость исправления, но и стоимость отказа от исправления!).

Далее процессная база к устранению техдолга:

1️⃣Техдолг превращается в задачу
2️⃣Задачи приоритизируются
3️⃣Выделяем X% от спринта на техдолг

ну и еще 😎 про предотвращение непреднамеренного долга:

▫️Глубокий анализ требований, с документированием и вовлечением команды в обсуждение (вспоминаем дизайн-док)
▫️Применение архитектурных принципов, документирование решений, архревью (снова вспоминаем дизайн-док)
▫️Единые стандарты разработки, тестирование и статический анализ
▫️Ну и естественно мониторинги

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

Кстати, на Хабре есть очень хорошая статья по этой теме.

#softskills #career
martinfowler.com bliki: Technical Debt Quadrant People argue about whether some kinds of bad code count as Technical Debt. I prefer to focus on the interest/principal decision, and recognize debt has different causes.
  • 🔥 7
  • ❤ 6
  • 👍 4
More from @asisakov_channel
  1. Sep 24, 2026Post #1428
  2. Sep 24, 2026Оказывается недавно вышел Opus 5.5, который типа догоняет Fable 5.1, и при этом дешевле на…
  3. Sep 23, 2026Таки вы не Исаков, а Исааков 😏 Шекели жалко
  4. Sep 23, 2026Недавно во второй раз забанили в Клоде, было очень обидно за свою $20 подписку 😭 P.S. При…
  5. Sep 23, 2026Post #1424
  6. Sep 22, 2026Дайте мне повод сжечь токены, и я сделаю это! #meme
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →