Оглавление:
Определение - что означает технический долг?
Технический долг - это концепция в программировании, которая отражает дополнительную работу по разработке, которая возникает, когда код, который легко реализовать в краткосрочной перспективе, используется вместо того, чтобы применять лучшее общее решение.
Технический долг обычно ассоциируется с экстремальным программированием, особенно в контексте рефакторинга. То есть это означает, что реструктуризация существующего кода (рефакторинг) необходима как часть процесса разработки. При таком подходе рефакторинг является не только результатом плохо написанного кода, но также осуществляется на основе развивающегося понимания проблемы и наилучшего способа ее решения.
Технический долг также может быть известен как проектный долг.
Техопедия объясняет технический долг
Термин был придуман Уордом Каннингемом, программистом, который также известен разработкой первой вики. Технический долг - это метафора, приравнивающая разработку программного обеспечения к финансовому долгу. Представьте, что у вас есть проект с двумя возможными вариантами. Один из них быстрый и простой, но в будущем потребует изменений. Другой имеет лучший дизайн, но для его реализации потребуется больше времени. В процессе разработки выпуск кода в качестве быстрого и легкого подхода похож на долговое обязательство - оно сопровождается обязательством по процентам, которое для технического долга в будущем приобретает форму дополнительной работы. Тратить время на рефакторинг равносильно выплате основного долга. Хотя в краткосрочной перспективе это требует времени, оно также уменьшает будущие процентные платежи.
Уорд Каннингем описывает эту концепцию в 1992 году следующим образом:
«Отправка кода с первого раза - это все равно, что влезать в долги. Небольшая задолженность ускоряет разработку, если она быстро окупается с перезаписью. Объекты делают стоимость этой транзакции приемлемой. Опасность возникает, когда долг не погашен. Каждую минуту». потраченные на не совсем правильный код засчитываются как проценты по этому долгу. Целые инженерные организации могут быть остановлены под долговым бременем неконсолидированной реализации, объектно-ориентированной или иной. "
Концепция не означает, что долг никогда не должен возникать. Точно так же, как рычаги могут помочь компании при правильном использовании, быстрое решение может означать более быстрое выход на рынок разработки программного обеспечения. Кроме того, технический долг - это не просто плохой код. Плохой код - это плохой код, и технический долг может возникнуть в результате работы хороших программистов в условиях нереальных ограничений проекта.
