Scenario Casting is a collaborative tool for structuring software development projects - driven by domain expertise - expressed in scenarios.
Scenario Casting is especially useful for getting to grips with complex or elusive domains. If your domain feels like this, and maybe a lot of people are involved, try Scenario Casting.
Scenario Casting helps you to build software along the core processes of your domain and to work out and refine it step by step.
Scenario Casting helps you cast the many ideas, questions, and concerns in your project into a small set of very meaningful scenarios. These scenarios set a focus for everyone and empower them to pull together.
Scenario Casting in a 5 minutes nutshell:
Watch on
YouTube
Have DDD expert Richard Wallintin explain Scenario Casting to you!:
Watch on
YouTube

What is a Scenario?

A scenario is like a journey of discovery! A scenario enables you to...
Scenario Casting means planning the next trip. The one that seems the most exciting - considering all options.
A SCENARIO is an outline of some interesting situation that implies a certain outcome, e.g. "Ada orders a calzone pizza". It's as simple as that.
A scenario is described from domain perspective in pure domain language. It is concrete, detailed and distinctive.
A scenario makes sense. A good scenario is bursting with concrete information about the domain. It shows all relevant results along an exemplary business process and how they are related.
A scenario does NOT prescribe a solution. It shows an example of what is happening in the domain to help people understand what they need a solution for.

How do we come up with good scenarios?

Find scenarios by looking for examples that show, from a domain perspective, why your ideas, questions, and concerns - or other points of interest - are relevant.
Is one type
of pizza box
enough for our
business?
Ada orders
1 calzone pizza,
1 pizza Margherita,
and 2 kids' pizzas.
Point of interest
Example scenario
The more complex your project, the more diverse the points of interest. The corresponding example scenarios make them compatible with each other and help to get everyone on the same page!

How do we work with scenarios?

A scenario is representative of a whole class of similar business processes. It enables the unbundling of domains along the processes and to tackle complex domains scenario by scenario.
Customize, split and merge scenarios to focus on the things that are most relevant at the moment.
Use scenarios for targeted knowledge crunching: to explore the purpose and mechanisms of business processes, to uncover dependencies and pitfalls, to drill down into detail without getting lost.
If you are a developer, you know that every realistic scenario will sooner or later become reality. So, it's all about choosing the right scenarios to create solutions that are up to any challenge! Scenario Casting will help you find them step by step.
"Using Scenario Casting, we were able to quickly engage in the right discussions with our client in domain language. Domain architecture and the stories to be implemented almost naturally emerged. Everyone feels included. I wouldn't want to gather functional requirements any other way anymore."

Scenario Casting - the Workshop Format

A Scenario Casting is done collaboratively in three iterative steps:
  1. Brainstorm example scenarios of how individual ideas, questions and concerns affect the domain - strictly in domain language! This provides an initial Scenario Backlog outlining the problem space.
  2. Prioritize the Scenario Backlog and agree on scope.
  3. Combine the top scenarios into coherent overarching Orientation Scenarios.
Then flesh out and tell the stories of the Orientation Scenarios in collaborative modeling sessions using
Domain Storytelling or Event Storming.
A Scenario Casting is carried out iteratively. Whenever you start a new iteration or phase of a project, start with a Scenario Casting, to get an overview of the domain and to set a focus for everyone involved.
If you already have a bulging Scenario Backlog, you can skip step 1 (brainstorming) and move on to step 2 (prioritizing). If the highest priority scenarios seem manageable and each seems interesting enough on its own, skip step 3 (combining) and flesh out the individual scenarios directly. Scenario Casting can be extensive and in-depth or very short and concise - depending on your situational needs. Keep it lightweight!

How do we use the results of Scenario Casting?

Now that we've explored the problem space a little further by fleshing out the Orientation Scenarios, let's move on to solution space and build software for it!
Let's use the Orientation Scenarios to define the overall team goal for the next few sprints: Bring the Orientation Scenarios to life! This is, so to speak, a concise “mini-project” that makes sense from domain perspective and also covers all agreed relevant points of interest.
Teams focus on their individual parts of the Orientation Scenarios and develop solutions for those.
Finally, their results are integrated, tested, and signed-off according to the Orientation Scenarios. An Orientation Scenario should always be concrete, detailed and precise enough to serve as a test case.
Then start over with a new Scenario Casting.

