Os códigos legados podem apresentar desafios significativos quando se trata de modernização. Tecnologias desatualizadas, falta de documentação e regras de negócio complexas dificultam a compreensão e modificação desses sistemas. No entanto, com o event storming, as equipes podem enfrentar mais facilmente o processo de modernização enquanto adquirem um profundo entendimento das regras de negócio e comportamento do sistema. Neste artigo, exploramos de forma resumida como essa técnica pode ser utilizada na modernização do legado.
Identificando eventos e conhecendo o domínio
Antes de iniciar qualquer implementação ou alteração no código, é extremamente importante compreender o domínio e as complexidades do sistema legado existente. O event storming proporciona um ambiente colaborativo onde especialistas de domínio, desenvolvedores e partes interessadas podem se unir para compartilhar seus conhecimentos do sistema e mapear os eventos e atividades importantes para o negócio.
Durante a sessão de event storming, os participantes adquirem um conhecimento mais aprofundado do negócio por meio do mapeamento e documentação dos eventos que ocorrem no sistema legado.. Esse exercício ajuda a descobrir regras de negócio ocultas, permitindo que todos tenham um conhecimento mais profundo do sistema, facilitando insights sobre os requisitos e restrições do sistema. Ao visualizar os eventos e suas relações, as equipes podem entender melhor o subdomínio core do sistema legado.
Com os eventos identificados, os participantes constroem um modelo centrado em eventos, geralmente representado como uma linha do tempo ou mapa de eventos. Esse modelo fornece uma visualização clara do comportamento do sistema, enfatizando a sequência de eventos e seus efeitos no domínio. Ao focar nos eventos, as equipes podem superar as limitações da implementação legada e obter uma visão completa do comportamento do sistema.
Iniciando a refatoração
Analisar o modelo centrado em eventos permite que as equipes identifiquem agregados, que representam grupos de eventos relacionados. Agregados ajudam a estabelecer bounded contexts dentro do sistema, permitindo esforços de refatoração mais focados e gerenciáveis, diminuindo drasticamente a carga cognitiva dos times. Ao encapsular eventos e comportamentos relacionados, os agregados fornecem uma abordagem estruturada para organizar e modernizar o sistema.
Com uma compreensão clara do domínio, eventos e agregados, as equipes podem iniciar o processo de refatoração e reescrita do código legado. O modelo centrado em eventos serve como referência, orientando o redesenho e implementação do novo sistema. Ao incorporar princípios de refatoração modernos, como por exemplo o padrão strangler fig, as equipes podem transformar gradualmente o código legado em uma solução mais compacta, mais fácil de manter e expandir. Com a construção dos bounded contexts finalizadas, conseguimos identificar quais agregados estão interligados, permitindo a definição de fronteiras e, potencialmente, o surgimento de novos serviços.
Conclusão
A modernização do legado pode ser uma tarefa desafiadora, mas com o event storming como um guia, as organizações podem enfrentar o processo com clareza e colaboração entre as partes. Ao utilizar o event storming para descobrir regras de negócio ocultas, criar um modelo centrado em eventos e identificar bounded contexts, as equipes podem modernizar efetivamente seus sistemas legados.
A modernização é um processo iterativo. Ao longo da jornada, é essencial validar continuamente o código refatorado e o design do sistema em evolução com especialistas de domínio e partes interessadas. Essa abordagem colaborativa garante que o sistema modernizado capture com precisão o comportamento desejado e atenda às necessidades do negócio.