Débito técnico é um dos componentes de custos do software mais difícil de identificar, mensurar e reduzir. Além disso, este custo possui valor crescente que reduz o potencial da solução a cada nova iteração.

Débito Técnico

As mudanças ao longo do tempo, tendem a gerar entropia positiva no sistema. Em outras palavras, fica cada vez mais difícil evoluir o sistema com novas funcionalidades ou corrigir as existentes.

Portanto, a redução da entropia, ou em última instância, do custo técnico associado a aplicação deve ser um objetivo tão prioritário quanto atender demandas de negócios ou sustentar o sistema em produção.

Critérios para redução do débito técnico

Em geral, a redução não deve significar mudanças substanciais na arquitetura e muito menos a inclusão de novas funcionalidades.

Em outras palavras, a redução deverá envolver os refatoramentos que não foram possíveis durante o desenvolvimento. Portanto, o objetivo principal é manter o comportamento do sistema intacto enquanto são realizados ajustes internos.

Além disso, é importante não incluir novas funcionalidades ou capacidades durante o processo de redução. Deverá ser uma atividade meramente técnica, visando melhorar a estrutura existente.

Engajamento

Um ponto muito importante no trabalho de redução do débito técnico é engajar a equipe. Em geral, equipes que primam pela qualidade são mais fáceis de gerenciar a expectativa e o envolvimento na realização desta atividade.

Contudo, se há um ambiente que não favorece a melhoria constante, haverá resistência por parte dos desenvolvedores em tentar melhorar algo que está funcionando.

Além do mais, é importante criar uma lista de componentes ou funções que serão ajustadas, alinhando os motivadores com todos os envolvidos. Este engajamento visa garantir que as pessoas saibam o por quê e os benefícios de realizar tais atividades.

Pontos de Apoio

A construção de um sistema deverá prever ações futuras para reduzir o débito técnico. Em geral, vale a máxima que um sistema sem oportunidades de melhoria é um sistema que não foi para produção.

Consequentemente, alguns pontos de apoio ao trabalho de melhoria são importantes, bem como alguns aspectos que podem influenciar a qualidade do trabalho devem ser observados para que sejam tomadas ações técnicas e não técnicas cada vez mais efetivas.

Utilizar marcadores

Utilizar marcadores no código-fonte facilita uma futura identificação de pontos no sistema que podem ser melhorados. Em geral, são usados marcadores como “TODO”, “REDO” ou “HACK”.

Definir um ritmo

Em geral, os projetos de desenvolvimento possuem um volume de trabalho controlado com cargas de trabalho adicionais durante a etapa final de lançamento. Em outras palavras, a equipe sofre um desgaste no final do projeto (mentalmente falando).

Portanto, a etapa de redução de débitos técnicos deve ser uma etapa tranquila que ajude a recuperar a equipe. Além disso, promover a melhoria constante do trabalho realizado sobre pressão.

Tempo de Atividade

Uma sprint de uma ou duas semanas para atividades de redução de débito técnico tende a ser ideal. Por outro lado, se as exigências de ajustes exigirem mais tempo, há um sinal de alerta referente a qualidade da arquitetura aplicada.

Testes de Regressão

Não é porque todos os testes unitários não quebraram após os ajustes é que a aplicação está pronta para ser publicada. Todos os módulos que foram ajustados têm que ter teste de regressão.

Alinhar entendimento

Em geral, redução de débito técnico ou redução de entropia tendem a ser sinônimos. Porém, o entendimento dos envolvidos tem que estar claro. Por outro lado, se nenhum destes termos “casar” bem com a equipe, talvez “melhoria na arquitetura” gere maior engajamento.

Reforço de valores

As atividades de redução de débito técnico tendem a trazer outros valores para a cultura de trabalho da equipe, como por exemplo:

  • Melhoria da qualidade do código-fonte;
  • Senso de propriedade e responsabilidade;
  • Importância de finalizar a atividade dentro do tempo;
  • Percepção do valor do impacto do débito técnico;
  • Importância de aplicar boas práticas de desenvolvimento;
  • Testes, testes e mais testes….

Conflito de Interesses

Em geral, a redução do custo técnico é um investimento da empresa para manter alto o valor do sistema em termos de capacidade. Por outro lado, este investimento compete com as demandas de clientes ou mercado para inclusão de novas funcionalidades.

Portanto, a entrega de valor do trabalho de melhoria tem que estar bem clara para os executivos da empresa de forma a obter engajamento do alto comando da empresa para que a execução do trabalho tenha começo, meio e fim.

Conclusão

O engajamento da equipe é um fator fundamental para o seu sucesso, pois o nível de esforço necessário nesta atividade será proporcional ao envolvimento da equipe com a qualidade.

Do mesmo modo, a atividade de redução do débito técnico deve ter o mesmo valor de uma demanda de negócio ou de mercado para ser efetiva.

Links Complementares

Neste artigo é apresentado o débito técnico como um dos componentes existentes no processo evolutivo de uma Arquitetura de Software.

Neste outro artigo são apresentadas boas práticas de desenvolvimento que ajudam a reduzir a existência de entropia.

Deixe sua opinião