Scenario Casting Strategies

When we are still at the very beginning, we analyze longer Orientation Scenarios to look around the domain - like on a sightseeing tour!
Later, we want to make many shorter trips to certain areas to really get to know them better - the Orientation Scenarios become smaller and more varied. The Scenario Backlog helps us to keep track and adjust our Scenario Casting strategy to the needs.
Do scenario castings with "neighboring" subdomains to clarify their interactions.
Encourage teams to build their own scenario backlogs and do Scenario Castings within their subdomains to dig deeper, discover edge cases, negative cases, variations, extensions, etc. and shape their domain models accordingly.
"In combination with Domain Storytelling and Event Storming, we gained a comprehensive overview using Scenario Casting, enabling us to proceed efficiently and structuredly. The three methods complement each other perfectly."

The Artifacts

You probably know that: While you are in the middle of something you stumble upon new stuff that you just mustn't forget to take into account. Impossible to take care of all this without digressing! So, just put them in the Scenario Backlog and plan later when you want to tackle them!
A Scenario Backlog is a collection of scenarios that illustrate all the points of interest that we think should be considered.
New scenarios are popping up all the time, especially during collaborative modeling sessions, coding, testing and of course using the software. They all go into the Scenario Backlog and will be considered in future Scenario Castings.

How do we use the Scenario Backlog?

The Scenario Backlog helps to control your project in the long term and shape the evolutionary software development process without having to commit to solution ideas too early.
The Scenario Backlog is a living object. It's never too late to add new scenarios that need consideration.
The Scenario Backlog is strictly limited to the problem space, thus avoiding upfront design and premature planning.
Instead, the Scenario Backlog helps to cast Orientation Scenarios that set a cross-team focus within the problem space, allowing for the individual efforts of the agile teams to be bundled.
"A good orientation scenario simply provides focus, focus, focus... in the prioritization process, in aligning the 50 teams with each other, in implementation within the teams, in test preparation."
An Orientation Scenario illuminates the problem space. It outlines the main intentions of the actors involved and describes the results they achieve in an exemplary business process along the current points of interest.
New Orientation Scenarios are compiled from the current top priority scenarios of the Scenario Backlog. There is often a causal relationship between scenarios. We make this clear by putting those together. In this way, many small scenarios become one coherent and iconic Orientation Scenario that everyone in the project knows!

What do we use Orientation Scenarios for?

An Orientation Scenario serves many purposes:
  • It sets a cross-team focus for the software development in the immediate future.
  • It serves as a comprehensive test case for the correct integration of the teams' product increments.
  • It helps to assess the complexity of the domain and better plan resources for collaborative modeling workshops.
  • It is a sound basis to identify subdomains and their boundary events for bounded context design and tailored technological decisions.
  • It serves as a starting point for further scenarios such as negative, alternative, expansion scenarios, etc.

Agile at scale - seriously

Agile can be understood as short feedback cycles leading to frequent improvements of both the product and the plan. However, how can this work at scale? It doesn't feel that agile when teams plan long-term cross-team programming tasks.
It might be more helpful if the teams could focus solely on their own products - but receive more orientation to align their results better with those of other teams.
This is where both DDD subdomains and scenario casting come into play: DDD subdomains define the individual team scope in the problem space, and orientation scenarios provide cross-team guidance on what the teams should focus on next within their subdomains. In combination, this enables the teams to work as independently as possible while still collaborating effectively: The shared goal is to bring the Orientation Scenario to life!
An Orientation Scenario sheds light on the business need without prescribing solutions. Therefore, it remains the responsibility of the agile teams to find and implement solutions for their parts of the Orientation Scenario - in the good old, team-owned, unscaled agile way. Each team has the freedom to consider alternative scenarios to the Orientation Scenario and to further develop their product. This allows each team to make the most of the available time while staying in line with the current Orientation Scenario.
Once an Orientation Scenario is brought to life, the teams do another Scenario Casting for the next one.
This is a simple yet powerful, truly domain-driven agile process at scale.

