2

I'm new to DDD.

From my current understanding and from the examples I've seen in books or articles, DDD addresses the design of a software system to solve a complete domain problem.

So it figures out the domain models, use ubiquitous languages for communication between domain experts and software developers, find out bounded context and separate to sub-systems like aggregates, and a lot more.

DDD concepts are also quite useful during the move from a monolithic system to multiple microservices.

However, in a company, we collaborate as different teams to deliver a complete system. We only work in a team that is only responsible for a component in the system. The component can be a program or a microservice. It only participates in a very small part of the whole domain solution. Maybe it is just a ENTITY in the DDD concept. Even worse, if the component is in the infrastructure layer, it won't have a corresponding mapping to domain object at all.

My question is, in this case, if I own just a component in the whole system, is DDD still useful to me?

3

Maybe not.

I always find it useful to understand these things in terms of what they were developed in response to.

I've always thought of DDD as a response to the business losing it understanding of its own processes as those processes become automated.

So for example I'm a shop and have always sold sweets to customers over the counter in exchange for cash, but then I get a web page and start selling via that. The developers have to implement a whole load of extra bits due to technical limitations or just the way they set the site up.

Now when I want to do a buy one get one free offer on yellow sweets because its national banana day the devs are telling me its too hard and they cant do it! Apparently "Invoices" can only have one "DiscountModifier" WTF??!?!?!?!

The Domain Driven Design consultant comes along and tells me I need to get the developers to use my language and make sure the processes they make match the good ol' fashioned ones I've been using all these long years!

Obviously the DDD concepts only really apply to high level business logic. If you are writing a SQLClient or something its not a business process and you should use language germaine to the specialist subject.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.