Getting Started

NDD process in 2 minutes

The essence of NDD in 2 minutes

This article introduces Narratives, and the part of the Narrative Driven Development (NDD) process for creating narratives, in 2 minutes. When starting with Narratives, it is useful to first consider them as similar to user journeys telling a story about a user's journey through a system, through time. 

Start by scheduling a collaborative session

When we organize an NDD session we invite participants possessing complementary knowledge. This way we ensure we have the full picture of requirements needed for the solution. To know more, see the facilitation guide. 

When we start our session we begin by figuring out what outcome we’re trying to enable through our narrative. That outcome is the business objective of this journey. An outcome is often composed of a Key Performance Indicator (KPI) that is attached to a user experience action. For example, a user might “receive a shipping notification email” as the outcome of the narrative, which drives a business outcome of “increase number of orders,” which is tracked in a KPI of “# of orders.” 

By starting with an outcome we let it drive the discovery process of our narrative. For this short example, we are going to discuss a simple operation of a user in a financial application viewing their account balance.

Defining the Narrative:

  1. Start with the Outcome: First, we think about what we want to achieve in the end. In our example, the end goal is “The user checks their account balance.”
  2. Add the Last Moment: With the end goal in mind, we add a moment that describes this end state. So, we add “User sees balance” at the end of our narrative.
  3. Identify the First Moment: Next, we figure out the first moment that starts the narrative. Here, the first step might be “They open the app.”

At this point, our narrative has a clear beginning and end.

Unfold Your Narrative Moment by Moment

With the start and end points set, we focus on adding the steps in between. This means detailing the journey step-by-step to make sure the narrative makes sense and covers everything needed for the user to achieve the outcome.

Building the Narrative:

  1. Fill in the Gaps: We find and add the middle moments that connect the start to the end. For example, after “They open the app,” we might add “Waits for checks” and then “Checks are successful.”
  2. Review the Flow and Adjust: We read through the narrative out loud to make sure it makes sense. As the flow is read, you'll find sometimes there are gaps in the Narrative, this is a great time to adjust the order of the moments, or new ones.
  1. Focus on the Outcome: We concentrate on the ideal sequence of moments and note any problems or side issues for later. If you find a moment does not contribute to the outcome, it probably belongs to another Narrative. Move it out of the Narrative so you can come back to it later, and stay focused on the business outcome. 

For example, when a user tries to access the account after opening the application, they may have an expired login and need to authenticate using a Login with multi-factor authentication. That would be an alternate narrative to explore in detail later. 

Helpful Tip: for narratives you need to come back to, add a “Follow-Up” label and add those labels to these parallel narratives. This makes it very easy to capture the action live when you have others in the room or on the video meeting while staying focused on the key narrative you are creating. 

During this phase, we aim to create a clear and complete narrative that shows the user journey from start to finish.

Add Color Through Interfaces and Actions

Once the Narrative can be read and understood by any team member and it clearly communicates the outcome, you have a solid foundation to build upon.

Enhancing the Narrative:

  1. Identify Interfaces: Go over each moment and ask if an interface is needed for this moment to occur. For systems that users interact with, this often means screens or buttons, but it can also include things like chat interfaces or APIs. We link these interfaces to their respective moments in the narrative. For example, “Dashboard screen” goes with “User sees balance,” and “Loading screen” goes with “Waits for checks.”
  1. Define System Actions and transitions: For each interface, ask the question: does it need to display data, or does it tell the system to do something? 
    1. If it needs to display data, we need a “query” system action before the interface.
    2. If it commands the system to execute an action, we add a system action after the interface.

These actions represent what the system does and should have clear names reflecting a high-level business objective achieved by their execution.

After we have defined the system lane, your next collaborative session may involve the exploration of the subscripts. You can read more about this process in the subscript guide for architects.

Exploring Side Narratives:

Finally, we address the alternate flows and alternate and parallel narratives we noted earlier. One of the strengths of the NDD process is that it helps you account for all the aspects of the system you’re building.

  1. Alternate narratives: Each problem or side issue is a side narrative. We should explore these in as much detail as the main narrative. Going back to our example, if the credential checks fail, the side narrative might lead the user to a login screen or an error message.
  2. Parallel narrative: If a side narrative leads to the same end as the main narrative, it is a fork. If it leads to a different end, it is a branch. In our example, if the user has a different role, say admin, they’ll have a different journey. That’s a fork in our narrative.

By adding these elements, we ensure our narrative is complete, clear, and ready to guide the development process.

Your next steps

To get an idea of what it feels like to facilitate an NDD session, check out the example NDD facilitation with narrative.

Getting Started
Introduction to NDD
Architect resources
Architect's Subscript Guide
Architect resources
Single Source of Truth
Architect resources
Anti Patterns
Architect resources
How NDD Works at Scale
Architect resources
NDD and the Supergraph
About NDD
Glossary
About NDD
Origins
About NDD
Community