easy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Кодирование и шифрование — в чём разница?
Кодирование и шифрование — в чём разница?

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

easy
Что такое куча
Что такое куча

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

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

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

easy
Что такое дамп, нужен ли он вам и стоит ли его отключить?
Что такое дамп, нужен ли он вам и стоит ли его отключить?

Это когда всё из оперативной памяти или процессора записывают в файл

easy
Что такое каскадная разработка
Что такое каскадная разработка

Это когда всё делают строго по очереди

easy
Кто такой технический директор? Почему он главный, но не пишет код?
Кто такой технический директор? Почему он главный, но не пишет код?

Как перейти от программирования к управлению.

easy
Что такое обратная совместимость
Что такое обратная совместимость

Это когда старая игра запускается на новой приставке

easy
Что такое исключения в программировании
Что такое исключения в программировании

Рассказ об ошибках, которые можно предусмотреть заранее.

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

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

easy
easy
[anycomment]
Exit mobile version