How Event Modeling Breaks Down Information Barriers?
Visualize your goals and outcomes to go beyond silos of information within organizations
Hi Rafael here,
I write articles about the software industry and document my journey building a solo digital multi-media business.
Free subscribers receive a newsletter edition every week, but some articles will have a paywall.
Paid subscribers receive everything without paywall, plus a couple of extra goodies. Please [subscribe] to the paid version if you are interested in AI coding, writing, system thinking, workflow automation, and the interception between human creativity and technology.
How Event Modeling Helps You Understand Your Business?
Event modeling is a collaborative workshop to brainstorm and model business processes. Its primary goal is to ease effective knowledge sharing. The process begins by defining pertinent business events along a timeline.
As the session progresses, new concepts such as commands, external systems and actors, are incorporated into the model.
Each event modeling session has a defined scope, focusing on exploring a specific business process relevant to the group.
Event modeling emphasizes the flow of information within a system, highlighting how data changes and moves through various stages. It involves creating a storyboard that illustrates the system's functionality. This approach prioritizes understanding business processes and user goals over delving into technical implementation details. It encourages modeling the system using terms easily understood by business experts.
Event modeling is conducted visually, utilizing tools like whiteboards or Miro to map out the flow of events and states. A crucial component of this process is drawing and visualizing the end goals.
Event modeling is a collaborative approach to software design that describes a system's behavior over time through events. It encourages collective responsibility for the entire system and decouples the business infrastructure.
The model represents the user's intent independently of the technology used and allows for the manipulation of historical data to inform both technical and business decisions.
Teams working in isolation during workshops tend to maintain silos of information, which event modeling aims to break down. Transparency is essential.
Event modeling helps individuals discover and learn about how a business operates.
During this process, it's important to pay attention to "pivotal events," which are the most significant occurrences that drive major changes within a domain. It's important to note that sub-domains differ from bounded contexts, and the answers to specific questions may yield different outcomes. Still, sub-domains and bounded contexts typically align at the beginning of modeling. In most cases, data in Domain-Driven Design (DDD) examples flows from one context to another without returning to the original context. Thus, effective domain modeling from the outset is crucial.
💡 How Event Modeling Provides A Common Understanding for Stakeholders?
The term "domain" refers to an organization's area of expertise and the environment in which it operates. This concept reminds me of how custom types can simplify code for effective software design.
Understanding the domain serves as the foundation of the application, referred to as the domain model.
To design effective software, it's essential to have a clear understanding of the business's purpose and needs.
Once the decision about the type of system to create is made, it's important to identify the relevant departments and events. Then, these components must be implemented correctly through coding.
By creating custom types, the code can be simplified, making it easier to change in the future.
An organization's domain model represents its area of expertise and the environment in which it operates. It formalizes their processes without altering the environment itself. The domain can be represented through diagrams or plain text.
The domain model serves as the backbone of an application. The framework does not dictate the business processes.
Event modeling approach map operations and establish a common understanding among stakeholders. Having knowledge of the business domain is essential for success.
💡 How to Involve Everyone in the Conversation?
When communicating, use "What" instead of "Why," listen to the answers you receive, and avoid assuming you know what is being requested. Our brains check situations based on power dynamics, levels of autonomy, and predictability for the future.
Show genuine appreciation, warmth, and high energy during interactions with others. People are drawn to those who show interest in them, so make it clear that you're engaged with the person you're talking to. Consider what insights they may have that you don't and focus on learning from them during the conversation. Listen by asking specific questions about what they are saying in real-time, making them feel heard and valued.
To be a good listener, it’s essential to show that you’ve understood exactly what the other person said and encourage them to continue sharing. Mindful communication involves actively listening and engaging with others to foster awareness.
Listen and learn from domain experts, which can only be achieved through effective communication.
The true value of software lies in how it benefits the users.
Instead of focusing on writing functional code, it's crucial to concentrate on crafting the right code. This requires strong communication skills, not coding skills, to grasp the problem at hand.
Identifying the best-suited person to lead the project and collaborating with them is key to ensuring success.
During discussions, take notes and ask questions to contribute. If someone seems disengaged, attempt to involve them in the conversation. Seek advice from a respected colleague if you have a specific question. Writing can also help clarify your thoughts and beliefs.
When summarizing ideas, always start with the main point. Be open to feedback and take responsibility for any issues. When presenting problems, offer solutions to address them. To establish alignment, propose a solution that everyone can support. Avoid academic-style presentations and remain flexible about your desired outcomes.
💭 How To Share Knowledge Through Pairing and Collaboration?
Awareness of power dynamics is crucial in pair programming.
Changes within a team can impact its workflow. It takes time for team members to get to know each other, and to cut this disruption, pair programming can be beneficial.
Always use the newest member's machine when pairing to help new team members prepare to work independently.
Teams committed to making pair programming effective sometimes end up pairing for eight hours a day. Yet, in our experience, this is not sustainable. Pair programming can uncover knowledge gaps or assumptions you weren't aware of. It's important to admit when you don’t know something and to show your partner how to find the information. If you're stuck, acknowledge it and explain how you plan to move forward. Additionally, be honest about when you’re feeling tired.
Before starting the day, check your calendar and agree with your partner on how many hours you will pair. Make sure to plan around any meetings or other commitments you have. If you're pairing on a problem, focus on learning over productivity; you’ll likely gain valuable insights from the experience. Remember, enhancing the team's collective knowledge is more important than completing the task at hand.
After reviewing the task or problem, take turns explaining how you understand it. Brainstorm potential solutions together and select the best one.
Outline the steps needed to achieve that solution.
Pair programming is all about collaboration and shared ownership. If you're feeling too pressured to focus on learning, it might be best to refrain from pairing.
Empower everyone on the team to improve the code, fix bugs, or add new features without relying on specific individuals.


