Ferramentas de análise estática ajudam os times a produzir “código limpo”

Elemar Júnior

Empiricamente, todos sabemos que os desenvolvedores gastam muito mais tempo tentando entender código antes de começar a fazer qualquer alteração que resolva um bug ou entregue alguma funcionalidade para o negócio. Há quem diga que essa relação chega a ser de 90/10, ou seja, em uma hora de trabalho, são investidos 54 minutos entendendo o código e apenas 6 fazendo algo que, efetivamente, entrega valor.

Nesse contexto, qualquer iniciativa que reduza o esforço necessário para entender código tem potencial de causar impacto enorme de produtividade – tanto na perspectiva técnica dos times de desenvolvimento, quanto na perspectiva econômica que interessa tanto o negócio.

Há tempos, sabemos que o caminho para reduzir o tempo gasto entendendo código é empenhando algum esforço escrevendo código-limpo que é mais fácil de entender. Infelizmente, a formação de profissionais com essa competência exige tempo. É difícil, caro e toma tempo fazer com que todos no time possuam, de forma nivelada, conhecimento, habilidades e, principalmente, as atitudes imprescindíveis para esse fim. Exatamente por isso, é necessário que busquemos formas de abreviar esse processo.

Dentre as várias iniciativas que conhecemos para melhorar a qualidade do código produzido, em um ambiente saudável, a que costuma produzir efeitos mais imediatos é a adoção de ferramentas de análise estática automatizada de código.

Em .NET, por exemplo, ferramentas como Resharper e NDepend atingiram níveis de maturidade surpreendentes e conseguem produzir insights valiosos mesmo para programadores experientes. Em outras linguagens e plataformas, há ferramentas igualmente poderosas.

Seja integrando-as as IDEs, seja incluindo-as como etapa no processo de Build, as ferramentas de análise estática conseguem identificar “sujeiras” comuns de escrita e indicar alternativas para a limpeza.

Modernamente, essas ferramentas consolidam e explicitam o conhecimento da comunidade sobre como escrever código limpo. Métodos muito grandes, com muitos parâmetros, mal comentados, com alta complexidade são identificados. Classes muito grandes, com baixo nível de abstração e oportunidades de reduzir o acoplamento são detectadas. Chamadas ao banco de dados realizadas  na interface, referências cíclicas, objetos criados sem necessidade são apontados. Padrões de nomes para variáveis, métodos, classes, namespaces são especificados e indicados. Se não bastasse tudo isso, a cada nova versão essas ferramentas ganham mais e mais capacidades que podem acelerar tanto o processo de desenvolvimento quando gerar métricas confiáveis que suportem o planejamento de evolução do software.  

Treinar o time é, sem dúvidas, fundamental. Melhorar a cultura é uma necessidade inquestionável. Mas, modernamente, é difícil encontrar boas razões para que ferramentas de análise estática não sejam amplamente incorporadas as rotinas das organizações. Os investimentos são nulos frente aos benefícios potenciais.

Em resumo

O problema
Desenvolvedores gastam muito tempo entendendo e depurando código e acabam tendo pouco tempo, proporcionalmente, para fazer alterações que agregam valor. Esse desperdício poderia ser minimizado se o código fosse bem escrito – a ponto de facilitar o entendimento. Infelizmente, é necessário muito tempo para formar profissionais com competência para escrever código assim.
O insight
Ferramentas de análise estática modernas conseguem detectar e apontar oportunidades de melhoria de código. Elas podem ser integradas tanto a IDEs quanto ao processo de build e, bem utilizadas, aceleram a capacitação do time para escrita de código limpo.
Os benefícios
Quanto menos tempo os desenvolvedores dedicam para entender código, mais tempo tem disponível para produzir novas features, melhorando o Velocity.

Compartilhe este insight:

Comentários

Participe deixando seu comentário sobre este artigo a seguir:

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments

AUTOR

Elemar Júnior
Fundador e CEO da EximiaCo atua como tech trusted advisor ajudando empresas e profissionais a gerar mais resultados através da tecnologia.

NOVOS HORIZONTES PARA O SEU NEGÓCIO

Nosso time está preparado para superar junto com você grandes desafios tecnológicos.

Entre em contato e vamos juntos utilizar a tecnologia do jeito certo para gerar mais resultados.

Insights EximiaCo

Confira os conteúdos de negócios e tecnologia desenvolvidos pelos nossos consultores:

Arquitetura de Dados

Insights de um DBA na análise de um plano de execução

Especialista em performance de Bancos de Dados de larga escala
Arquitetura de Software

Estratégias para modernização do legado

Desenvolvedor .NET/NodeJs e especialista em Kafka com experiência em startups e grandes empresas
Infraestrutura e Nuvem

Migração para a nuvem, mais do que mudança tecnológica, implica em mudança da cultura organizacional

Engenheiro de nuvem, arquiteto de software e especialista em Containers e Devops

Acesse nossos canais

Simplificamos, potencializamos e aceleramos resultados usando a tecnologia do jeito certo

EximiaCo 2022 – Todos os direitos reservados

0
Queremos saber a sua opinião, deixe seu comentáriox
()
x

Ferramentas de análise estática ajudam os times a produzir “código limpo”

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Condição especial de pré-venda: R$ 14.000,00 - contratando a mentoria até até 31/01/2023 e R$ 15.000,00 - contratando a mentoria a partir de 01/02/2023, em até 12x com taxas.

Tenho interesse nessa capacitação

Para solicitar mais informações sobre essa capacitação para a sua empresa, preencha o formulário a seguir:

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

O seu insight foi excluído com sucesso!

O seu insight foi excluído e não está mais disponível.

O seu insight foi salvo com sucesso!

Ele está na fila de espera, aguardando ser revisado para ter sua publicação programada.

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse nessa solução

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse neste serviço

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

× Precisa de ajuda?