Техничный долг:
- Неструктурированный код: Код, который трудно понять или поддерживать из-за отсутствия структуры или ясности.
- Неполное тестирование: Код, который не имеет достаточного покрытия тестами, что может привести к неожиданным ошибкам в будущем.
- Загрязнение кода (code smell): Плохо спроектированные или реализованные участки кода, которые могут привести к трудностям в поддержке или расширении.
- Неэффективные алгоритмы: Использование алгоритмов или подходов, которые могут быть оптимизированы для повышения производительности.
- Нарушение стандартов кодирования: Код, который не соответствует установленным стандартам кодирования, что затрудняет его понимание и поддержку другими разработчиками.
Не техничный долг:
- Функциональные требования: Изменения в функциональности, которые были частью первоначального проекта и должны быть реализованы в рамках его завершения.
- Политические решения: Изменения, внесенные в проект по причинам, не связанным с его техническими аспектами, например, из-за требований заказчика или решений бизнеса.
- Рефакторинг: Изменения, которые вносятся в код с целью улучшения его качества без добавления новой функциональности.
Хорошим подходом является минимизация технического долга в процессе разработки программного обеспечения, поскольку накопленный технический долг может замедлить разработку и привести к увеличению издержек в будущем. Чем быстрее его решить, тем дешевле это будет