Neste episódio o Mateus Leonardi, Head de Tecnologia na HeroSpark, conta sobre o case de redução drástica de dívida técnica que liderou na empresa e os aprendizados que teve ao longo do caminho. Ele fala sobre como identificar, priorizar e solucionar essas dívidas, sempre equilibrando a necessidade de entrega rápida com a manutenção da saúde do produto a longo prazo.
Dívida técnica pode ser definida como qualquer fator que atrase as entregas da equipe de engenharia ou que desvie o foco das demandas de evolução do produto. Pode se manifestar em diferentes formas, como:
Um ponto crucial é que, mesmo que um problema ainda não tenha causado danos significativos, ele pode se tornar crítico no futuro. Por isso, é essencial tratar a gestão da dívida técnica também como uma questão de gerenciamento de riscos.
Existem diferentes cenários para lidar com a dívida técnica, que vão desde situações de caos absoluto até cenários mais controlados. Para iniciar, é importante avaliar o impacto das dívidas existentes. Algumas perguntas podem ajudar nesse processo:
Agrupar problemas por categoria também é uma estratégia eficaz. Por exemplo, focar nos bugs relacionados a uma funcionalidade específica pode gerar melhorias significativas em um curto espaço de tempo. Além disso, é essencial engajar a equipe na solução dos problemas e celebrar as conquistas, aumentando a confiança e a motivação do time.
Líderes têm um papel fundamental tanto na remoção de barreiras quanto no alinhamento de expectativas. Em muitos casos, os líderes atuam como ”patos de borracha“, ajudando os desenvolvedores a refletirem sobre os problemas e encontrarem soluções por conta própria. Em situações mais complexas, no entanto, pode ser necessário que a liderança tome uma posição mais ativa, promovendo alinhamentos entre equipes ou até mesmo colaborando diretamente no código.
A dívida técnica não se limita a problemas internos de uma equipe. Muitas vezes, ela surge na interação entre times, como no uso de APIs ou em processos de integração. Nesses casos, definir limites claros de responsabilidade e promover uma comunicação eficaz são passos fundamentais para evitar que essas dívidas se acumulem.
Embora a ideia de reescrever uma aplicação possa parecer tentadora, é um caminho arriscado. A reescrita geralmente subestima a complexidade do sistema atual, levando ao desperdício de tempo e recursos. Em vez disso, priorize resolver os principais pontos problemáticos e permita que a aplicação evolua gradualmente. Assim, é possível otimizar sem perder o aprendizado acumulado ao longo do tempo.
Durante a conversa, um exemplo marcante foi a solução de problemas em uma infraestrutura de banco de dados mal gerenciada, que causava quedas frequentes no sistema. Com a implementação de ferramentas de monitoramento e otimizações na arquitetura, a equipe conseguiu reduzir os custos em mais de 60% e melhorar significativamente a estabilidade da plataforma. Esse caso reflete a importância de investir em soluções que tragam resultados palpáveis e sustentáveis.
Gerenciar dívidas técnicas é um desafio que exige equilíbrio entre pragmatismo e planejamento estratégico. Seja ao priorizar correções, envolver a liderança ou lidar com interações entre equipes, o foco deve estar sempre na entrega de valor para o negócio. E acima de tudo, é essencial acreditar que todo problema técnico tem solução – com estudo, colaboração e determinação, é possível transformar desafios em oportunidades.
Você pode conferir a Materclass que o Gabriel Schmitt conduziu na Escoal Forja sobre Como Mensurar Dívidas Técnicas caso queira se aprofundar nesse assunto.