Domain-Driven Design Europe 2018

The Bandit, the Housewife, the Samurai and the Woodcutter: The importance of multiple perspectives when modeling software.

In this talk, I will tell the story of people attempting to create a shared understanding of a problem and of a solution to that problem. The main lesson of this talk will be the importance of having many models when describing something complex.

Communication is the way we create a shared understanding. One of the primary methods of communication, is the “model”. A model is a representation (often visual) of the domain and of the software.

Of course, there is no one representation of the software, there are many representations of the software, and hence there are many models. While it is true that a model can be correct or incorrect, a more significant discussion of a model is its usefulness or lack thereof.

A simple problem with a clear solution can be simply modeled. A complex problem will have a complex model. The only thing we can hope for is to have a model that is not more complex than the thing it is representing.

I will explore how humans communicate to create a shared understanding. This will lead into a discussion as to what a “model” is, and why models can be so useful. I will emphasize that the more complex the domain or the solution is, the more important rich communication is. I will explain how it is that multiple perspective of the model allow us to capture the complexity of the software


Avraham is a Senior Architect with L&T Technology Services tasked with designing complex PayTV systems. He also researches and teaches theory of software development. He is currently studying, writing and teaching about the complex relationships between the organizations that create software and the software they create.