Технический долг (Technical debt)
Технический долг / Code debt / Technical debt – общее название проблемной части при разработке кода, которое возникает при приоритизации быстрой доставки перед идеальным кодом (т.е. при пренебрежении к качеству кода).
Технический долг – это фраза, первоначально придуманная разработчиком программного обеспечения Уордом Каннингемом, который, помимо того, что является одним из 17 авторов Agile Manifesto, также является изобретателем вики. Сначала он использовал эту метафору, чтобы объяснить нетехническим заинтересованным сторонам в WyCash, почему необходимо выделить ресурсы для рефакторинга.
В то время он не осознавал этого, но он придумал новое модное слово в сообществе разработчиков программного обеспечения. Позже он станет предметом бесчисленных академических исследований, дебатов и панельных дискуссий.
Спустя годы Каннингем описал, как он первоначально придумал метафору технического долга:
«С заемными деньгами вы можете сделать что-то раньше, чем в противном случае, но тогда, пока вы не вернете эти деньги, вы будете платить проценты. Я думал, что заимствование денег было хорошей идеей, что спешить с программным обеспечением, чтобы получить некоторый опыт работы с ним, было хорошей идеей, но, конечно, вы в конечном итоге вернетесь, и когда вы узнаете что-то об этом программном обеспечении, вы вернете этот займ, рефакторинг программы, чтобы отразить ваш опыт по мере того, как вы его приобрели».
Есть ли упрощенное определение технического долга?
Поскольку метафоры по своей сути абстрактны, истинное определение технического долга требует интерпретации. С годами разные люди выработали для него свои собственные определения. Со временем появилось несколько подробных объяснений, но на высоком уровне. Мы видим несколько тем, которые могут помочь нам дать конкретное определение технического долга.
Подобно тому, как кто-то может взять ссуду на недвижимость как средство выхода на быстро развивающийся рынок недвижимости до того, как его цена будет снижена, технический долг часто используется как инструмент для «продвижения вперед». Трей Хаффин, основатель gitconnected, объясняет роль технического долга через призму стартапа. Его определение прямолинейно: «Технический долг – это любой код, добавленный сейчас, который потребует больше работы для исправления в более позднее время – обычно с целью достижения быстрых результатов».
Определение технического долга, данное Шоном Маккормиком, больше сосредоточено на последствиях в долгосрочной перспективе: «Я рассматриваю технический долг как любой код, который снижает гибкость по мере созревания проекта. Обратите внимание, что я не сказал «плохой код» (поскольку это часто субъективно) или сломанный код». Он предполагает, что настоящий технический долг всегда является преднамеренным, а не случайным.
Объяснение Гаминером того, что они называют ошибкой технического долга, в значительной степени сосредоточено на концепции выплаты процентов позже. «Технический долг возникает, когда вы сокращаете путь в написании кода, чтобы достичь своей цели быстрее, но за счет более уродливого, более сложного в поддержке кода. Это называется техническим долгом, потому что это похоже на получение ссуды. Сегодня вы можете сделать больше, чем обычно, но в конечном итоге вы заплатите более высокую цену », — пишут они в статье Hackernoon.
Всего комментариев: 0