1.9Kпросмотров
11 января 2026 г.
statsScore: 2.1K
Техдолг. Часть 2. Откуда пошел термин и почему метафора устарела Продолжу размышления про техдолг. Что-то затянул я с этой серией — виной тому длинное путешествие по Китаю (СУАР, Тибет, центр), о котором можно почитать в другом моём канале — @apazidi_go. Этот пост — про то, откуда вообще пошёл термин “техдолг” и какой смысл в него вкладывали авторы. Легенды древних гласят, что впервые этот термин употребил Уорд Каннингем в 1992 году во время работы над финансовым софтом. (Один из подписантов Agile Manifesto и разработчик первого wiki-движка) Раз софт был финансовым, то логично использовать и финансовую метафору, чтобы объяснить боссу необходимость рефакторинга: ▫️если начать разработку с текущего понимания требований и ситуации, это сильно ускоряет старт — примерно так же, как заёмные средства позволяют ускорить бизнес; ▫️но со временем наше понимание мира и требований уточняется, и часть решений приходится переделывать — это и есть “проценты” по кредиту; ▫️если в обычной жизни бесконечно брать кредиты и не выплачивать тело долга, то довольно быстро весь доход начнёт уходить на проценты — и никакого движения вперёд уже не будет. Чуть позже Мартин Фаулер развил эту идею и предложил свою знаменитую матрицу 2×2 (у любого уважающего себя консультанта и мыслителя есть таких матриц с десяток): ▫️ось Deliberate <> Inadvertent (осознанный <> случайный) ▫️ось Prudent <>Reckless (разумный <> безрассудный) В итоге получаются четыре квадранта: 1⃣ Deliberate / Prudent — осознанное решение: инвестируем в скорость сейчас, позже планируем работы по качеству; 2⃣ Deliberate / Reckless — знаем, что делаем неправильно, но под давлением соглашаемся, плана исправлений нет; 3⃣ Inadvertent / Prudent — случайно понимаем, что можно сделать лучше (учимся по ходу); 4⃣ Inadvertent / Reckless — хаос от незнания того, как правильно. Типичный messy code. И вот здесь, на мой взгляд, начинается самое интересное. В реальной жизни тот самый техдолг, о котором говорил Каннингем (Deliberate / Prudent), встречается не так уж часто — я бы оценил его в 10%. Гораздо чаще мы имеем дело с Inadvertent / Reckless — думаю, где-то в районе 50%, оставляя по 20% на остальные квадранты. А это означает, что если продолжать метафору с кредитами, то чаще всего мы имеем не разумное использование заёмных средств для ускорения, а бездумный шопоголизм с десятка кредиток во время сезона распродаж. Нужно ли тогда удивляться, что в большинстве случаев возникают сложности при попытке объяснить боссу необходимость рефакторинга? Кстати, забавный момент: у Каннингема эта метафора родилась не как инженерная практика, а именно как лайфхак объяснения сложных вещей нетехническим людям. (Сами инженерные практики рефакторинга существовали и без этого — например, в экстремальном программировании и TDD с его red / green / refactor) Если взглянуть на картину целиком, то получается довольно парадоксально: пытаясь обосновать технический рефакторинг через метафору долга и кредита, мы выглядим не как разумные менеджеры-финансисты, а скорее как транжиры, которым нужно ещё 20–30% бюджета на вещи, ценность которых пока не очень понятна. И именно поэтому, на мой взгляд, метафора “долга” со временем стала токсичной и перестроила наше мышление о качестве в этом токсичном ключе. Об этом, кстати, сам Каннингем говорит в своих поздних интервью. В следующей части (надеюсь, сделаю её быстрее 🙂) — про то, как эту проблему решают в других индустриях и что на этот счёт говорят стандарты разработки ПО.
1.9K
просмотров
3491
символов
Да
эмодзи
Нет
медиа

Другие посты @apazidi_IT

Все посты канала →
Техдолг. Часть 2. Откуда пошел термин и почему метафора уста — @apazidi_IT | PostSniper