Fazer algo rápido e de forma correta raramente estão em sintonia. No mundo das metodologias ágeis e do desenvolvimento de software, sob a pressão do time-to-market, muitas vezes o resultado a longo prazo é a dívida técnica. E esse débito tecnológico tem tendência de crescimento. Como evitar dívidas não intencionais e como gerenciá-las são as principais lições para as empresas que desejam se manter firmes no mercado.
A dívida técnica cresce devido a gastos com transformação digital (TD) e tecnologia. Mas também é compreendida como uma dívida de código. Isso significa que o desenvolvimento de software tem problemas e eles geram custos substanciais e ocultos. Sem soluções mais completas e robustas, em algum momento a empresa terá que arcar com os custos para refatorar e reescrever código.
Se a dívida técnica adquirida serve como alavanca ao crescimento da empresa, significa que é intencional e tem um tempo hábil para ser paga. Esse tipo de débito traz compensações que são conhecidas da organização, como o lançamento de Produtos Mínimos Viáveis (MVPs).
Quando os MVPs são colocados no mercado se tem ciência de que serão temporários e haverá retrabalho no futuro. A empresa assume o risco da instabilidade, insegurança e baixo desempenho do software. Mas tudo é conhecido e pode ser remediado.
Já a dívida não intencional é inesperada, desconhecida. Esse tipo de débito técnico decorre de complexidade ignorada, da falta de conhecimento técnico no desenvolvimento de software, testes não realizados ou incompletos, entre outros fatores.
As dívidas técnicas afetam os negócios. Códigos com erros resultam em usuários insatisfeitos, ciclos de desenvolvimento mais longos, inovações limitadas e potenciais erros de segurança. Não demora para tudo isso se traduzir em perda de vendas, maior custo com suporte, maior número de desenvolvedores em um projeto e menor produtividade.
Por isso é tão importante saber a origem da dívida técnica para poder gerenciá-la. Entenda se a dívida técnica é intencional ou não, ou seja, se é boa ou ruim. Concentre-se no débito ruim,
elimine os impactos negativos para o seu negócio e priorize falhas de segurança. Outras formas de mensurar a dívida técnica é desenvolvendo métricas. Dependendo do negócio podem ser falhas de aplicativos, satisfação do cliente e até desempenho financeiro.
Outra possibilidade é gerenciar a dívida técnica como um trabalho contínuo. Assim como DevOps, a dívida técnica deve fazer parte do ciclo de lançamento em scrums e sprints diários. Ou ainda investir em Quality Assurance pra ajudar a empresa a gerenciar a dívida técnica de maneira estratégica.
Novas formas de gerenciar a dívida técnica
Engenheiros de software ao redor do mundo pesquisam metodologias para detecção e quantificação de dívidas técnicas. Isso inclui o débito de design, assim como a melhoria da qualidade e da produtividade do software. E, o mais importante, a lacuna entre gestão e desenvolvimento de software. A ideia é entender o processo de gestão da organização e a sua cultura de desenvolvimento. Os pesquisadores também buscam entender a dívida técnica a partir do uso de técnicas inteligentes. A ideia aqui é explorar dados para descoberta de conhecimento, raciocínio, aprendizado ou apoio à tomada de decisão. Entre essas técnicas estão aprendizado de máquina, raciocínio sob incerteza e processamento de linguagem natural. Todas elas aplicadas a dívidas técnicas de design, de código e de arquitetura.
Muitos desses estudos, como criação de software para medição e gerenciamento de dívida técnica, ainda estão em fase inicial. Seja como for, as empresas precisam desde já conhecer que atividades geram dívida e assim traçar uma estratégia para gerenciá-la.