Skip to main content

Domain Discovery: Techniques for Understanding Domains

Domain Discovery is the ongoing process of learning about the business domain. While Event Storming is powerful, it's not the only technique. Staff+ engineers need a toolkit of discovery methods.

TL;DR​

TechniqueBest ForTime Investment
Event StormingComplex workflows, bounded contexts2-4 hours
Domain Expert InterviewsDeep understanding, edge cases1-2 hours each
Domain StorytellingProcess flows, user journeys1-2 hours
Example MappingAcceptance criteria, edge cases30-60 min
Wardley MappingStrategic positioning, evolution2-4 hours
Impact MappingGoals to features1-2 hours

Why Multiple Techniques?​

Different techniques reveal different insights:

Technique 1: Domain Expert Interviews​

When to Use​

  • Starting a new project
  • Deep-diving into specific areas
  • Understanding historical context
  • Discovering edge cases

Interview Structure​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ DOMAIN EXPERT INTERVIEW TEMPLATE (60 min) β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚
β”‚ 1. CONTEXT (5 min) β”‚
β”‚ β€’ What's your role? β”‚
β”‚ β€’ How long have you worked in this domain? β”‚
β”‚ β”‚
β”‚ 2. PROCESS WALKTHROUGH (20 min) β”‚
β”‚ β€’ Walk me through [specific process] β”‚
β”‚ β€’ What happens first? Then what? β”‚
β”‚ β€’ Who's involved at each step? β”‚
β”‚ β”‚
β”‚ 3. EDGE CASES (15 min) β”‚
β”‚ β€’ What can go wrong? β”‚
β”‚ β€’ What's the weirdest case you've seen? β”‚
β”‚ β€’ What rules are never broken? β”‚
β”‚ β”‚
β”‚ 4. TERMINOLOGY (10 min) β”‚
β”‚ β€’ When you say [term], what exactly does that mean?β”‚
β”‚ β€’ Are there different types of [concept]? β”‚
β”‚ β€’ What's the difference between [A] and [B]? β”‚
β”‚ β”‚
β”‚ 5. PAIN POINTS (10 min) β”‚
β”‚ β€’ What's frustrating about the current process? β”‚
β”‚ β€’ What would make your job easier? β”‚
β”‚ β€’ What questions do you get asked repeatedly? β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Powerful Questions​

For Process Understanding:

  • "Walk me through what happens when a customer [does X]"
  • "What's the very first thing that happens?"
  • "What has to be true before you can do [Y]?"
  • "Who needs to approve this?"

For Edge Cases:

  • "What's the strangest case you've ever seen?"
  • "What happens when [unusual scenario]?"
  • "Has anyone ever tried to [abuse case]?"
  • "What rules can never be broken?"

For Terminology:

  • "When you say [term], what exactly do you mean?"
  • "Is that different from [similar term]?"
  • "What would you call [describes concept]?"
  • "Are there different types of [concept]?"

For History:

  • "Why is it done this way?"
  • "Was it always like this?"
  • "What changed and why?"

Recording Insights​

## Interview Notes: [Expert Name] - [Date]

### Key Terms Discovered
- **Policy Bind**: When coverage becomes active (not just "activate")
- **Endorsement**: Mid-term change to policy (not "amendment")

### Process Insights
1. Quote β†’ Underwriting β†’ Bind β†’ Active
2. Can't bind without underwriting approval
3. Payment must be received within 30 days

### Edge Cases
- Policy can be backdated up to 30 days
- "Flat cancellation" = cancel as if never existed
- Reinstatement possible within 60 days of lapse

### Pain Points
- Manual data entry between systems
- No visibility into underwriting queue
- Refund calculations are error-prone

### Follow-up Questions
- [ ] How does reinstatement affect claims?
- [ ] What triggers automatic underwriting vs manual?

Technique 2: Domain Storytelling​

What It Is​

A collaborative technique where domain experts tell stories using pictographic language. Created by Stefan Hofer and Henning Schwentner.

The Notation​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ DOMAIN STORYTELLING SYMBOLS β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚
β”‚ πŸ‘€ Actor (person or system) β”‚
β”‚ β”‚
β”‚ πŸ“„ Work Object (document, data) β”‚
β”‚ β”‚
β”‚ ─────► Activity (verb, numbered) β”‚
β”‚ β”‚
β”‚ πŸ“ Annotation (clarification) β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Example Story​

Running a Session​

  1. Invite domain expert and facilitator
  2. Ask "Tell me the story of [process]"
  3. Draw as they speak (whiteboard or digital)
  4. Number activities in sequence
  5. Clarify ambiguities immediately
  6. Repeat story back to verify

Benefits Over Event Storming​

