technical debt
expressãocultura de operaçõesprogramação
O custo futuro de escolher uma solução rápida agora em vez de uma melhor depois.
A metáfora de Ward Cunningham: atalhos tomam tempo emprestado hoje e cobram juros amanhã, no esforço extra que toda mudança posterior exige. Um pouco pode ser uma troca sensata; sem ser paga, compõe-se até o código resistir a qualquer mudança.
Ward Cunningham cunhou dívida técnica para explicar a interlocutores não técnicos por que entregar rápido tem custo, e a metáfora é mais precisa que seu uso popular. A versão dele trata de entregar deliberadamente um código que reflete um entendimento incompleto, e então pagar juros até refatorar para corresponder ao que se aprendeu. Dívida contraída conscientemente, por um motivo, com plano de quitação.
O uso popular derivou para significar qualquer código ruim, o que perde a distinção que a tornava útil. Código ruim porque ninguém sabia fazer melhor não é dívida, é erro. Dívida é decisão: entendemos a forma certa, estamos escolhendo a forma errada mais rápida agora, e aceitamos que tudo construído sobre ela custará mais até consertarmos. O próprio Cunningham contestou a leitura desleixada.
A razão de a distinção importar é que as duas exigem respostas diferentes. Dívida deliberada precisa de cronograma de pagamento e de um dono. Bagunça acidental precisa de formação e revisão. Chamar as duas de dívida permite a um time se sentir financeiramente sofisticado a respeito de uma base de código que ninguém entende, e a metáfora dos juros é honesta quanto ao mecanismo: você não paga de uma vez, paga a cada funcionalidade que toca a área comprometida, para sempre, até quitar.
Também conhecido como: tech debt, technical-debt, tech-debt
Fontes
- Ward Cunningham, 1992