CTO perspective on Modeling Techniques
Optimizing Product Development Metrics:
Events - facts are the core shared means of communication in a Team. Used effectively, they can significantly improve the following metrics. Let's delve into how this can be achieved.
Deep Event Modeling provides visualization and a comprehensive description of how information is processed within the system using elementary blocks such as commands, events, and views. This leads to improved team collaboration and a better understanding of the specifications. The most profound benefit is the allowance for repeatable development; the diagram essentially translates directly into source code. With the right tools, this process can be semi-automated, resulting in readable and high-quality code.
Pairing this with Behaviour Driven Development enables non-engineer team members to read and write acceptance tests in Gherkin, a task that was previously challenging or impossible.
DDomain Driven Design, Event Sourcing, and Command and Query Segregation are a few of the many approaches that mesh well with this modeling technique. With Event Modeling, a team can conduct two critical checks:
Feasibility check: Engineers can confirm whether all necessary information is present and ascertain the implementability of the solution.
Business completeness check: The team ensures that the information system supports all required business processes, avoiding the potential of missing crucial functionality that would only be revealed once in production.
With Design Event Storming, engineers can visualize the details of the implementation even before the coding begins. They can identify business rules and detect aggregates when needed.
With Event Storming Process Level, Event Modeling and Customer Journey, requirements gathering is straightforward. The workshops remote or onsite are engaging and time-optimized. They provide a systematic way that everyone can follow.
Since the diagram is used later on implementation phase, Engineers have more motivation to use them. This way, communication with business is significantly improved. Also, since imagination works better with visuals, teams can effortlessly enhance User Experience.
Time to Market
The Time to Market cycle begins earlier with solution discovery.
This method allows you to evaluate solutions effectively, reducing the influence of internal politics. Process Breakdown:
Goal Definition:Begin with a clear problem or goal.
Impact Assessment:Define the changes in customer behavior you're seeking.
Success MetricsIdentify the metrics that will quantify the success.
Evaluation:By the end of this process, you'll have three key numbers: Expected change, Probability of success, and Estimated Cost.
With Event Storming, you can assess the current and desired state of affairs swiftly and trim away any inefficiencies. After the workshop, you'll realize how much resources you've saved by avoiding the implementation of redundant or unnecessary features.
Both modeling techniques will significantly impact Time to Market, as they reduce the likelihood of implementing less valuable features. By focusing on what truly matters to your business and customers, you ensure every development step contributes to your ultimate goals, saving time and resources.
Technology strategy & innovation enabler
In the ever-changing world of technology, new products emerge daily. These innovations can empower your teams to test new ideas and bold improvements. However, it's essential to conduct these experiments in a controlled, data-drivenenvironment. The modeling tools discussed encourage the use of metrics as they are readily available. Moreover, these tools foster a loosely coupled, event-driven architecture, making experimentation (A/B testing) easier than ever before.
More accurate budgeting
Design Event Storming and Event Modeling provides a transparent mean to cost estimations. You can read more about managing cost in our resources..
There's nothing worse than a project plagued with unexpected issues. Modeling techniques provide a lightweight and systematic approach to uncovering unforeseen situations.
There may be instances where business goals and engineering capabilities don't align perfectly. Regular communication and iterative feedback cycles can help bridge these gaps, ensuring that the implemented features provide value and are technically feasible.
System Uptime & Deployment Frequency
How do we ensure continuous system availability? How can we guarantee bug-free deployments? While Unit Tests, Integration Tests, and Behavior Tests certainly help, we need a more balanced approach.
The promise of microservices was similar—they're designed to be small, independent, well-tested, single-resposibility units that continue to function even when one component fails. With Command Query Responsibility Segregation (CQRS) and Event Sourcing, you can achieve similar resilience, but without the added complexity of an additional TCP layer.
One of the extra benefits of these approaches is the ability to retire old 'legacy' code with ease, as if you were simply deleting an old microservice but with less hassle.
The visualization enabled by software modeling techniques allows teams to adopt a systematic approach to User Experience. This eliminates the need for additional workshops. The combination of Event Modeling and notation from the Customer Journey in different swimlanes enables teams to consider every aspect of the user's interaction with the product.
By taking user experiences into account from the very beginning, teams can design a system that not only meets business goals but also delivers an intuitive and enjoyable user journey. This holistic approach leads to more satisfied customers, fostering greater loyalty and encouraging positive word-of-mouth.
Modeling Techniques offer an effective way to streamline software development processes in your organization. They are systematic yet flexible, promoting collaboration while delivering repeatable processes. I'd venture to say that when these modeling techniques are correctly applied, the pains pointed out by the Agile Manifesto no longer present significant challenges:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan