Definição completa
Dívida técnica é uma metáfora criada por Ward Cunningham que descreve o custo acumulado de decisões técnicas tomadas de forma apressada, conveniente ou negligente durante o desenvolvimento de software. Assim como uma dívida financeira, ela cobra "juros" ao longo do tempo — na forma de maior esforço para evoluir o código, mais bugs em produção e menor velocidade de entrega. A dívida pode ser intencional (quando a equipa decide conscientemente tomar um atalho para cumprir um prazo) ou não intencional (quando surge por falta de conhecimento, má comunicação ou crescimento natural do sistema). Exemplos comuns incluem código duplicado, ausência de testes, arquitetura desatualizada e dependências obsoletas. Gerir a dívida técnica é tão importante quanto gerir funcionalidades: ignorá-la compromete a saúde do projeto a longo prazo.
Exemplo de código
// ❌ Com dívida técnica — lógica duplicada, sem abstração
function calcularDescontoVip(preco) {
return preco - preco * 0.2;
}
function calcularDescontoFuncionario(preco) {
return preco - preco * 0.2; // mesma lógica copiada
}
// ✅ Após refatoração — dívida quitada
const DESCONTO_PADRAO = 0.2;
function calcularDesconto(preco, taxa = DESCONTO_PADRAO) {
return preco - preco * taxa;
}
const precoVip = calcularDesconto(100);
const precoFuncionario = calcularDesconto(100, 0.3);