Природа техдолга

Опубликовано:
Translations:English

Впервые техническую сложность проекта сравнили с долгом в 1992 году. Перевожу:

Выпустить незрелый код — это как влезть в долги. Маленький долг ускоряет разработку, если быстро выплачивать долг переписыванием кода. Не выплачивать долг опасно. Процент по долгу — это каждая минута, потраченная на не-совсем-тот код. Бывает, целые организации встают колом под долговой нагрузкой из-за незрелой реализации.

Позже метафора сократилась до слова «техдолг». Метафора хорошая, но у неё есть ограничения.

1. Плохой код ≠ техдолг

Если вы использовали технологию, у нее были недостатки, и эти недостатки пошли в «техдолг», это нормально. Часто бывает, вы не очень хорошо понимали решаемую проблему, и это непонимание уходило в «технический долг». Это тоже нормально.

Если вы пишете плохой код ради скорости, а затем объявляете его «техдолгом», это неправильно. Плохой код — это просто плохой код, не надо прикрывать его красивыми названиями.

2. Техдолг очень далёк от финансового долга

Любому предпринимателю понятно, что финансовый долг — это прежде всего инструмент. Можно взять деньги в долг и построить новый завод. Для техдолга не так, язык не поворачивается сказать «мы использовали техдолг для того, чтобы…». Поэтому техдолг — это отходы производства, а не инструмент. Это сильно отличает его от финансового долга. Разницу нужно учитывать, чтобы не путать людей с предпринимательской жилкой.

3. Не надо ожидать понимания техдолга от кого-либо

Бывает, проскакивают такие тирады:

Бизнес ничего не понимает в разработке! Мы используем метафору про долг, чтобы хотя бы на пальцах объяснить, почему всё так медленно!
Их послушаешь и подумаешь, что разработка и бизнес — это какие-то отдельные вещи. А посмотришь чуть шире и заметитишь, что разработка — это лишь часть бизнеса, то есть это и есть бизнес. Так что техдолг нужно подавать очень аккуратно и под правильным соусом, иначе можно на ровном месте разделить людей и создать конфликт.

Руины замка Шаакен.

Как это использовать

В хороших разговорах о техдолге можно пробовать такие варианты:

  1. Заменить «техдолг» на что-то близкое к доменной области. Если автоматизируем лесопилку, можно говорить, что выгребаем опилки из рабочей зоны в конце дня. Если автоматизируем ресторан, ноль вопросов к тому, что в коде нужно периодически мыть столы и посуду. Автор метафоры «техдолг» писал программу про финансы, поэтому у него сравнение зашло хорошо.
  2. Заменить «техдолг» на что-то яркое или персонализированное. Например, мне кажется, любому человеку приятнее приплыть из моря отходов в горное озеро, чем поскорее выплатить ипотеку. Если рассматривать весь спектр отношения к долгам, есть люди, у которых принцип «не иметь долгов» положен в основу личности. Есть люди, которых напрягает отсутствие долгов.
  3. Пойти ва-банк и ввести понятие техмикрокредита и техноипотеки. Почему нет? Нам как раз не хватает метафор, описывающих размер и опасность техдолга.