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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Художник:

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

Корректор:

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

Вёрстка:

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

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

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

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

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

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

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

easy
Что такое Webpack, зачем он нужен и как им пользоваться
Что такое Webpack, зачем он нужен и как им пользоваться

Наводим порядок в скриптах

easy
Курсоры на компьютере: какие бывают, как менять, что нужно знать
Курсоры на компьютере: какие бывают, как менять, что нужно знать

Пособие для тех, кто будет делать программы для компьютера и веба

easy
Современный фулстек-разработчик: кто он, сколько зарабатывает и что должен уметь
Современный фулстек-разработчик: кто он, сколько зарабатывает и что должен уметь

Обзор специальности и зарплаты

easy
Как устроены файлы
Как устроены файлы

Главный способ хранения всех данных

easy
Как работает оператор множественного выбора
Как работает оператор множественного выбора

Выбираем сразу из нескольких вариантов

easy
Что такое троичная логика и где она используется
Что такое троичная логика и где она используется

Первая и наиболее известная из многозначных

easy
easy