Situação (antes da nossa atuação)
A Data System, com 29 anos de experiência no setor de varejo de calçados e roupas, desenvolveu ao longo de sua trajetória o software USE, amplamente reconhecido por atender às particularidades desse segmento. Durante quase três décadas, a empresa ajudou lojas de varejo de moda a se desenvolverem, expandirem e alcançarem novos patamares de sucesso.
Contudo, à medida que a Data System crescia e conquistava mais clientes, a arquitetura e o design do software começaram a mostrar suas limitações. Tentativas de resolver essas questões por meio de uma iniciativa de modernização “Big Bang” acabaram se revelando inviáveis devido à complexidade e ao tamanho do software.
Diante desse cenário, a Data System enfrentava um grande desafio: como continuar crescendo e atendendo novos clientes sem comprometer a eficiência operacional e a performance de suas soluções?
Implicações
A situação enfrentada pela Data System trouxe diversas dificuldades que impactavam diretamente a operação e o crescimento da empresa:
- Manutenibilidade e evolução: O sistema legado apresentava alto acoplamento entre seus componentes e utilizava tecnologias antigas e obsoletas, tornando a manutenção e evolução extremamente desafiadoras.
- Erros inesperados: A arquitetura e o design excessivamente complexos, aliados ao ponto 1 citado acima, geravam erros pouco convencionais, dificultando tanto a identificação quanto a mitigação dessas ocorrências.
- Escala, disponibilidade e performance: À medida que a complexidade aumentava, a Data System passou a enfrentar gargalos de escala, disponibilidade e performance, o que impactava negativamente a experiência do usuário final e comprometia a eficiência operacional da empresa.
O que fizemos
Para enfrentar os desafios da Data System, iniciamos com uma análise detalhada da aplicação para identificar os pontos de acoplamento e os elementos mais desafiadores a serem modernizados. Com base nessa análise, elaboramos uma estratégia de modernização centrada no estrangulamento gradual do sistema legado.
A estratégia envolveu um ciclo contínuo de trabalho, composto pelas seguintes etapas:
- Identificação dos recursos a serem estrangulados.
- Desenvolvimento das funcionalidades na nova API, com foco na melhoria do design e na modelagem de domínio.
- Validação dos recursos modernizados.
- Reinício do ciclo com novos itens priorizados.
Esse trabalho foi realizado de forma colaborativa, por meio de reuniões semanais com referências técnicas da Data System. Juntos, modernizamos recursos chave, que serviram de exemplo prático e estabeleceram uma base de conhecimento. Essa abordagem capacitou a equipe da Data System a continuar o processo de modernização de maneira autônoma.
Entregáveis
Nossa atuação gerou os seguintes entregáveis para a Data System:
- Visão do design atual da aplicação: Uma análise detalhada identificando os componentes do sistema atual com maior acoplamento e/ou versões mais defasadas. Esse material destacou os pontos críticos que representam os maiores desafios para a modernização.
- Sessões colaborativas de trabalho: Sessões realizadas em conjunto com a equipe da Data System, focadas na resolução de problemas específicos. Essas sessões capacitaram o time a enfrentar situações semelhantes de forma independente.
- Códigos de exemplo: Exemplos de código desenvolvidos para servir de referência e apoiar a equipe de engenharia da Data System no processo contínuo de modernização da aplicação.
Feedbacks
A Data System demonstrou satisfação com nossa rápida e assertiva atuação em problemas críticos e complexos, como a implementação que permitiu à aplicação operar simultaneamente com SQL Server e PostgreSQL.
No entanto, a metodologia de trabalho em ciclos com os líderes técnicos, planejada para disseminar o conhecimento internamente, não alcançou o impacto esperado. Isso ocorreu porque a Data System enfrentou dificuldades em priorizar internamente as rodadas de modernização, o que resultou na concentração do trabalho de estrangulamento apenas nas sessões colaborativas. Esse cenário limitou significativamente o avanço do processo de modernização.