The Background

Scenario Casting is an agile and collaborative tool based on Domain-driven Design (DDD).
The first Scenario Casting was carried out ad hoc in 2018 – driven by the need to event-storm the most relevant scenarios possible with a large group of experts in a very limited time frame. Since then, countless hours of intensive workshops involving dozens of teams have crafted the method into its current form.
Jörn Koch is enthusiastic about ambitious and highly cooperative projects in complex domains.
He sees agile approaches and DDD as the keys to successful software development - keys that can be hard to turn, though. Therefore, Jörn is always on the lookout for lightweight and elegant approaches that make this easier for everyone. Scenario Casting is one such approach.
Jörn is a DDD and agile expert. He works as coach and trainer at WPS – Workplace Solutions.

Get started with Scenario Casting

Are you considering using Scenario Casting in your project?
Let's talk about how you get the most out of Scenario Casting at the current stage of your project.
We are happy to facilitate Scenario Casting Workshops or simply help out with a few pro tips to make you hit the ground running.
Get in touch
If you tried Scenario Casting or if your are already an experienced Scenario Casting practitioner, please don't hesitate to send your feedback!

Get a Training

Would you like to learn how to use Scenario Casting in your organization?
The training shows you how to use Scenario Casting to
The training consists of practical exercises and explained theory (including DDD and agile approaches in a nutshell). It is specifically designed to involve everyone in your project: domain experts, users, BAs, POs, agile masters, testers, UX designers, developers, etc.
Although the training is about software development, no programming skills are required!
The training is available in English / German, online / on-site.
Request training offer
WPS – Workplace Solutions is the organizer of the Scenario Casting training.
Don't forget to check out the other trainings offered by WPS.
News & Events

News & Events around Scenario Casting

JavaMagazin 8.2023
READ HERE
»Mit Orientierungsszenarien zielsicher durch die Fachdomäne navigieren: Domain-Driven Design aus der Gemüsekiste (GERMAN)«
2023/08
A Scenario Casting showcase by Jörn Koch
Karlsruher Entwicklertag 2024
»Software entlang der Kernprozesse entwickeln – mit Scenario Casting«
Agile Day 2024/06/05 - 10:45 a.m.
A talk by Jörn Koch
CoMoCamp 2024 - Vienna
»Scenario Casting Hands-On Session«
2024/05/06 - 10:00-11:45 a.m.
A practical workshop by Jörn Koch
Collaborative Modeling
(CoMo) Madrid - ONLINE
»Introducción a Scenario Casting«
2024/04/30 - 6:30 p.m.
A meetup talk (ENGLISH) & discussion by Jörn Koch
ModernRE 2023 - Leipzig
»Szenario-Casting – mit Szenarios sicher durch die Fachdomäne navigieren (GERMAN)«
2023/10/12 - 2:20-3:00 p.m.
A talk by Jörn Koch
CoMoCamp 2023 - Vienna
»Short sessions on different collaborative modeling methods«
2023/05/04 - 10:00-13:00 a.m.
Practitioners, creators and thought leaders of collaborative modeling methods brought together
OOP 2023 - DIGITAL
»Scenario Casting – Agility Starts in DDD's Problem Space!«
2023/02/08 - 9:00-10:30 a.m.
A talk by Jörn Koch
software@work 2022 - Hamburg
»EDDA – Vom Orientierungsszenario zur Architektur-Blaupause (GERMAN)«
2022/11/04 - 3:30-4:10 p.m.
A talk by Jörn Koch and Sönke Magnussen
SOFTWARE ARCHITECTURE SUMMIT - Berlin
»Scenario Casting – Agilität beginnt in der Fachdomäne (GERMAN)«
2022/09/14 - 2:00-5:30 p.m.
A workshop by Jörn Koch
DDD EUROPE 2021 - ONLINE
»Scenario Casting – Find common ground across teams in collaborative modelling«
2021/02/05 - 10-12 a.m.
A workshop by Jörn Koch