“What does your company do?”
If you’re a mid-level or senior product architect, you can probably explain, in great detail, the intricacies of how your product works.
But can you, in simple terms, explain what your company does?
It’s over-simplifying matters, but that’s where Domain-Driven Design starts.
Working with experts in the field (i.e.: domain experts), you develop common terminology and requirements – essentially, defining the common ground needs (the model), in abstract of the software or program. Bear in mind that the aforementioned common terminology can translate into separate subdomains if the same term means different things. The domain expert is there to provide the knowledge of how the company (i.e.: the domain) works and model it with the developer. The developer then captures the model into code.
And then the fun begins. (more…)