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β
| Technique | Best For | Time Investment |
|---|---|---|
| Event Storming | Complex workflows, bounded contexts | 2-4 hours |
| Domain Expert Interviews | Deep understanding, edge cases | 1-2 hours each |
| Domain Storytelling | Process flows, user journeys | 1-2 hours |
| Example Mapping | Acceptance criteria, edge cases | 30-60 min |
| Wardley Mapping | Strategic positioning, evolution | 2-4 hours |
| Impact Mapping | Goals to features | 1-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β
- Invite domain expert and facilitator
- Ask "Tell me the story of [process]"
- Draw as they speak (whiteboard or digital)
- Number activities in sequence
- Clarify ambiguities immediately
- Repeat story back to verify
Benefits Over Event Stormingβ
| Domain Storytelling | Event Storming |
|---|---|
| One expert at a time | Group activity |
| Follows one scenario | Explores all scenarios |
| Linear narrative | Parallel exploration |
| Good for detail | Good 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)β
- State the story (yellow sticky)
- List known rules (blue stickies)
- Add examples for each rule (green stickies)
- Capture questions (red stickies)
- 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 Stage | DDD Subdomain | Strategy |
|---|---|---|
| Genesis | Core | Experiment, iterate |
| Custom | Core | Build, invest |
| Product | Supporting | Buy or build |
| Commodity | Generic | Buy, 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:
- Stakeholder interviews - Understand goals and constraints
- Domain expert interviews - Learn the vocabulary and processes
- Document review - Existing specs, training materials
- Big Picture Event Storming - Collaborative discovery
- Wardley Mapping - Strategic positioning
- 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β
- Strategic Decisions - Framework for architectural choices
- Event Storming - Deep dive into the technique
- Bounded Contexts - Applying discovery insights