Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Why DDD Matters Today

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Why DDD Matters Today

This was my keynote at KanDDDinsky 2017.

It's an interesting entry point behind the dynamics of Domain-Driven Design, during the rise of Microservices.

Avatar for Alberto Brandolini

Alberto Brandolini

October 20, 2017
Tweet

More Decks by Alberto Brandolini

Other Decks in Technology

Transcript

  1. “It's a basic truth of the human condition that everybody

    lies. The only variable is about what.” Dr. Gregory House
  2. Strategies for non-core Traditional On-Time / On-Budget Pseudo-Agile thing Follow

    the backlog Avoid Taking unnecessary risks No time for “gold plating”
  3. 2) Keep the implementation as close as possible to our

    understanding #protip this is what Ubiquitous Language is all about
  4. “Every piece of knowledge must have a single, unambiguous, authoritative

    representation, within a system” Andy Hunt & Dave Thomas The DRY principle
  5. “Every piece of knowledge must have a single, unambiguous, authoritative

    representation, within a system” Andy Hunt & Dave Thomas The DRY principle
  6. Modelling Data-First Focus on nouns Expand the scope in order

    to accomodate new concepts … … Leave the company cursing the Legacy
  7. Nouns won’t help Everybody agrees what an order is? Of

    course we do! An order is an order! And has a customer too! Agreed!
  8. Perfect recipe: Talk with many people Model Data-First (everybody agrees

    on nouns) Add some “Dogmatic DRY principle” Repeat
  9. The Big Ball of Mud I swear it was a

    monolith last time I checked!!!
  10. … only to discover that they’re tangled with dependencies!! I

    spend most of my time rescuing teams that went micro services over a monolith…
  11. Bounded Context Is a LANGUAGE boundary. Defines a consistent MODEL

    around a specific PURPOSE #PROTIP: “Managing” is not a purpose
  12. … Still I have no Idea what a Bounded Context

    is I have no Idea what a micro service is, but I am pretty sure it’s a bounded Context But I am using Docker!
  13. … just being exilicit More microservices within a bounded context

    Just don’t call it “micro*” anymore.
  14. Thin red line • Start a project with a data

    first approach • Add misunderstood DRY PRINCIPLE • Lack of control requires protection & specialisation • few people become key, others retire or get minionized Business grows on top of old code • SAFETY is gone. Without it, no experiments are possible. • More responsibilities: less time to change it, harder to make the call • Hard to recruit seniors to finish the job
  15. Thin red line • Postpone evolutions of critical software •

    prevent the organisation from getting new feedback • -> how long are your iterations? • Suddenly realise that the organisation is dumbed down and blames IT for everything