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

Фраза из лексикона сильных профессионалов

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

Есть понятие технического долга — это когда мы когда-то давно приняли компромиссные решения в разработке, а теперь у нас из-за этого проблемы. 

Представьте стартап: например, приложение отслеживает ваш режим дня и расставляет задачи оптимальным образом. Разрабатывать такое приложение дорого, нужны деньги. Деньги не берутся из воздуха — их дают инвесторы. Инвесторы хотят, чтобы деньги вернулись как можно скорее, а для этого нужно как можно скорее запускать приложение. 

Из-за скорости команда разработчиков принимает такие решения:

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

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

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

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

Например, сегодня мы за пять минут «захардкодили» API и не предусмотрели его расширяемость. Через год API всё же придется расширить. Тогда разработчикам придется углубляться в старинный код, разбираться в старых кишках. А помните, что они ещё и не задокументированы? В общем, это надолго. 

Откуда ещё появляется технический долг

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

Ещё технический долг появляется, когда в команде не делают код-ревью и не проверяют качество и стиль программирования. Это может привести к ошибкам, на которое придётся тратить время в будущем.

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

Что делать с техдолгом

Технический долг нужно возвращать с процентами. 

Самый рабочий и продуктивный подход — закладывать время в разработке на исправление и доработку того, что было брошено. Чем больше технического долга есть в коде, тем дольше и сложнее выходит каждая новая версия программы. Иногда такого долга становится так много, что приходится создавать новую версию практически с нуля, учитывая все прошлые ошибки.

Текст и иллюстрации:

Михаил Полянин

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Через год — лучше работа, выше зарплата
В «Яндекс Практикуме» становятся разработчиками с нуля. Выберите язык — веб, Python, Java, C++ — и учитесь. Джуны зарабатывают от 80 000 ₽, мидлы — от 150 000 ₽. Дальше — программы трудоустройства и компенсация, если пойдёте в Яндекс.
Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата
Вам может быть интересно
Что такое куча
Что такое куча

Это зависит от содержимого.

medium
Кодирование и шифрование — в чём разница?
Кодирование и шифрование — в чём разница?

Одно делается для удобства, а другое — для защиты.

easy
Использовать чужой код стыдно?
Использовать чужой код стыдно?

Стыдно — когда видно

easy
Вопрос-ответ: почему разработчики любят решать разные задачки, первый проект и тёмная тема
Вопрос-ответ: почему разработчики любят решать разные задачки, первый проект и тёмная тема

Отвечаем на вопросы из соцсетей

easy
Откуда на сайтах появляется реклама, которой там не было
Откуда на сайтах появляется реклама, которой там не было

Всё дело в незащищённом HTTP-трафике

easy
Что такое обфускация кода
Что такое обфускация кода

Когда код специально запутывают так, чтобы было непонятно, как он работает

easy
Что такое SSO
Что такое SSO

Создайте учётную запись или авторизуйтесь через Гугл

easy
Что имеют в виду программисты, когда говорят про DRY, SOLID и YAGNI
Что имеют в виду программисты, когда говорят про DRY, SOLID и YAGNI

Короткое объяснение принципов разработки

easy
Парное программирование: что это такое и стыдно ли это
Парное программирование: что это такое и стыдно ли это

9 вопросов про парное программирование

easy
easy