Índice:
Definição - O que significa Dívida Técnica?
Dívida técnica é um conceito na programação que reflete o trabalho extra de desenvolvimento que surge quando o código é fácil de implementar no curto prazo, em vez de aplicar a melhor solução geral.
A dívida técnica é comumente associada a programação extrema, especialmente no contexto da refatoração. Ou seja, implica que a reestruturação do código existente (refatoração) é necessária como parte do processo de desenvolvimento. Sob essa linha de pensamento, a refatoração não é apenas resultado de código mal escrito, mas também é feita com base no entendimento em evolução de um problema e na melhor maneira de resolvê-lo.
Dívida técnica também pode ser conhecida como dívida de projeto.
Techopedia explica Dívida Técnica
O termo foi cunhado por Ward Cunningham, um programador que também é conhecido por desenvolver o primeiro wiki. Dívida técnica é uma metáfora que iguala desenvolvimento de software a dívida financeira. Imagine que você tem um projeto que possui duas opções possíveis. Um é rápido e fácil, mas exigirá modificações no futuro. O outro tem um design melhor, mas levará mais tempo para implementar. No desenvolvimento, liberar código como uma abordagem rápida e fácil é como contrair dívidas - ele vem com a obrigação de juros, que, para dívidas técnicas, vem na forma de trabalho extra no futuro. Tomar o tempo para refatorar é equivalente a pagar o principal. Embora isso leve tempo no curto prazo, também diminui os pagamentos de juros futuros.
Ward Cunningham descreve esse conceito em 1992 da seguinte maneira:
"Enviar código pela primeira vez é como entrar em dívida. Um pouco da dívida acelera o desenvolvimento desde que seja pago prontamente com uma reescrita. Os objetos tornam o custo dessa transação tolerável. O perigo ocorre quando a dívida não é paga. A cada minuto gastos em códigos não muito corretos contam como juros sobre essa dívida. Organizações inteiras de engenharia podem ficar paradas sob o peso da dívida de uma implementação não consolidada, orientada a objetos ou não. "
O conceito não significa que a dívida nunca deve ser incorrida. Assim como a alavancagem pode ajudar uma empresa quando usada corretamente, uma solução rápida pode significar um tempo mais rápido para o mercado no desenvolvimento de software. Além disso, a dívida técnica não é apenas um código ruim. Código incorreto é código incorreto e a dívida técnica pode resultar do trabalho de bons programadores sob restrições irreais do projeto.