Причины появления долгов и стратегии уменьшения техдолга
Этот термин впервые ввёл Ward Cunningham[95]:
1. Технические долги включают ту работу в проекте, которую мы решаем (хорошо, если осознанно) не делать в данный момент, но которая будет мешать развитию проекта в дальнейшем, если её не выполнить.
2. Технические долги не включают отложенную функциональность, которая была бы хорошим дополнением к проекту, но в данный момент имеет низкий приоритет (например, улучшенный интерфейс пользователя). Кроме этого, техдолги – это не баги.
Понять действия, которые приводят к долгам в коде, очень легко, потому что каждый каждый разработчик делает эти долги изо дня в день. Саму систему появления этих долгов можно описать с помощью денежной метафоры[96]:
1. Игнорировать внутреннее качество – брать деньги в долг.
2. Рефакторинг – способ возврата долга.
3. Замедление разработки из-за запутанности системы – выплата процентов.
4. Провал проекта – приезд судебных приставов и конец бизнеса.