I was eagerly sucking up the facts the two architects Matthew Wall and Erik Doernenburg are presenting in the podcast.
But after about 20 min I was shuddering: At this point Matthew and Erik are talking about applying Domain Driven Design (DDD), specifically about enforcing aggregate rules, when the host (Markus Völter) was stating the following:
If I had done that, I probably would have defined a domain specific language, for example a textual DSL, that would know about those concepts. Then you could actually write programs using those common language terms as first class citizens.
This made me cringe. I know the Markus Völter is an expert in MDSD and DSLs, but stating the above quote in such a casual manner rings a lot of my alarm bells.
I just have a bad gut feeling if someone wants to build such essential infrastructure up front. That's when my invented-elsewhere-syndrome kicks in.
I have just seen too many projects, that invented their very own framework.
In the beginning everything goes smooth and it is very cool to work on TheFramework(tm) and not having to solve the real business problem. You can really feel smart ... But then the 80-20 rule kicks in and all the special cases threaten to turn TheFramework(tm) into a big ball of mud.
And that's even before maintenance becomes an issue of its own ... who is going to hatch TheFramework(tm) when the underlying technology evolves?
I think that endeavors like this should not be taken light-headed. This can cause a lot of suffering.
As my self-confidence as developer is growing, I think I would refuse to work on a project with this premise.
I think it is exactly the point of domain driven design that it is not about technology but about concepts. People too often rush head first into technical realizations. Thats also what Eric Evans says when he mentions that the competent developers often are not invoved in "domain crunching".
On the other hand, some years ago I would not have been so hesitant and precautious. As a highly motivated graduate, I would myself have rushed headfirst into the challange, working on a cool TheFramework(tm) of my own ... So one could ask: Why did I loose my faith?
Honestly I don't know... could it be that I lost my courage in the trenches of enterprise-developement?