BLOG

Refatoração de código: como evitar para ganhar tempo?

Conheça sobre aproveitamento de códigos, features, agilidade e economia de tempo no desenvolvimento de software com a StackSpot.

Dificilmente algum projeto da sua empresa está livre de refatoração de código em algum momento do processo. É estimado que o retrabalho corresponda de 25 a 40% do esforço total do desenvolvimento do projeto e desse retrabalho, 70 a 80% é devido a erro de especificação de requisitos, de acordo com a pesquisa de Gustavo Souza e Gláucia Silva, da Universidade Federal de Viçosa, em Minas Gerais.

Cristiano Baumgartner, do Testing Company, aponta que, de acordo com um levantamento do PMI (Project Management Institute), 26% das empresas afirmam que o retrabalho é um dos problemas mais frequentes em projetos.

E quais seriam os vícios durante o ciclo de vida do projeto que poderiam influenciar esses números? Confira abaixo no conteúdo sobre refatoração de código.

O que motiva as equipes re-codarem com tanta frequência?

Existem inúmeras possibilidades em um projeto que gere a necessidade de reescrever (ou re-codar, refatorar, etc) algo que já estava publicado ou em vias de entrar em produção. Confira quais são as mais comuns:

1. Falhas no levantamento de requisitos e testes especializados

Um dos argumentos mais comuns no ciclo de desenvolvimento dos projetos é a falta de tempo para levantamentos e testes, por conta da grande carga cognitiva necessária para a execução das tarefas de desenvolvimento

A dificuldade de alinhamento entre as pessoas usuárias e desenvolvedoras e a necessidade de construir um projeto “do zero”, acaba impactando mais no tempo do ciclo de desenvolvimento do que no levantamento da necessidade, ou seja, aquele velho argumento: precisamos entregar pra ontem!

De acordo com Dean Leffingwell, criador do Scaled Agile Framework, os problemas mais complexos encontrados em projetos apontam em relação à definição e entendimento de requisitos como premissa fundamental.

Ainda sobre o tema, de acordo com o PMBOK, Project Management Body of Knowledge, um guia referência sobre gerenciamento de ações, o ciclo de vida de um projeto se divide em quatro fases. Sendo duas delas respectivas a identificação e levantamento de requisitos, uma fase de desenvolvimento e uma fase de testes. Ou seja, 50% do projeto deveria ser gasto com análises e levantamentos, 25% com desenvolvimento e 25% com testes.

Caso o tempo de desenvolvimento pudesse ser diminuído de uma forma consistente, as respectivas equipes responsáveis teriam mais tempo para fazer o planejamento do projeto e o levantamento de requisitos. Dessa forma, resultando em uma entrega mais assertiva, de acordo com a expectativa da pessoa usuária e melhor testada.

2. Código duplicado

Com a cultura e ampla adoção dos microsserviços e publicação em nuvem, nos deparamos com uma maior fragmentação dos projetos, com serviços menores e com funções específicas.

3. Muitas equipes distribuídas, sem integração entre si

Em grandes empresas, com muitos times de pessoas desenvolvedoras, é comum ter várias equipes atuando em um mesmo projeto, ou mesmo que seja em outros projetos. Cada profissional tem uma percepção diferente e forma de trabalho

Isso faz com que cada time e cada projeto acabe tendo formas diferentes de fazer a mesma coisa, como por exemplo, formas diferentes de implementar uma mesma lógica, sem padronização, o que também acaba dificultando em muito a manutenção e a documentação dos processos na empresa.

Quando acontece da pessoa mudar de time/projeto acaba sendo como se a pessoa tivesse sido contratada novamente pela empresa e todo o conhecimento adquirido por fim, não é utilizado em função dessa falta de padronização. O mesmo acontece quando uma nova pessoa inicia sua jornada, sua curva de aprendizado acaba sendo mais demorada.

Enfim, times otimizados e empresas consolidadas que focam no ciclo de vida do desenvolvimento de software pautado no levantamento de requisitos e testes automatizam e padronizam inúmeros processos.

Sobre a StackSpot

A partir dessas dores, nasceu a StackSpot. A plataforma oferece conjuntos de ferramentas para acelerar o processo de desenvolvimento, padronizar e facilitar a publicação dos projetos, centralizando os templates com as tecnologias utilizadas na empresa, dando uma maior agilidade e assertividade, diminuindo a possibilidade de erros humanos.

Ao criar um projeto novo, utilizando o STK, um trabalho que levava meio período ou um dia, pode ser executado em poucos minutos. Dessa forma, criando um projeto funcional, com plugins adicionando funcionalidades, como conexão a banco de dados, observabilidade, dentre outros.

Além do desenvolvimento em si, a StackSpot auxilia na publicação dos projetos, diminuindo a carga cognitiva da pessoa desenvolvedora e a necessidade de configurações manuais, automatizando o desenvolvimento e deploy. Ou seja, tudo aquilo do projeto que foi feito mais de uma vez, pode ser transportado para uma stack, automatizado e flexível, tornando tudo muito mais simples.

E você? Tem alguma experiência sobre refatoração de código que gostaria de compartilhar? Já conhece a StackSpot e todas as facilidades que ela pode trazer para seu projeto? Comente aqui embaixo!

Referências

BAUMGARTNER, Cristiano. Retrabalho em projetos de software: será que ele está impactando a produtividade?. Testing Company, Novembro 2019. Acesso em: 06 de Setembro de 2022. 

LEFFINGWELL, D.; WIDRIG, D. (2003). Managing Software Requirements. Boston:

Addison Wesley.

SOUSA, G. G.; SILVA, G. B. Análise de focos de retrabalho em repositórios de software: um estudo em projetos do GitHub. Universidade Federal de Viçosa, Minas Gerais. Setembro de 2019.

STACKSPOT. Como a StackSpot funciona?. Documentação StackSpot. Versão 4.2. Disponível em DOC STACKSPOT. Acesso em: 06 de Setembro de 2022.

Sobre o autor

Pedro Henrique Massa Pilz

Apaixonado por tecnologia, desenvolvedor há 14 anos, geek, pai e cadeirante nas horas vagas.

Posts relacionados

Continue explorando a StackSpot AI

Ícone de uma Folha de Documentos, na cor laranja vibrante, sobre fundo transparente.

Cases

Confira como impulsionamos negócios com soluções que economizam tempo.

Ícone de um Livro, na cor laranja vibrante, sobre fundo transparente.

Imprensa

Confira as últimas notícias, conteúdos e destaques da StackSpot na mídia.

Ícone de uma Pasta de documentos, na cor laranja vibrante, sobre fundo transparente.

Docs

Tudo o que você precisa para dominar a StackSpot AI, de forma simples e em um só lugar.

Ícone de uma Pessoa representando um Usuário, na cor laranja vibrante, sobre fundo transparente.

Sobre

Sua plataforma de agentes inteligentes para todo o ciclo de desenvolvimento.

Receba a nossa newsletter

Compartilhamos insights, artigos e conteúdos relevantes sobre tecnologia. Uma vez por mês, sem encher sua caixa de entrada.