Scenario Casting is a collaborative tool for structuring and driving software development
projects - based on domain expertise - expressed in scenarios.
Scenario Casting is especially helpful for getting a handle on complex or even
overwhelming domains. If your domain feels like this and there are a lot of people involved too, you
should give Scenario Casting a try.
Scenario Casting allows you to cast a wide variety of ideas, questions and concerns into a
small set of very meaningful scenarios that shed light on the domain. These scenarios set a focus for all
teams and enable them to pull together.
What is a Scenario?
Telling the story of a scenario is like traveling: make sure you hit all the points of
interest, be open to discoveries, and get ideas for future trips.
Scenario Casting is like planning the next trip - or your first one.
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 good scenario is bursting with concrete information about the domain needed to design a
perfect solution for your business - but it does NOT prescribe a specific solution!
How do we find 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.
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?
Customize, split and merge those scenarios to focus on the things that are most relevant at the
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.
As 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.
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.
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.
Perform Scenario Castings within individual subdomains: Discover special cases, negative
cases, variations, expansions, etc. Let the teams build up their individual Scenario
A Scenario Backlog helps to ensure that all relevant points of interest are
addressed step by step.
New relevant scenarios are constantly being discovered, especially during collaborative
modeling sessions, coding, testing and 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. Unlike other concepts that try to scale agile, the Scenario
Backlog is strictly limited to the problem space, thus avoiding upfront design
and premature planning. Instead, the Scenario Backlog helps to tailor Orientation
Scenarios that set a cross-team focus within the problem space and thus shape the
solution-finding process of the individual teams.
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 the 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'
It helps to assess the complexity of the domain and better plan resources for
collaborative modeling workshops.
It allows us to derive an event-driven domain architecture as a basis for bounded
context design and tailored technological decisions.
It serves as a starting point for further scenarios such as negative, alternative,
expansion scenarios, etc.
Scaled yet agile - seriously?
An Orientation Scenario shapes solution design but does not prescribe any specific
solutions! Thus, it remains the task of the individual teams to find and develop solutions in good
old team-owned unscaled agile processes
- embedded in a cross-team agile process that has its origin in the problem space!
This makes it possible to scale agile without actually scaling the individual teams' own agile
processes. No agile team should be burdened with cross-team planning efforts of their tasks over long,
non-agile planning horizons.
Scenario Casting is an agile and collaborative tool based on Domain-driven
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 solutions that make this
easier for everyone. Scenario Casting is one such solution.
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 & moderate Scenario Castings in your domain
and make you hit the ground running.
If you are already a Scenario Casting practitioner, please don't hesitate to send your questions
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
explore a domain step by step and work out requirements,
discover the subdomains inherent in scenarios, and
establish cross-team and intra-team collaboration right from the start.
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.