Технический долг

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

В принципе очень понятное определение, но получается, что техдолг бывает только по коду или инфре? Нет:

1. Кодовый - это всякие костыли и устаревшие библиотеки. 2. Архитектурный - временные интеграции, монолит под видом микросервисов. 3. Инфраструктурный - ручные деплои, отсутствие CI/CD. 4. Тестовый - ручной регресс. 5. Аналитический - и вот про него все всегда забывают.

Итак, техдолг аналитики - это когда документация есть, но она врёт. Или её в принципе нет, а знания живут в голове одного Васи. Или BPMN-схема нарисована для галочки и после трёх релизов она напоминает карту древнего мира.

Это самый опасный и при этом самый незаметный техдолг (поэтому и забывают). Прод не падает, а дашборды зелёные. Но именно из-за этого техдолга оценки задач улетают в космос.

Ты скажешь: - Эээ, паажди, а как устаревшая документация влияет на разработку?

А я отвечу: Разработчик читает документацию не ради удовольствия. Он её читает, чтобы понять куда встраивается новая фича - с какими системами общается, какие таблицы дёргает, какие коннекторы уже есть. Он пишет код по тому, что написано в документе. А потом интеграция не поднимается. Оказывается, что поля переименовали, формат обмена поменяли, а сам коннектор выпилили ещё в прошлом релизе. Но в документе старая версия. Это не разраб у нас хреновый, он сделал всё верно, но не то. И переделывать всё равно ему. Вот так у нас сроки уползли ещё на месяц.

Но и здесь важно не удариться в другую крайность. Документация ради документации - бюрократия. Сегодня из каждого утюга кричат: "А давайте мы просто всё засунем в ИИ-агента - пусть он документирует!". Увы, но один тратит токены чтобы написать документ, второй тратит токены чтобы его понять - токены потрачены, а работа не сделана.

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

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

#айтишка #техдолг

Технический долг | Сетка — социальная сеть от hh.ru