Domain StorytellingEvent Storming
One expert at a timeGroup activity
Follows one scenarioExplores all scenarios
Linear narrativeParallel exploration
Good for detailGood for breadth

Technique 3: Example Mapping​

What It Is​

A technique for exploring acceptance criteria through concrete examples. Created by Matt Wynne.

The Four Colors​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ EXAMPLE MAPPING COLORS β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚
β”‚ 🟨 YELLOW = Story / Feature β”‚
β”‚ "As a customer, I want to place an order" β”‚
β”‚ β”‚
β”‚ 🟦 BLUE = Rule / Acceptance Criterion β”‚
β”‚ "Order total must include tax" β”‚
β”‚ "Free shipping over $50" β”‚
β”‚ β”‚
β”‚ 🟩 GREEN = Example β”‚
β”‚ "Cart: $45, Shipping: $5, Tax: $4.50, Total: $54.50"β”‚
β”‚ β”‚
β”‚ πŸŸ₯ RED = Question β”‚
β”‚ "What about international orders?" β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Example Map​

🟨 Place Order
β”‚
β”œβ”€β”€ 🟦 Order must have at least one item
β”‚ β”œβ”€β”€ 🟩 Empty cart β†’ Error "Add items first"
β”‚ └── 🟩 Cart with 1 item β†’ Order created
β”‚
β”œβ”€β”€ 🟦 Free shipping over $50
β”‚ β”œβ”€β”€ 🟩 Cart $49.99 β†’ Shipping $5.99
β”‚ β”œβ”€β”€ 🟩 Cart $50.00 β†’ Shipping $0.00
β”‚ └── πŸŸ₯ What about heavy items?
β”‚
β”œβ”€β”€ 🟦 Tax calculated by state
β”‚ β”œβ”€β”€ 🟩 CA address β†’ 7.25% tax
β”‚ β”œβ”€β”€ 🟩 OR address β†’ 0% tax (no sales tax)
β”‚ └── πŸŸ₯ What about international?
β”‚
└── 🟦 Payment must succeed
β”œβ”€β”€ 🟩 Valid card β†’ Order confirmed
β”œβ”€β”€ 🟩 Declined card β†’ Error "Payment failed"
└── πŸŸ₯ What if payment times out?

When to Use​

  • Before implementing a feature
  • When acceptance criteria are unclear
  • To discover edge cases
  • To align developers and product

Session Format (30 min)​

  1. State the story (yellow sticky)
  2. List known rules (blue stickies)
  3. Add examples for each rule (green stickies)
  4. Capture questions (red stickies)
  5. Stop when too many reds (need more discovery)

Technique 4: Wardley Mapping​

What It Is​

A strategic mapping technique that shows components and their evolution. Created by Simon Wardley.

The Map Structure​

                    Visible to User
↑
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚
β”‚ User Need β”‚
β”‚ β”‚ β”‚
β”‚ β–Ό β”‚
β”‚ Component A ──────► Component B β”‚
β”‚ β”‚ β”‚ β”‚
β”‚ β–Ό β–Ό β”‚
β”‚ Component C Component D β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
↓
Invisible

Genesis ──► Custom ──► Product ──► Commodity
(Novel) (Built) (Rental) (Utility)

E-Commerce Example​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ WARDLEY MAP: E-COMMERCE PLATFORM β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚
β”‚ Visible β”‚ Customer Experience β”‚
β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β–Ό β”‚
β”‚ β”‚ Product Search ────► Recommendations β”‚
β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β–Ό β–Ό β”‚
β”‚ β”‚ Shopping Cart ◄──── Pricing Engine β”‚
β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β–Ό β”‚ β”‚
β”‚ β”‚ Checkout β—„β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β–Ό β”‚
β”‚ β”‚ Payment ────────────► Inventory β”‚
β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β–Ό β–Ό β”‚
β”‚ Invisibleβ”‚ Stripe (API) ◄──── Database β”‚
β”‚ β”‚ β”‚
β”‚ └──────────────────────────────────────────────│
β”‚ Genesis Custom Product Commodity β”‚
β”‚ β”‚
β”‚ Strategic Insight: β”‚
β”‚ β€’ Recommendations = Custom (competitive advantage) β”‚
β”‚ β€’ Pricing Engine = Custom (core subdomain) β”‚
β”‚ β€’ Payment = Commodity (use Stripe) β”‚
β”‚ β€’ Database = Commodity (use managed service) β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

When to Use​

  • Strategic planning
  • Build vs buy decisions
  • Identifying core subdomains
  • Technology investment decisions

Connection to DDD​

Wardley StageDDD SubdomainStrategy
GenesisCoreExperiment, iterate
CustomCoreBuild, invest
ProductSupportingBuy or build
CommodityGenericBuy, outsource

