Event Storming na prática – Post 1

Criado pelo italiano Alberto Brandolini, o Event Storming é um workshop flexível e colaborativo que vai nos ajudar a explorar os domínios de negócio e a modelar o nosso software. A técnica permite visualizar conexões inexploradas e nos ajuda a viabilizar novos modelos de negócios, maximizando a experiência do usuário. A colaboração entre pessoas experts no negócio e técnicos dão mais clareza ao que será construído e auxiliam na projeção de um software orientado a eventos limpo e de fácil manutenção para apoiar negócios em rápida evolução.

O Event Storming, aprimora a colaboração entre os membros da equipe ao fornecer uma abordagem estruturada para modelar sistemas e processos. (GRIMM, 2021). Ao participarem de um workshop de Event Storming, os desenvolvedores e pessoas de negócios podem mapear colaborativamente o comportamento, os eventos e os resultados do sistema, facilitando uma melhor compreensão do design e da funcionalidade do que será desenvolvido.

Figura 1 – Setup do local do workshop. Figura extraída do livro do próprio criador da técnica.


Carreira Análise de Dados

Ao utilizarmos o Event Storming podemos obter algumas vantagens:

Redução de tempo: Quando colocamos as pessoas mais importantes para pensarem juntas, formando um time multidisciplinar, o tempo em relação as dependências e principalmente as dúvidas em relação ao negócio podem ser sanadas mais rapidamente.

Colaboração: De forma lúdica, pessoas de negócios e desenvolvedores podem participar juntos da criação da aplicação. Vamos obter insights valiosos que não obteríamos se estivéssemos pensando cada um em sua vertical organizacional.

Simplicidade: Devemos sempre optar pelo simples. Discussões abertas e sem julgamentos podem ajudar até os mais tímidos a se expressarem. O workshop é um ambiente democrático em que todos podem e devem participar.

Eficácia: Uma das primeiras coisas a se fazer antes de começarmos um workshop é selecionar as pessoas certas, isso nos levará a criações mais ricas e pertinentes ao que será desenvolvido. É um evento prático e as decisões tomadas, podem ser facilmente colocadas em prática.

Breve Roadmap

A técnica de Event Storming de Alberto Brandolini envolve vários estágios que são cruciais para o brainstorming de conceitos tecnológicos. De acordo com o autor, a primeira etapa consiste em identificar as pessoas. Neste sentido, devemos chamar as pessoas que sabem fazer as perguntas certas e as pessoas que têm as respostas. (BRANDOLINI, 2018)

Basicamente vamos identificar na primeira etapa os eventos de domínio. Um evento, geralmente identificado pela cor laranja, deve ser escrito com um verbo no passado. Para cada evento, vamos ter uma ação associada. O ideal aqui é que pessoas de negócio e desenvolvedores possam ter em comum uma linguagem.

A Linguagem ubíqua no contexto de software se refere à linguagem consistente e compartilhada usada por todos os membros da equipe, incluindo desenvolvedores, partes interessadas e especialistas do domínio, durante todo o processo de desenvolvimento de software. (SPÍNOLA, 2012)

Cada evento é precedido de um comando e consequentemente gera uma reação. O outro lado do processo do evento é o que acontece como resultado do evento. Estas são chamadas de reações. As reações são as ações ou resultados necessários após um evento e são anotadas no presente. Por exemplo, um fluxo de processo de reação a evento pode indicar: “Quando uma nova conta for criada, enviaremos um e-mail de confirmação”.

Depois da definição dos eventos, feita de forma livre, passamos a etapa de consistência do fluxo. Vamos identificar os eventos realmente importantes e nos certificar que estão adequados a linha do tempo.

Vamos identificar também os eventos chaves, poucos eventos, mas muito significativos ao fluxo. Estes são frequentemente os eventos com o maior número de pessoas interessadas (um Pedido Realizado pode desencadear reações no departamento de faturamento, e no envio, por exemplo). Estabelecemos algumas “fronteiras”, contextos entre as diferentes fases do fluxo do negócio.

Segundo o próprio autor, 4-5 eventos-pivô são suficientes para permitir uma ordenação mais rápida dos eventos restantes: as pessoas facilmente colocarão seu fluxo dentro da porção correspondente do fluxo e, eventualmente, iniciarão conversas com seus colegas vizinhos.

