“Doing” DDD is really just ensuring the domain is the focus of our software design. It’s a counterpoint to approaches that treat technology as the focus of software design.
Everything else is just techniques that can help with focusing on the domain.
I (respectfully) disagree with your article, or at least the implied premise. It suggests the DDD vocabulary requires experts or expertise, which implies that even using DDD language is a form of gatekeeping.
Depends on whether you’re talking about the DDD meta-language or a concrete, well-defined language for a particular domain. I have absolutely no problem with the latter, but I do have a problem with the expected ubiquity of the former :)
A 100% good post and needed. With the benefit of reading other comments, I'll share my experience.
(1) From the beginning of my efforts to spread DDD both simply and inexpensively, the gatekeepers tried to squash me. It didn't stop me but if wasn't fun. Toxicity is still strong.
This is why I tried to find the most minimalist way of attaining the goals of DDD, ports and adapters, etc. We've created nasty silos, cliques and cults as a side effect of making new Bibles.
Agree. It's far less applicable than advertised.
Starting with the Layered Architecture. Why would you start your design with a purely technical decision? Why not let "the domain" drive your architecture?
It's just too persistence centric to truly capitalize on its own ideas.
As so many buzzwords in IT are... we sometimes tend to forget that our primary justification to exist is to deliver business value - period.
Concepts and tools are only here to support that cause.