Como Lidar Com Tod - Como Lidar Com o Transtorno Opositivo-Desafiador (TOD) - NeuroSaber ...
Como Lidar Com o Transtorno Opositivo-Desafiador (TOD) - NeuroSaber ...

O que é dívida técnica e por que ela existe

Dívida técnica é um empréstimo que seu time pega do futuro para entregar algo agora. Não é um conceito abstrato — ela se materializa em código legado, testes que ninguém rodou, documentação desatualizada e serviços que funcionam só porque as pessoas esqueceram de desligar. Eu não costumo chamar de "dívida" nas conversas com devs. Chamo de escolha. Sempre houve um trade-off. O problema é que a maioria dos times assume a dívida sem saber o valor dos juros.

como lidar com tod no dia a dia

Existem três abordagens principais. A primeira é ignorar até o sistema cair. A segunda é tentar zerar tudo e não entregar. A terceira, que funciona na prática, é tratar a dívida como um portfólio gerenciável, não como um vilão. Você precisa de um inventário. Comece com uma pesquisa simples no repositório: procure pragmas como // TODO, // HACK, // FIXME. Use grep ou search no GitHub/GitLab. Esse é seu ponto de partida, não sua solução final.

O método que eu uso funciona assim: classifique cada item encontrado em três categorias usando uma escala de custo-benefício.

Isso parece simples, mas resolve 80% do caos. O erro comum é achar que toda dívida é igual. Não é. Tratar todas como críticas gasta sprint inteiro sem entregar nada novo. Deixar todas como toleráveis vira sujeira acumulada que ninguém consegue mais limpar.

edge case real: quando a dívida não aparece em lugar nenhum

Em um projeto meu há alguns anos, tínhamos um serviço de processamento de arquivos que funcionava perfeitamente nos testes e falhava só em produção, aleatoriamente, a cada duas semanas. Nenhum TODO, nenhum HACK no código. A causa raiz era uma biblioteca de terceiros com comportamento de thread safety questionável em versões específicas. A dívida estava escondida na dependência, não no código-fonte. A solução foi escrever um wrapper que isolava as operações críticas e adicionava retry com backoff exponencial. Não refatoramos a biblioteca. Não atualizamos a versão. Criamos uma camada de defesa. Custo: dois dias de trabalho. Benefício: eliminação dos incidentes semanais que antes consumiam quatro horas de on-call por semana.

Lições disso: dívida técnica frequentemente vive em lugares que você não espera. Dependências, configurações de infraestrutura, contratos de API com outros times. Seu inventário precisa cobrir essas áreas também.

👉 Clique no botão abaixo para saber mais sobre o assunto!

estratégias que realmente funcionam

A primeira é dedicar tempo recorrente. Um ou dois dias por sprint para dívida técnica é o mínimo viável. Menos que isso é apenas remanejamento, não resolução. Se seu time não consegue reservar esse tempo, o problema não é a dívida. É a cultura de entrega. A segunda estratégia é a regra do menino limpador. Sempre que você tocar em um trecho de código problemático para adicionar uma feature, gaste 15 minutos melhorando aquele trecho. Deixe-o um pouco menos doloroso para a próxima pessoa. Isso se chama boy scout rule e funciona porque o custo marginal é baixo — você já está lá, já entende o contexto, já tem os testes passando.

A terceira é mais polêmica: às vezes a melhor decisão é reescrever. Não evite reescritas por vaidade. Se um módulo consome mais de 30% do tempo de desenvolvimento do time e não evolui há seis meses, avalie seriamente uma reescrita incremental. Façam isso módulo por módulo, não tudo de uma vez. Reescrita big bang quase sempre falha.

o que não funciona

Reuniões semanais para discutir dívida técnica sem ação concreta. Isso vira terapia de desenvolvimento. As pessoas desabafam, ninguém faz nada, a dívida continua crescendo. Metas arbitrárias como "reduzir dívida em 20% este trimestre". Como você mede 20% de dívida? A métrica mais útil é lead time para mudanças. Se o lead time aumentou consistentemente, a dívida está crescendo. Se estabilizou ou diminuiu, você está vencendo.

Automatizar a descoberta e achar que resolvidam. Ferramentas como SonarQube, CodeQL e linters apontam problemas. Elas não dizem qual problema importa. Interpretar os resultados exige contexto de negócio. Sem isso, você gasta tempo refatorando o que não gera valor.

quando a dívida técnica é a escolha certa

Existem situações legítimas onde assumir dívida é correto. Lançamento de produto para validar mercado. Proof of concept para decisões estratégicas. Prazos regulatórios iminentes. Nessas horas, a dívida não é falha — é investimento calculado. O erro é não registrar. Anote no backlog. Dê um prazo para quitação. Sem registro, a dívida se torna permanente. Sem prazo, ela se acumula com juros compostos que ninguém percebe até doer.

monitoramento prático

Use estas métricas no seu Kanban ou planilha:

Se três ou mais dessas métricas pioraram no último trimestre, sua gestão de dívida técnica está falhando. Ajuste antes que o custo aumente exponencialmente. Não existe limpeza completa. Dívida técnica nunca chega a zero, e tentar alcançar zero é desperdício de recurso. O objetivo é manter os juros sob controle enquanto você continua entregando valor. É um equilíbrio, não uma jornada com destino final.