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!
Posts relacionados
4 min de leitura
9 min de leitura
8 min de leitura