Melhoria contínua e refatoração de software

Aqui na AMcom atendemos diversos clientes com desenvolvimento customizado. Além de todo o processo de desenvolvimento, continuamos apoiando nossos clientes na melhoria contínua das soluções que ajudamos a criar e assim estamos atuando cada vez mais em squads, pensando realmente como um time de produto.

Esse modelo é muito bom para todos os envolvidos, mas não é sobre isso que quero falar hoje! Decidi escrever este artigo para contar um pouco sobre a experiência de trabalhar na melhoria contínua de uma solução que ajudei a construir, e sobre como, no meio desse processo, tivemos que adotar algumas estratégias para melhorar o relacionamento com nossos usuários, sendo uma delas a refatoração de código no frontend da aplicação.

Para começar, vamos falar um pouco de conceitos?

O que é o processo de melhoria contínua em software?

O conceito de melhoria contínua nasceu a partir dos princípios Kaizen, palavra que já denota este significado em japonês: Kai = mudar e Zen = melhor.

Na realidade do desenvolvimento de software usamos esse princípio buscando a aplicação de técnicas de qualidade e a criação de funcionalidades que tornem o produto cada vez melhor, trabalhando no seu desenvolvimento para acompanhar as mudanças e evoluções nas necessidades dos usuários.

Uma vez que exista a cultura de melhoria contínua num sistema ou produto, a refatoração de código poderá ser necessária em algum momento.

O que é refatorar um código?

Encontrei essa definição no Devmedia e a achei muito completa:

“A refatoração é o processo de alterar um software de uma maneira que não mude o seu comportamento externo e ainda melhore a sua estrutura interna”.

Ou seja, quando atuamos na refatoração de um código não estamos criando uma nova funcionalidade ou necessariamente alterando o valor percebido pelo usuário, mas sim atuando em melhorias internas na aplicação, que proporcionam diversos benefícios ao produto.

Listei aqui algumas melhorias que podem acontecer a partir de um processo de refatoração:

  • Qualidade de código
  • Legibilidade
  • Melhoria da lógica utilizada
  • Melhorias das técnicas utilizadas
  • Atualização de bibliotecas e referências

Quais são as aplicações práticas da refatoração?

No formato de trabalho em squad vivencio na prática os benefícios e ganhos que a cultura de melhoria continua proporcionam para o negócio, de forma que nos envolvemos na construção de novas funcionalidades, entendendo as necessidades do negócio e nos adaptando à elas.

Recentemente entendemos junto ao cliente a necessidade de melhorarmos a usabilidade da solução. Desta forma encaramos o desafio de implementar um novo projeto de UI/UX no software.

Durante o planejamento deste grande projeto, visando sempre a melhoria contínua do código, aproveitamos o momento e tomamos a decisão de fazer uma refatoração na camada de apresentação da solução – o frontend – visto que a aplicação do novo projeto de UI/UX seria uma alteração considerável na solução.

O principal motivo que nos levou a tomar essa decisão e realizar a refatorção foi possibilitar que este novo projeto de experiência do usuário não conflitasse com o projeto anterior. Neste momento adotamos um único modelo arquitetural, que nos permitiu evitar conflitos e melhorando muito a qualidade de código.

Quais são as vantagens da refatoração para os times?

Acredito que dentro da realidade de cada time de produto, uma vez que a refatoração é encarada como uma necessidade, podemos encontrar diversos benefícios para motivar o time nessa jornada. Aqui nós experimentamos alguns benefícios bem interessantes após a decisão de refatorar a aplicação:

  • Melhorias na qualidade de código
  • Implementação assertiva do projeto de UI/UX
  • Facilidade na manutenção do código
  • Atualização das bibliotecas utilizadas

Concluímos o projeto de refatoração e implementação do novo UI/UX em três meses, e foi muito gratificante participar dessa construção e acompanhar a evolução do software. Como time tiramos diversas lições dessa experiência, e estamos cada vez mais próximos do cliente e do negócio, entendendo juntos os próximos passos, pensando em usuários, tecnologia, valor para o negócio e pessoas.

Espero que essa experiência possa contribuir no processo de melhoria contínua no seu trabalho. Até a próxima!

Deixe seu comentário

CANAL DE ÉTICA E CONDUTA

O Código de Ética e Conduta da AMcom expressa a forma de atuação da empresa em todos os seus negócios, orientando o modo pelo qual seus colaboradores e terceiros devem se comportar e agir em relação aos temas nele abordados.

Ele reúne as principais diretrizes éticas, normas internas e o dever de conformidade com leis e normas externas, especialmente aquelas voltadas ao combate à corrupção, suborno e lavagem de dinheiro, ao assédio e a toda e qualquer prática irregular.

Ele dispõe, ainda, de regras relacionadas aos comportamentos desejados na empresa e que devem ser adotadas por todos, e estimula que seja utilizado o Canal de Denúncia imediatamente caso haja qualquer violação ao código.