chapter two

2 What is collaborative modeling

 

This chapter covers

  • Understanding the difference between complicated and complex problems
  • Explaining collaborative modeling
  • Understanding domain-driven design
  • Comparing different collaboration tools
  • Investigating the characteristics of collaborative modeling

"All models are wrong, but some are useful"

George box

We start this chapter with explaining why it is essential for development teams to understand the business and the problems they are building solutions for. But it doesn't stop at understanding the business. We want developers to engage in the design process actively because developers have loads of knowledge from a technical side that has the potential to improve the business with that software. That is the true potential of collaborative modeling. And that potential of collaborative modeling is often spoken about in Domain-Driven Design. It will not come as a surprise to the readers that know us that we are a big fan of approaching software delivery with DDD, and is a big part of how we design and build software. So we find it important to share in this chapter why we believe it is essential and how it relates to collaborative modeling.

2.1 Understanding the business problems

2.1.1 What problem are we trying to solve?

2.1.2 What is collaborative modeling

2.1.3 Exploring problems using collaborative modeling

2.2 Domain-Driven Design and collaborative modeling

2.2.1 What is Domain-Driven Design

2.2.2 Who are the domain experts?

2.2.3 Why DDD and collaborative modeling go hand in hand

2.3 Different collaborative modeling tools

2.3.1 Collaborative modeling in the problem and solution space

2.3.2 Business model canvas

2.3.3 EventStorming

2.3.4 Example Mapping

2.3.5 Domain storytelling

2.3.6 When to use what tool

2.4 Further reading

2.5 Summary