Em poucas palavras isso é a dívida técnica, mas já que precisamos de uma definição embasada na teoria, segue abaixo a que Martin Fowler sugeriu:
A dívida técnica é similar à dívida financeira. Assim como a dívida financeira, a dívida técnica exige o pagamento de juros. Este vem na forma de esforço extra, que devem ser pagos em desenvolvimentos futuros por conta da escolha de um design mais rápido e de baixa qualidade. Nós podemos optar por continuar pagando estes juros ou quitar de uma vez a dívida fazendo uma refatoração, transformando um design de baixa qualidade em um design melhor. Apesar dos custos para saldar a dívida, ganhamos reduzindo os juros no futuro.A dívida técnica pode ser classificada da seguinte forma:
- Imprudente e intencional – O time não tem tempo para o design e utiliza uma solução rápida e com pouca preocupação com a qualidade.
- Consciente e intencional – O time precisa entregar o produto agora com todas as limitações conhecidas e assume de maneira pró-ativa as consequências.
- Imprudente e não intencional – O time não tem consciência dos princípios básico de design e então nem sequer imagina a bagunça que estão adicionando.
- Consciente e não intencional – Isso é verdade para times com excelentes arquitetos. Eles fornecem uma solução que agrega valor ao negócio, mas depois de completar a solução, eles entendem que a abordagem de design poderia ter sido melhor.
Origem e causa
Muitas vezes a dívida técnica tem origem em fatores externos ao software. Algumas vezes esses fatores são intransponíveis, mas outras vezes eles produzem efeito simplesmente pela demora em responder prontamente.Uma vez que a dívida técnica não é um problema opcional, a melhor abordagem talvez seja procurar entender e identificá-la o quando antes. Assim, é importante identificar algumas de suas causas para que possam ser tomadas ações de redução ou mitigação antecipadamente. Abaixo estão algumas das causas mais comuns para a geração de dívida técnica:
- Definição Insuficiente
- Pressão do Negócio (Político/Legal)
- Lacuna de Entendimento sobre Dívida Técnica
- Alto Acoplamento
- Ausência de Suíte/Kit de Testes
- Falta de Documentação
- Falta de Colaboração
- Desenvolvimento Paralelo
- Postergação da Refatoração
- Ausência de Padronização
- Falta de Conhecimento
- Falta de Empenho e/ou Motivação
- Liderança Fraca em Tecnologia
- Especificação de “Último Minuto”
Conclusão
Não existe solução definitiva para o "problema" da dívida técnica, porém é possível diminui-la ao máximo, atacando as principais causas e origens.Sugiro que faça uma análise do seu contexto de trabalho e comece elencando as causas mais comuns. Ordene as que exigem menor esforço para solução nos primeiros lugares e comece a agir o mais rápido possível, de forma a já diminuir a criação de novas dívidas.
Aos poucos, você e sua equipe, terão mais tempo e poderão (e deverão) fazer as próximas implementações para as causas mais demoradas e complexas seguindo a ordem de sua análise.
Qualquer dúvida ou sugestão, poste nos comentários.
Mãos à obra e boa sorte.
Referências
https://agilecoachninja.wordpress.com/2016/03/08/debito-tecnico-divida-tecnica/https://artesoftware.com.br/2019/02/10/divida-tecnica/