Entenda o que é débito técnico e como tratá-lo

Também conhecido como dívida técnica, o débito técnico é um conceito no desenvolvimento de software utilizado para representar o custo implícito de uma implementação ou solução pensada somente no agora, elaborada para suprir demandas atuais, em vez fazer uso de uma abordagem de melhor qualidade. O motivo por trás de tudo isso? Diminuir o tempo de lançamento de determinado produto de software.

Mesmo que tenha se originado no setor de tecnologia, este conceito recebe o nome “débito técnico” devido a uma inspiração no mercado financeiro. Isso porque, as suas consequências se assemelham a uma dívida financeira, de cartão de crédito que, quando não quitada, faz com que você tenha que arcar com juros altos ao longo do tempo, aumentando ainda mais a dificuldade em pagá-la.

Além disso, em termos de software, esta dívida cria a dificuldade de manutenção de código, e gera ainda mais atrasos e mudanças no produto final.

Neste conteúdo, vamos te nortear a respeito dos débitos técnicos com algumas dicas gerais. Confira!

Como zerar?

É impossível zerar o débito técnico! Você não leu errado. É isso mesmo: acreditar que a solução de todos os seus problemas é acabar com todo o débito técnico do seu projeto, é um tanto quanto ingênuo. A dívida técnica é inevitável e, portanto, sempre irá existir. A única coisa que nos resta fazer é controla-la o máximo possível.

Um exemplo disso é o envelhecimento de um código com o passar do tempo. Parece simples, mas é uma dívida técnica. Portanto, se você ou seu time está na luta para não ter débito técnico, saiba que isso é ruim, e é uma situação que recebe até um nome específico: Gold Plating.

Motivos do surgimento de um débito técnico

Os débitos técnicos podem surgir por diversos motivos, desde o fator tempo, citado acima, até situações mais delicadas. De forma simples, elencamos alguns dos cenários que mais provocam as dívidas em projetos de tecnologia e são eles:

  • Prazos fora da realidade;
  • Falta de conhecimento técnico;
  • Escolha de tecnologia inadequada;
  • Passar do tempo;
  • Falta de uma metodologia de desenvolvimento iterativa (sem feedback e teste do cliente).

Tipos de dívida técnica

Existem 4 tipos de débito técnico, e podemos classificá-los da seguinte maneira:

  • Imprudente intencional: “Sabemos do problemas mas não vamos resolver!”
  • Imprudente não intencional: “Trabalhar com uma nova linguagem de programação”
  • Consciente intencional: “Temos um prazo X, precisamos entregar com esse problemas, depois corrigimos”
  • Consciente não intencional: “Agora que entregamos o projeto sabemos como deveríamos ter feito.”
 

Como mensurar débito técnico

Embora o conceito de débito seja subjetivo, existem diversas maneiras de mensurá-lo, sendo elas:

  • Duplicação de código;
  • Cobertura de testes;
  • Fragilidade de builds;
  • Linhas de código comentadas;
  • Complexidade ciclomática;
  • Coesão do código.

Como tratá-lo

Cada empresa lida com o débito técnico à sua maneira, geralmente de acordo com as metodologias seguidas no dia a dia. Para te dar um norte, vou explicar como fazemos no nosso ecossistema.

Aqui na EZ.devs nós utilizamos a metodologia Kanban, dessa maneira nós sempre colocamos uma porcentagem de tarefas para tratamento de débito técnico na semana. Com isso, sempre temos algo entregável e tratado semanalmente ou quinzenalmente.

Se você trabalhar com SCRUM, pode deixar alguns pontos de folga, para que no final da SPRINT o time possa puxar alguns itens de correção de débito técnico.

Em último caso, você pode criar uma SPRINT ou uma Release apenas com correções de débito técnico. Nós particularmente não gostamos disso, pois não tem geração de valor real para o cliente final. Por isso, em grande parte das vezes, é bem interessante mesclar as técnicas utilizadas.

Para aprender melhor sobre como você pode evitar os débitos técnicos no seu negócio, recomendo que leia este conteúdo: Débito técnico: evite-o de uma vez por todas. Assim, você terá uma visão mais ampla a respeito das soluções.

Débito técnico versus Startups

Quando falamos de Startups, sempre falamos também sobre agilidade para testar hipóteses. Dessa maneira, muitas empresas acabam aceitando – até demais – o débito técnico em prol de lançarem seus produtos o mais rápido possível no mercado.

Este é um assunto um tanto quanto complexo e, para falarmos sobre isso, precisamos dividir as startups em duas etapas:

Antes do product-market-fit

Nesse momento, o objetivo principal da startup é validar seu modelo de negócio. E, sim, nessa fase é muito importante lançarmos o MVP o mais rápido possível. Aqui um pouco de débito técnico vale a pena, desde que esteja no quadrante “Consciente e intencional”.

Esta situação se justifica pois é muito importante decidir o que será deixado de lado para que, em um futuro próximo, estes itens possam ser tratados sem muitos problemas. Nesse momento, especialistas e desenvolvedores podem fazer a diferença.

Escalando

Nessa fase é importante evitar ao máximo a dívida técnica e, inclusive, matar alguns débitos da fase anterior. A partir de agora, surgirão problemas de performance, usabilidade e arquiteturas, por exemplo, que são frutos de dívidas passadas.

Aqui, todo o cuidado é pouco! Afinal, como dito anteriormente, quanto mais débito deixamos, mais difícil fica trabalhar na manutenção do projeto. A partir daí precisamos ser mais exigentes em relação à qualidade do nosso código: defina padrões, faça ainda mais testes e invista em tudo o que for necessário para garantir um alto nível de qualidade.

Confira este vídeo para entender ainda mais sobre débito técnico em startups

E você? Tem problema de manutenção de código no seu projeto? Consegue negociar as pessoas para que sua equipe tenha tempo de tratar o débito técnico do projeto? Conta pra gente aqui nos comentários.

Compartilhar:

Wellington
Último artigo
Por que apostar na terceirização para sistema web?
Próximo artigo
Desenvolvimento Mobile: entenda porque ele é o futuro!