Domain Driven Design (DDD): waarom je het nodig hebt

Datum
28 maart 2022

De kern van goed presterende software gaat over meer dan efficiënte code en robuuste integraties. Het doorgronden van de omgeving waarin de code zijn werk moet doen, ‘het domein’, speelt een cruciale rol in het succes. Wat zijn bijvoorbeeld de USP’s van het bedrijf dat de software gaat inzetten? Welke processen zijn cruciaal? En op welke punten is interactie met gebruikers essentieel? Domain Driven Design (DDD) brengt business en IT dichter bij elkaar en concentreert software development rondom het daadwerkelijk inzicht hebben in de te automatiseren processen.

Tandwiel | iO

Hoewel DDD niet direct over technologie gaat, geeft het er wel duidelijk richting aan. Je wilt namelijk dat code een afspiegeling is van het domein, zodat software tijdens iedere processtap de flow optimaal faciliteert en software mee kan veranderen als er in de toekomst iets wijzigt in het domein. Domain Driven Design, wat houdt dat precies in en waarom is het nuttig om in te zetten?

DDD begint met de 'Big Picture'

Een krachtige technische oplossing begint met begrip van het grote plaatje. Domain Driven Design zet je in om de domeinen in kaart te brengen. In een ‘Big Picture’-sessie, waar Domain Driven Design gewoonlijk mee begint, brengen domeinexperts uit business en IT alle stappen van een bestaand of een beoogd proces in kaart en werk je aan de common understanding van die processen, variabelen en begrippen.

Allereerst is dit een leuke sessie, waarin je actief bezig bent met heel veel sticky notes plakken. Door bedrijfsprocessen te visualiseren met die sticky notes, komen eventuele knelpunten over de verschillende stappen in het proces of ontbrekende schakels naar de oppervlakte. En omdat je met collega’s van andere domeinen samenwerkt, is het ook heel nuttig op de lange termijn.

Een voorbeeld

Denk aan een dierenziekenhuis. Voorbeelden van domeinexperts uit de business zijn in dit geval bijvoorbeeld een dierenarts of een assistente. Zij kunnen je veel informatie geven. Hoe worden bijvoorbeeld afspraken ingepland? Of hoe worden klanten uitgenodigd voor de jaarlijkse vaccinatie van hun huisdier? En hoe ziet een behandeloverzicht met bijbehorende kosten eruit? Vervolgens kunnen domeinexperts uit de IT de technische kant in kaart brengen. Welke systemen zijn er al? En hoe loggen de klanten in? Zo komt er uiteindelijk één gezamenlijk overzicht tot stand.

"Een specifiek tandwiel functioneert alleen goed als je van tevoren weet hoe de rest van de machine in elkaar zit. Hetzelfde geldt voor software development."

Giel - PHP Developer, iO

De Big Picture sessie(s) brengen domeinexperts uit de business en IT dus op één lijn, maar we zien ook vaak dat er nieuwe inzichten ontstaan. Een voorbeeld van een veel voorkomend vraagstuk in commerce is de integratie tussen een Product Informatie Management systeem (PIM) en een webshop. Een goed PIM-systeem zorgt namelijk voor foutloze, consistente en actuele productinformatie in je shop. Je hebt dan te maken met processen rondom PIM-beheer, webshopbeheer en dataverrijking. En dan moeten de data uit de PIM ook nog worden gepubliceerd in de shop. Duidelijke afspraken over welk systeem waar verantwoordelijk voor is, is daarbij een belangrijk onderwerp. Dankzij gesprekken en discussies met alle betrokken domeinexperts komen knelpunten op tafel en wordt er eenduidig begrip gecreëerd van processen. Software sluit dan beter aan op de werkelijkheid en de daadwerkelijke behoeften van gebruikers.

Wat Domain Driven Design oplevert

Maar hoe levert een Big Picture sessie binnen Domain Driven Design nou waarde voor software development? Vanuit de rol als digital partner, kijken we daar bij iO als volgt tegenaan:

  • Klantervaring op #1: door software te modelleren rondom domeinen wordt de gebruiker centraal gesteld en creëer je vloeiende digitale journeys.

  • Snellere time-to-market en kostenefficiëntie: tijdens de ontwikkeling loop je altijd tegen vraagstukken en onvoorziene zaken aan. Hoe later je daar tegenaan loopt, hoe kostbaarder het is om bij te sturen. Door met DDD met domeinexperts uit business en IT te sparren over wensen, eisen, processen en journeys, spoor je in een vroeg stadium de meest kritische processen voor het bedrijf op. Door daar in het ontwikkelproces extra aandacht aan te besteden kan er sneller en dus kostenefficiënter worden ontwikkeld.

  • Common understanding: door met alle domeinexperts een eenduidige taal te ontwikkelen, worden zij gesprekspartners en begrijpen beter elkaars uitgangspunten en belangen. Hiermee verdwijnt vaak al een groot deel van de complexiteit van een project.

  • Schaalbare oplossingen: door gezamenlijk business doelstellingen, events en eventuele campagnes te bespreken, kan daar op voorhand rekening mee worden gehouden. Systemen kunnen zo worden ingericht om bijvoorbeeld met de Sinterklaas- en Kerstcampagnes goed de piekbelasting aan te kunnen.

Ben jij online overal?

De tijd dat een website voldeed voor een goede digitale aanwezigheid ligt achter ons. Onze experts helpen je liever aan een volwaardig digitaal ecosysteem - geoptimaliseerd en on-brand – om écht je doelen mee na te jagen.

Laptop shopping data overview

De brug tussen business en IT

Met Domain Driven Design slaan we de brug tussen de business en IT, gefocust op toegevoegde waarde. Op voorhand journeys en processen nauwkeurig in kaart brengen en daarover ook eenduidige definities ontwikkelen, is een heel krachtig concept.

Hiermee verplaatst de focus van applicatieontwikkeling van een uitgesproken technisch vraagstuk naar de ontwikkeling van functionaliteiten, met de gewenste toegevoegde waarde voor een businessmodel. Dit maakt DDD bij uitstek geschikt voor complexere digitale uitdagingen, zoals het ontwikkelen van maatwerkoplossingen voor platformen of het uitbreiden van standaard software. Hier zijn vaak ook over de keten heen verschillende domeinen bij betrokken. Met als belangrijkste voordeel dat ontwikkelprocessen (kosten)efficiënter kunnen verlopen.

Bavo Janss iO
Over de auteur

Bavo Janss

Software Architect

Bavo Janss is een echte softwareveteraan - hij begon 25 jaar geleden met het leveren van office automation aan klanten die werkten met mainframe terminals. Later maakte hij de opkomst van het internet, moderne websites, e-commerce en sociale media mee. Vandaag waardeert hij het grootste geschenk van moderne technologie elke dag: kennistoegang - zonder het geluid van een inbelmodem.

Gerelateerde artikelen