Facilitador

Um terceiro papel fundamental para a realização do workshop é a de Facilitador. Brandolini afirma que precisamos contar com alguém que possa gerenciar desacordos sem muito peso emocional ou uma posição predefinida sobre o assunto. As responsabilidades do facilitador incluirão a preparação do workshop, fornecendo todo o material de papelaria necessários. Ele vai permitir que os participantes se sintam em um ambiente seguro, permitindo que todos possam contribuir efetivamente.

O facilitador assegura que o workshop progrida de forma organizada, evitando que discussões se prolonguem além do necessário e mantendo todos os participantes engajados. Ele também ajuda a preservar o fluxo de eventos, destacando eventos pivô e guiando a ordenação dos eventos.

Brandolini no livro cita que o facilitador deve manter a ilusão de que tudo está sob controle, mesmo nos momentos de caos e desordem.

Event Storming e Design Thinking

Você pode estar se perguntando se Event Storming e Design Thinking são a mesma coisa. Posso afirmar que não são, embora compartilhem muitos pontos em comum. O primeiro deles é a colaboração envolvendo diferentes partes interessadas. Assim como no Event Storming, o Design Thinking trabalha com times multifuncionais.

Outro ponto relevante é a centricidade no usuário (BENDER-SALAZAR, 2023), o que necessariamente quem está participando de um evento de modelagem de um software precisa ter. Além disso, ambas as metodologias possuem uma fase de descoberta: Event Storming pela identificação e mapeamento de eventos, e o Design Thinking na definição do problema.

Importante frisar que ambas as técnicas possuem caráter visual e uma estrutura muito flexível. As duas incentivam a criatividade e a inovação na resolução de problemas. EventStorming facilita a descoberta de novas maneiras de entender e melhorar o fluxo da aplicação, enquanto Design Thinking busca soluções inovadoras que atendam às necessidades dos usuários de maneira efetiva.

EventStorming e Design Thinking são metodologias complementares que compartilham muitos princípios e práticas fundamentais. Enquanto cada uma tem seu foco e aplicação específicos, ambas são poderosas ferramentas para fomentar a colaboração, a inovação e a resolução de problemas complexos de maneira eficaz e centrada nas pessoas.

Conclusão

Este é o primeiro artigo sobre Event Storming. Nós próximos vou detalhar a técnica e mostrar na prática a maneira como aplico e os pontos em comum com o Design Thinking e o DDD.

Para escrever este post eu utilizei as seguintes referências.

BRANDOLINI, A. Introducing EventStorming. [s.d.].

Design thinking as an effective method for problem-setting and needfinding for entrepreneurial teams addressing wicked problems. Journal of Innovation and Entrepreneurship, v. 12, n. 1, p. 1–23, 13 abr. 2023.

GRIMM, V.; RUBART, J. Modelling Gamified Systems with Event Storming Augmented by Spatial Hypertext. Proceedings of the 4th Workshop on Human Factors in Hypertext. Anais…: HUMAN ’21. New York, NY, USA: Association for Computing Machinery, 6 out. 2021. Disponível em: <https://doi.org/10.1145/3468143.3483927>. Acesso em: 15 jun. 2024

SPÍNOLA, R. O.; TRAVASSOS, G. H. Towards a framework to characterize ubiquitous software projects. Information and Software Technology, v. 54, n. 7, p. 759–785, jul. 2012.

What Is Event Storming? | Lucidchart Blog. Disponível em: <https://www.lucidchart.com/blog/ddd-event-storming>. Acesso em: 14 jun. 2024.

Sobre o autor

Rodrigo Zambon
Sólida experiência em Metodologias Ágeis e Engenharia de Software, com mais de 15 anos atuando como professor de Scrum e Kanban. No Governo do Estado do Espírito Santo, gerenciou uma variedade de projetos, tanto na área de TI, como em outros setores. Sou cientista de dados formado pela USP e atualmente estou profundamente envolvido na área de dados, desempenhando o papel de DPO (Data Protection Officer) no Governo.
0 respostas

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *