Collaborative Software Design- How to facilitate domain by Evelyn van Kelle, Gien Verschatse & Kenny Baas-Schwegler

Collaborative Software Design- How to facilitate domain by Evelyn van Kelle, Gien Verschatse & Kenny Baas-Schwegler

File Type:
PDF10.15 MB
Category:
Collaborative
Tags:
DesigndomainEvelynfacilitateHowSoftwarevan
Modified:
2025-12-10 14:40
Created:
2026-01-03 04:00

1. Quick Overview

This book focuses on practical techniques for facilitating collaborative workshops to model and design software domains, emphasizing tools like Event Storming and Domain Storytelling to align teams on business domains. Its main purpose is to equip facilitators with skills to run effective, inclusive sessions that bridge business and technical stakeholders, leading to better software architecture in agile environments. Target audience includes software architects, developers, product owners, scrum masters, and agile coaches seeking to improve domain-driven design (DDD) through collaboration.

2. Key Concepts & Definitions

  • Domain-Driven Design (DDD): An approach to software development that focuses on modeling the core business domain and its logic, ensuring software aligns closely with real-world business needs.
  • Event Storming: A collaborative workshop technique using sticky notes to map domain events chronologically, uncovering processes, aggregates, and pain points in a visual, low-tech way.
  • Domain Storytelling: A method where participants narrate business stories using personas and steps on a canvas to elicit requirements and identify bounded contexts.
  • Bounded Context: A boundary within which a particular domain model is defined and applicable, preventing the "big ball of mud" in large systems.
  • Facilitation: The art of guiding group discussions to achieve consensus, manage dynamics, and produce actionable outcomes without imposing personal views.
  • Context Mapping: Visual mapping of relationships between bounded contexts, using patterns like Partnership, Shared Kernel, or Anti-Corruption Layer to integrate systems.
  • Aggregate: A cluster of domain objects treated as a single unit, ensuring data consistency through a root entity.

3. Chapter/Topic-Wise Summary

Chapter 1: Introduction to Collaborative Domain Modeling

  • Main theme: Why collaboration is essential in software design and the pitfalls of siloed development.
  • Key points:
    • Traditional design fails due to miscommunication between business and tech.
    • Benefits: Faster alignment, reduced rework, emergent architecture.
  • Important details: Historical context from Eric Evans' DDD; role of workshops in agile/DevOps.
  • Practical applications: Use in startups scaling from monoliths to microservices.

Chapter 2: Facilitation Fundamentals

  • Main theme: Skills and mindset for effective facilitation.
  • Key points:
    • Neutrality, active listening, timeboxing sessions.
    • Handling difficult participants (e.g., dominators, silent experts).
  • Important details: Prep checklist: Venue, materials (stickies, timers), agenda.
  • Practical applications: Example: Icebreakers for remote vs. in-person workshops.

Chapter 3: Event Storming in Depth

  • Main theme: Step-by-step guide to Event Storming.
  • Key points:
    • Orange stickies for domain events; red for hot spots; blue for commands.
    • Phases: Explorer (big picture), Organizer (timelines), Refiner (DDD elements).
  • Important details: Timeline from past to future; identify aggregates and policies.
  • Practical applications: E-commerce order process mapping revealing bottlenecks.

Chapter 4: Domain Storytelling and Other Techniques

  • Main theme: Complementary tools like Domain Storytelling, User Story Mapping.
  • Key points:
    • Personas drive narratives; canvases reveal contexts.
    • Combine with Wardley Mapping for strategy.
  • Important details: Patterns for storytelling: "As a [persona], I want [goal] so that [benefit]".
  • Practical applications: Banking app design uncovering regulatory contexts.

Chapter 5: Context Mapping and Integration

  • Main theme: Scaling collaboration across teams.
  • Key points:
    • 7 DDD context mapping patterns (e.g., Customer-Supplier, Conformist).
    • Visual maps prevent integration failures.
  • Important details: Anti-Corruption Layer translates between contexts.
  • Practical applications: Enterprise case: Mapping HR and Finance systems.

Chapter 6: Running Workshops and Case Studies

  • Main theme: Real-world application and pitfalls.
  • Key points:
    • Hybrid/remote facilitation tips (tools like Miro).
    • Measure success: Actionable backlog, team buy-in.
  • Important details: Case studies from authors' experiences.
  • Practical applications: Scaling workshops for 50+ participants.

4. Important Points to Remember

  • Critical facts: Event Storming is lightweight (1-2 hours for MVP), Domain Storytelling excels for non-tech stakeholders.
  • Common mistakes:
    • Skipping icebreakers → Low engagement; avoid by starting with "two truths and a lie".
    • Overloading sessions → Use timeboxing; aim for 4-8 hours max.
  • Key distinctions: | Concept | Focus | Output | |---------|--------|--------| | Event Storming | Process/events | Timeline, aggregates | | Domain Storytelling | Narratives/requirements | Bounded contexts, stories | | Context Mapping | System integration | Relationship diagrams |
  • Best practices: Always debrief post-workshop; iterate models in code sprints; invite cross-functional teams (biz + dev + ops).

5. Quick Revision Checklist

  • Essential points:
    • Memorize Event Storming colors: Orange (events), Red (pain), Yellow (actors), Blue (commands), Green (policies).
    • DDD core: Ubiquitous Language, Bounded Contexts, Aggregates.
  • Key terminology:
    • Ubiquitous Language: Shared vocabulary across team.
    • Saga: Distributed transaction pattern for microservices.
  • Core principles:
    • Facilitate, don't dictate.
    • Visualize everything.
    • Applications: Microservices decomposition, legacy modernization.

6. Practice/Application Notes

  • Real-world scenarios: Use Event Storming to refactor a monolithic e-commerce app into microservices.
  • Example use case:
    1. Problem: Team disagrees on "order" definition.
    2. Workshop: Map events (OrderPlaced → PaymentProcessed).
    3. Outcome: Two bounded contexts (Sales, Payments).
  • Problem-solving approaches:
    • Start broad (Explorer mode), zoom in (Refiner).
    • Diverge (brainstorm), converge (vote/dot-voting).
  • Study tips: Practice with free Miro templates; role-play facilitation with peers; review DDD tactical patterns flashcards.

7. Explain the concept in a Story Format

Imagine Raju, a young software engineer in bustling Mumbai, working for a startup called "VeggieFresh" that delivers fresh vegetables to homes in India, just like BigBasket but for small farmers in Maharashtra. Raju notices the team is confused: Farmers say "despatch" means loading trucks at dawn, but developers code it as "shipped after payment." Orders get delayed, customers complain, and farmers lose money during monsoon seasons.

One day, their agile coach, inspired by the book, calls a "Domain Jam" workshop like a family Diwali planning session. Everyone gathers—farmers, delivery riders, app devs, and even a Mumbai auntie representing customers—with colorful sticky notes (oranges for events like "Truck Loaded," reds for pains like "Traffic Jam Delay"). Raju facilitates: "No bosses here, just share stories!"

They timeline the veggie journey: "Farmer Harvests → Quality Check → Customer Orders via App → Payment via UPI → Rider Picks Up → Delivery to Doorstep." Stories emerge: "As a farmer in Pune, I want early payment alerts so I can buy seeds before rains." Hot spots reveal two worlds: "Farm Ops" (rural, weather-dependent) and "City Delivery" (urban, traffic-heavy). They draw boundaries like Mumbai local trains separating compartments, using "Anti-Corruption Layers" so farm delays don't crash city apps.

By evening, like cracking a tough Bollywood plot, they have a clear map. VeggieFresh builds better apps, farmers earn more, customers get fresh bhindi on time, and Raju becomes the hero facilitator. This collaborative magic turns chaos into code that truly helps India's veggie supply chain!

8. Capstone Project Idea

Project Idea: "DomainJam" - A Web-Based Collaborative Workshop Platform
Build an online tool for remote Event Storming and Domain Storytelling workshops, using canvases, real-time sticky notes, voting, and auto-generated DDD diagrams. Features: Miro-like boards, timer, breakout rooms, export to PlantUML for code skeletons.

Societal Impact: Democratizes software design for underserved teams in India (e.g., rural startups, NGOs building farmer apps), reducing miscommunication that causes 70% of project failures. Helps scale local solutions like agri-tech or health apps, boosting rural economies and digital inclusion.

Expandable to Startup: Start as open-source, add premium AI facilitation (e.g., auto-detect aggregates), integrations (Jira, GitHub), enterprise plans. Monetize via SaaS subscriptions; potential valuation like Mural.io (valued at $2B).

Quick Start Prompt for Coding Language Models:

Build a full-stack web app called DomainJam using React.js (frontend), Node.js/Express (backend), Socket.io for real-time collaboration, and MongoDB. Core features: Drag-drop sticky notes (orange events, red pains), timeline canvas, user auth/rooms, voting polls, and export to PDF/UML. Use Tailwind CSS for UI. Provide complete code structure with README for deployment on Vercel.

⚠️ AI-Generated Content Disclaimer: This summary was automatically generated using artificial intelligence. While we aim for accuracy, AI-generated content may contain errors, inaccuracies, or omissions. Readers are strongly advised to verify all information against the original source material. This summary is provided for informational purposes only and should not be considered a substitute for reading the complete original work. The accuracy, completeness, or reliability of the information cannot be guaranteed.

An unhandled error has occurred. Reload 🗙