Что такое технический долг и почему от него нужно избавляться

Автор статьи

МАКСИМ КОЛМОГОРОВ

Соучредитель, технический директор vverh.digital

Что такое технический долг

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

Если Вам ничего не понятно, это нормально. Понятие технического долга максимально абстрактное, и каждый программист толкует его как хочет. Если пытаться объяснить на пальцах, то можно представить ситуацию: в проекте есть определенный код, никто не знает, как он работает, потому что написан максимально плохо, но данный код затрагивает всю систему, и без его “исправления” невозможно добавить новый функционал.

Как появляется технический долг

Технический долг появляется из-за некорректных технических решений. Некорректные решения появляются из-за неопытности программиста или спешки.

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

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

Последствия технического долга

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

Описать все возможные проблемы почти невозможно, но в этом и нет смысла. Спешка порождает “плохой код”, а это уже можно считать техническим долгом. Рано или поздно технического долга может стать так много, что систему придется полностью переписывать. Поэтому очень важно, чтобы программисты согласовывали между собой свои технические решения и внедряли тесты.

Рассказать друзьям: