Logo Alura para Empresas
Compre agora Fale com especialistas
Artigo

O desenvolvimento de habilidades tech como uma forma de reduzir e resolver o débito técnico

Athena Bastos

Athena Bastos


O débito técnico é o resultado da implementação de soluções rápidas e momentâneas no contexto de desenvolvimento de produtos, sem considerar (ou escolher) a forma mais adequada a longo prazo.

Normalmente, é o que acontece quando lideranças precisam priorizar a velocidade de entrega à perfeição do código. Ou seja, é o “feito é melhor do que perfeito e não feito” da área de tecnologia.

Em geral, a falta de possibilidade de entregar a solução mais adequada possível decorre da falta de habilidade técnica das equipes, altas taxas de rotatividade e necessidade de entrega rápida e produtividade.

O fato é que, seja para tomar a decisão da melhor estratégia e optar (ou não!) pelas ações mais rápidas ou para lidar com as consequências, o débito técnico é sempre um desafio para as lideranças.

Inclusive, conforme os dados da The Growing Threat of Technical Debt, 69% das lideranças de TI entrevistadas consideram o débito técnico uma ameaça para a inovação.

Pensando nisso, o objetivo deste artigo é fornecer insights sobre o conceito de débito técnico, suas consequências e o impacto na produtividade e qualidade do produto.

E mais do que isso, a ideia é explorar práticas e estratégias para gerenciar e reduzir o débito técnico, bem como desenvolver habilidades técnicas e reter talentos em equipes sujeitas a alta rotatividade.

Dentro do cenário de trabalho da fábrica, encontramos um supervisor de projeto masculino envolvido em uma conversa com uma engenheira industrial enquanto ela está concentrada em seu trabalho no computador.

O que é débito técnico

O débito técnico (ou, em inglês, technical debt) se refere ao uso de soluções mais rápidas — e não necessariamente as mais adequadas e perfeitas, para alcançar objetivos de curto prazo.

Em outras palavras, é o resultado de ações tomadas pelas equipes de desenvolvimento de softwares para agilizar a entrega de uma funcionalidade ou de um projeto. Sendo assim, normalmente, essas ações demandam uma refatoração no futuro.

VEJA TAMBÉM:

Ou seja, o débito técnico é o resultado de priorizar a entrega rápida de uma feature ou de um projeto em detrimento de um código perfeito. É, portanto, um trade-off entre o curto e o longo prazo.

Então, ele pode ser uma decisão consciente – por exemplo, como uma forma de fazer uma entrega no prazo certo; ou inconsciente, por falta de conhecimento técnico.

O termo “débito técnico” surgiu em 1992, na conferência OOPSLA’92, sobre engenharia de software, em uma analogia de Ward Cunningham ao débito financeiro — que, se não for pago, acumula juros.

O contexto do débito técnico compreende a tomada de decisões que priorizam a velocidade da implementação, ao invés de escolhas que resolvam o problema por completo.

Dessa forma, ele traz consigo a ideia de que existem melhores formas de fazer. Por isso, o débito técnico pode criar dificuldade na manutenção de códigos, gerar custos adicionais, retrabalhos e engessamento de projetos.

Na prática, já existem ferramentas técnicas que ajudam a identificar a existência de débitos técnicos nos códigos.

No entanto, é bastante incomum que existam produtos de software que não tenham débito técnico. Afinal de contas, ele é, muitas vezes, uma decisão estratégica ou, até mesmo, a única possível diante do contexto.

Descubra como o mercado alcança eficiência operacional por meio da educação em tecnologia - acesse a pesquisa inédita

Quais as razões de existirem débitos técnicos?

Entre as causas para o aumento de débito técnico nos códigos, as cinco principais são:

  • Fatores externos: como pressão de clientes, prazos e dependência de serviços de terceirizadas;
  • Infraestrutura: escolha de tecnologias, ferramentas e plataformas inadequadas.
  • Falta de metodologia: ausência de processos bem definidos, documentações incompletas, falta de refatoração, problemas com etapas de testes, falta de validação e aí por diante.
  • Organizacional: ausência de pessoas qualificadas, falta de treinamento, altas taxas de turnover e sobrecarga das pessoas colaboradoras.
  • Planejamento e gestão: falhas no gerenciamento do projeto e na estimativa do tempo de entrega e foco na produção (não na qualidade).

Quais os tipos de débito técnico

De forma geral, os tipos de débito técnico se diferenciam em relação ao controle que a empresa tem sobre ele e se ele aconteceu (ou não!) em razão da falta de conhecimento do time.

Assim, existem 4 tipos de débito técnico:

  • Imprudente intencional: as pessoas colaboradoras sabem da existência de erros no código, mas lançam o produto sem resolvê-los.
  • Imprudente não intencional: os erros acontecem por falta de desconhecimento técnico das pessoas colaboradoras;
  • Consciente intencional: o débito técnico é uma escolha consciente para entregar o produto dentro do prazo e as pessoas colaboradoras se comprometem a corrigir os erros futuramente;
  • Consciente não intencional: o time de produto concluiu o projeto e, só depois, percebe as falhas no código.
Maior escola de tecnologia do país - saiba mais

Quais os impactos do débito técnico para o seu negócio

Em 2003, um pouco mais de uma década depois do surgimento do termo, Martin Fowler, uma referência na área de engenharia de software descreveu o contexto do débito técnico da seguinte forma:

Doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt. Like a financial debt, the technical debt incurs interest payments, which come in the form of the extra effort that we have to do in future development because of the quick and dirty design choice”.

Ou seja, Fowler comparou o débito técnico com o financeiro porque ambos estão sujeitos ao pagamento de juros. No entanto, no caso do débito técnico, o pagamento é no formato de esforço extra e retrabalho.

De todo modo, o débito técnico impacta diretamente em dois fatores da estratégia de negócio: custo e risco.

Nessa perspectiva, qual é o custo para a empresa manter o débito técnico? E qual é o risco de esse débito técnico se transformar em um problema maior no futuro?

Em uma pesquisa com 120 pessoas (nas funções de desenvolvedoras e tech lead), a Zup perguntou quais eram os maiores impactos relacionados ao débito técnico. Os cinco mais citados foram:

  • 78% respondeu que são questões referentes à baixa qualidade interna;
  • 68% acredita que são códigos mal escritos;
  • 65% afirmam que são problemas arquiteturais;
  • 61,5% votaram em defeitos conhecidos e não corrigidos;
  • 57,3% acreditam que são “atalhos” em relação ao design de produtos.

(Vale mencionar que a pesquisa permitia que as pessoas escolhessem mais de uma resposta).

Como lidar com o débito técnico: estratégias eficazes

Para começar, é importante ter em mente que não existe uma forma de eliminar 100% o débito técnico.

Afinal de contas, é normal que a solução mais rápida seja a única escolha possível, já que uma opção mais completa poderia comprometer o tempo de entrega do produto.

Por isso, é normal que as pessoas desenvolvedoras aceitem que ele existirá, desde que seja controlado.

Uma forma de fazer isso é, por exemplo, lançar o produto dentro do prazo hábil, mas lançar pequenos updates para consertar eventuais bugs.

Sem dúvida, ao longo do processo de desenvolvimento de um software, a primeira medida para lidar com débito técnico é saber da sua existência e mensurar o seu risco.

Para isso, é fundamental considerar os seguintes aspectos:

  • Tamanho de métodos;
  • Linhas de código (LoC) e comentários na aplicação;
  • Cobertura e coesão de código;
  • Complexidade ciclomática;
  • Duplicação de código;
  • Fragilidade de builds e testes automatizados.

Além disso, é possível usar uma técnica de identificação de itens de backlog para dimensionar o débito. Isso é feito através de marcações do que precisa ser corrigido no futuro.

Essa marcação faz com que seja muito mais fácil pesquisar os itens que precisam de otimização.

No entanto, você deve pensar que as dívidas técnicas funcionam como débitos financeiros. Ou seja, uma hora você vai ter que pagá-las e é melhor não deixar acumular.

Depois, é hora de analisar cada aspecto do débito técnico: o que deve ser priorizado no desenvolvimento deste produto?

Também é possível contar com a ajuda de softwares que verificam a qualidade dos códigos, para apontar códigos duplicados, comentários, vulnerabilidades e erros. Além disso, eles também podem sugerir opções melhores.

Como lidar com a alta rotatividade dos times tech

A redução da taxa de rotatividade de pessoas na empresa é possível. No entanto, assim como todas as estratégias do negócio, não existe uma fórmula mágica ou receita de bolo para resolvê-la.

A melhor forma sempre é olhar para dentro da organização e comparar o que ela faz com o que está sendo feito em outras empresas. Ou, até mesmo, comparar o que a cultura da empresa promete e o que ela realmente faz. Esses podem ser dois bons primeiros passos.

Tente analisar os seguintes pontos: como está a comunicação interna? As pessoas colaboradoras estão contentes com os salários e benefícios que recebem? A infraestrutura e o ambiente de trabalho permitem o exercício da função com alto desempenho? Há oportunidades de crescimento?

Além disso, considere as seguintes estratégias de retenção de talentos:

  • Promova um ambiente de trabalho produtivo, não pela pressão pela alta produtividade, mas pela oferta de ferramentas necessárias ao desenvolvimento das funções.
  • Incentive o aprendizado colaborativo dentro do seu time e comunidades de aprendizado;
  • Promova uma cultura de feedbacks (ofereça feedbacks regulares e peça também feedbacks);
  • Invista em programas de treinamento e desenvolvimento das pessoas colaboradoras em tecnologia.

Desenvolvimento de pessoas em tecnologia: uma solução para o débito técnico

Por fim, o aprendizado contínuo é uma ótima estratégia tanto para retenção de talentos, quanto para diminuir os índices de débito técnico.

Afinal de contas, de um lado, uma cultura de aprendizagem contribui para gerar um clima mais positivo e maior satisfação entre as pessoas colaboradoras. Por outro lado, traz benefícios à rotina e à estratégia da empresa, na medida em que promove mais agilidade, produtividade e inovação.

Sendo assim, é extremamente necessário investir no treinamento e desenvolvimento das equipes de TI.

Ainda que os treinamentos sejam pontuais – para superar alguma dificuldade técnica ou desenvolver alguma Soft Skill, por exemplo – a equipe de TI deve refletir sobre como expandir e manter a aprendizagem como parte de sua cultura.

Ou seja, para alcançar as métricas e os objetivos necessários, é fundamental manter os times atualizados e capacitá-los para os desafios do negócio. Só assim, a estrutura da equipe de TI poderá alcançar seu máximo potencial.

Quais habilidades e conhecimentos a sua equipe de TI precisa desenvolver para alcançar a excelência?

A Alura Para Empresas pode fazer parte da sua estratégia de treinamento e desenvolvimento. Fale conosco e conheça nossos cursos e benefícios.

Athena Bastos
Athena Bastos

Supervisora de Conteúdo da Alura Para Empresas. Bacharela e Mestra em Direito pela Universidade Federal de Santa Catarina - UFSC. Pós-graduanda em Branding: gestão estratégica de marcas pela Universidade Castelo Branco - UCB. Escreve para blogs desde 2008 e atua com marketing digital desde 2018.

Organizações que confiam nas nossas soluções corporativas

Junte-se a mais de 5000 empresas que já capacitaram seus times com nossas formações.

  • Logo daa Dasa class=