DDD Europe 2024 - Program

Naming is Caring

DDD Foundations - Talk


Masoud Bahrami

Masoud Bahrami
Wednesday 29 from 11:00 until 11:50

If they ask me what are the two most important things in software sciense, I will answer Naming and Renaming.

This is why one of the most important and frequent refactoring techniques is renaming. The subtitle of the blue book is: Tackling complexity in the heart of software. The main complexity in our domains is understanding the problem domain itself.

One of the important reasons for the difficulty of understanding the problem is the words and phrases and terms that have the same name or are very similar, but they are completely different.

In fact, we can imagine different meanings for them in a context. The most important challenge that these issues can put in our way is that it creates hidden cost of translation and even worse misunderstandings for us.

Due to this by drawing a line, we try to create a completely independent and clear context from other contexts in the problem space, so that in that context, the completeness has a clear meaning and no ambiguity can be imagined for them.

Naming is very important to us and we should be careful about it.

But this is a very difficult process. The art of design and modeling shows itself here. We will be dealing with a exploratory process.

In this talk I will show you various techniques that can help in this discovery process. I also show how you can build a very rich jargon board. I will introduce you the effective heuristics that I have used over the years and that have been very helpful to me.

What are we talking about when we talk about ubiquitous language?

Generally, we limit the UL just to the domain. But what about user stories? What about the edge and surface of a bounded context? What about REST API design? How does this problem appear in the design of domain events and commands?

The impact of an inappropriate naming on the level where you publish your services can be much more destructive than on the level of the domain itself.

In this talk, I will address these challenges, and I will introduce you to the methods I use to overcome these challenges.

About Masoud Bahrami

I am Masoud, Co-founder of the Iranian DDD Community and founder of DDD School(http://domaindrivendesign.ir/). I have more than a decade of experience as a software developer, architect, modeler, and designer.

As a software consultant and architect, I help organizations to build autonomous, self-organizing, product-centered, and agile teams, modeling complex domains using DDD, cultivating a culture of automated testing and agile practices such as TDT, BDD, and DDD in their teams. As a DDD enthusiast, I established the Iranian DDD Community with my friends. Also, I founded DDD School(http://domaindrivendesign.ir/) as an independent startup I provide courses, resources, and educational articles about DDD, software craftsmanship, modeling, test automation, etc.

Recently, I launched http://EventStorming.ir.