Technique 5: Impact Mapping​

What It Is​

A strategic planning technique that connects goals to deliverables. Created by Gojko Adzic.

The Structure​

WHY ──► WHO ──► HOW ──► WHAT
Goal Actors Impacts Deliverables

Example: Increase Order Conversion​

When to Use​

  • Starting a new initiative
  • Prioritizing features
  • Connecting work to business goals
  • Stakeholder alignment

Combining Techniques​

Discovery Journey​

Technique Selection Matrix​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ WHICH TECHNIQUE WHEN? β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚
β”‚ "I don't understand the domain at all" β”‚
β”‚ β†’ Start with Domain Expert Interviews β”‚
β”‚ β”‚
β”‚ "I need to find bounded contexts" β”‚
β”‚ β†’ Event Storming (Big Picture) β”‚
β”‚ β”‚
β”‚ "I need to understand one specific process" β”‚
β”‚ β†’ Domain Storytelling β”‚
β”‚ β”‚
β”‚ "I need to define acceptance criteria" β”‚
β”‚ β†’ Example Mapping β”‚
β”‚ β”‚
β”‚ "I need to make build vs buy decisions" β”‚
β”‚ β†’ Wardley Mapping β”‚
β”‚ β”‚
β”‚ "I need to connect features to business goals" β”‚
β”‚ β†’ Impact Mapping β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Continuous Discovery​

Discovery isn't a one-time activity:

Weekly Practices​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ CONTINUOUS DISCOVERY HABITS β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚
β”‚ DAILY β”‚
β”‚ β€’ Ask "why" when requirements seem odd β”‚
β”‚ β€’ Note unfamiliar terms β”‚
β”‚ β€’ Question assumptions β”‚
β”‚ β”‚
β”‚ WEEKLY β”‚
β”‚ β€’ 30-min domain expert check-in β”‚
β”‚ β€’ Review and update glossary β”‚
β”‚ β€’ Example mapping for upcoming features β”‚
β”‚ β”‚
β”‚ MONTHLY β”‚
β”‚ β€’ Domain storytelling for new processes β”‚
β”‚ β€’ Update context map β”‚
β”‚ β€’ Review bounded context boundaries β”‚
β”‚ β”‚
β”‚ QUARTERLY β”‚
β”‚ β€’ Big picture Event Storming refresh β”‚
β”‚ β€’ Wardley map review β”‚
β”‚ β€’ Strategic alignment check β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Staff+ Interview Questions​

Q: How do you approach domain discovery on a new project?

A: My approach:

  1. Stakeholder interviews - Understand goals and constraints
  2. Domain expert interviews - Learn the vocabulary and processes
  3. Document review - Existing specs, training materials
  4. Big Picture Event Storming - Collaborative discovery
  5. Wardley Mapping - Strategic positioning
  6. Iterate - Continuous refinement as we learn

Q: How do you handle domain experts who don't have time?

A: I make it easy:

  • Short sessions - 30 min instead of 2 hours
  • Async options - Review documents, answer questions via Slack
  • Show value - Demonstrate how their input improves the product
  • Respect their time - Come prepared, don't ask what you could research
  • Executive support - Get leadership to prioritize discovery

Q: How do you know when you've done enough discovery?

A: Signs you're ready:

  • Can explain the domain to a new team member
  • Ubiquitous language is documented and used
  • Bounded contexts are identified
  • Major edge cases are known
  • Team can estimate confidently

Signs you need more:

  • Frequent surprises during development
  • Disagreements about terminology
  • Features that don't fit the model
  • Stakeholders say "that's not how it works"

Quick Reference Card​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ DOMAIN DISCOVERY QUICK REFERENCE β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚
β”‚ Interviews: Deep understanding, edge cases β”‚
β”‚ Event Storming: Bounded contexts, workflows β”‚
β”‚ Domain Storytelling: Single process, linear flow β”‚
β”‚ Example Mapping: Acceptance criteria, rules β”‚
β”‚ Wardley Mapping: Strategic position, evolution β”‚
β”‚ Impact Mapping: Goals to features β”‚
β”‚ β”‚
β”‚ Key Questions: β”‚
β”‚ β€’ "Walk me through what happens when..." β”‚
β”‚ β€’ "What can go wrong?" β”‚
β”‚ β€’ "When you say [term], what exactly...?" β”‚
β”‚ β€’ "Why is it done this way?" β”‚
β”‚ β”‚
β”‚ Continuous Discovery: β”‚
β”‚ β€’ Daily: Question assumptions β”‚
β”‚ β€’ Weekly: Expert check-ins β”‚
β”‚ β€’ Monthly: Update models β”‚
β”‚ β€’ Quarterly: Strategic review β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Next Steps​