Re:DDD Is Overrated
by bopbeepboop on Tuesday March 02, 2021 @05:07AM
(#26313677)
Yes — the goal of DDD is to explain why that’s a bad idea. For two reasons.
1. It makes your code a mess.
2. You probably wrote the wrong thing anyway, because how do you know what the customer wants if you don’t even know what they do?
DDD argues you should develop software by:
1. Talking to customers about the domain until you have a shared language with specific terminology.
2. Write that down as a model.
3. Write that model as software.
I think one of the biggest misses in software engineering (and something I’ve seen cost $100Ms) is software developers not talking to customers about what they do with the software. Some of the worst bugs happen because domain experts mean something by a term of art that software developers misunderstand.
DDD overlaps heavily with the “applied category theory” perspective on software, so DDD tends to be popular with functional programming types.
1. It makes your code a mess.
2. You probably wrote the wrong thing anyway, because how do you know what the customer wants if you don’t even know what they do?
DDD argues you should develop software by:
1. Talking to customers about the domain until you have a shared language with specific terminology.
2. Write that down as a model.
3. Write that model as software.
I think one of the biggest misses in software engineering (and something I’ve seen cost $100Ms) is software developers not talking to customers about what they do with the software. Some of the worst bugs happen because domain experts mean something by a term of art that software developers misunderstand.
DDD overlaps heavily with the “applied category theory” perspective on software, so DDD tends to be popular with functional programming types.