Casestudy · 28 april 2023

De skillset van Shopify opschalen: hoe we Domain-Driven Design introduceerden bij 800 engineers

Shopify haalde Aardling in 2020 binnen om een kleine groep engineers op te leiden in Domain-Driven Design (DDD) en EventStorming. Aardling schaalde al snel op en leidde in drie jaar tijd 800 deelnemers op; vandaag begeleiden we individuele teams bij hun softwareontwerp.

Samenvatting

  • Shopify haalde Aardling in 2020 binnen om engineers op te leiden in Domain-Driven Design (DDD) en EventStorming.

  • Aardling schaalde op en leidde in drie jaar tijd 800 deelnemers bij Shopify op in Domain-Driven Design.

  • Vandaag begeleidt Aardling individuele teams als consultant bij hun softwareontwerp

Uitdagingen 

Shopify is een wereldwijd commercebedrijf dat essentiële internetinfrastructuur levert voor e-commerceretailers. Het is gebouwd op componenten die samen een krachtig platform vormen dat door miljoenen bedrijven over de hele wereld wordt gebruikt.

Shopify herdefinieert enterprise retail door die infrastructuur open te stellen voor de grootste retailers ter wereld. Commerce Components by Shopify is een moderne, composable stack voor enterprise retail die keuzevrijheid vooropstelt, en die de fundamentele componenten van Shopify—zoals de checkout—combineert met flexibele API's die integreren met de backofficediensten die een retailer verkiest.

Om de engineers van Shopify te ondersteunen, ging het bedrijf een partnerschap aan met Aardling, een bedrijf met expertise in softwareontwerp en domeinmodelleren, en in Domain-Driven Design (DDD). Mathias Verraes, principal consultant bij Aardling, geeft al sinds 2013 trainingen en consultingsessies over Domain-Driven Design en EventStorming.

Trainingsproces 

Aanvankelijk was het de bedoeling dat Aardling begin 2020 af en toe een fysieke workshop zou geven voor de engineers en architecten van Shopify. Door de pandemie moesten zowel Aardling als Shopify het trainingsformaat herbekijken.

Die planwijziging betekende dat de training in kleinere modules opgesplitst kon worden, wat de verstoring van de reguliere softwarelevering van de teams beperkte. Tegelijk liet training op afstand Aardling toe om op te schalen en tegemoet te komen aan de groeiende interesse in Domain-Driven Design bij Shopify. Sindsdien heeft Aardling meer dan 800 mensen bij het bedrijf opgeleid.

De inhoud van de trainingssessies werd op maat gemaakt en aangepast aan de specifieke uitdagingen waar Shopify aan werkt.

Doorheen het jaar werden verschillende klassen opgezet, waaronder een Introduction to Domain-Driven Design, Eventstorming en Advanced Domain-Driven Design. Mensen schreven zich in voor de workshop die het best bij hun interesses aansloot.

Onderwerpen 

Voor de engineers die aan hun Domain-Driven Design-traject begonnen, was er een introductiesessie gericht op tactische patronen, omgaan met domeincomplexiteit, en kansen creëren voor betere modularisering. Die onderwerpen werden gekozen om engineers te ondersteunen bij het bouwen van nieuwe code.

Later kwam er een vervolgcursus Advanced Domain-Driven Design bij, die onderwerpen behandelde zoals Bounded Contexts, Context Mapping, het refactoren van legacy-systemen en Strategic Design. Deze klas hielp engineers om bestaande code en architectuur te doorgronden, en reikte tools aan om strategisch te beslissen waar bestaande code veranderd, vervangen, geïntegreerd, afgesplitst of gewoon behouden moet worden.


De EventStorming-training bood een praktische manier om complexe flows en bedrijfsprocessen te modelleren. De klassen bevatten optionele oriëntatieoefeningen voor engineers die graag voorbereid naar een leersessie komen.

Naast deze regelmatig ingeplande klassen gaf Aardling ook masterclasses over Strategic Design met Gien Verschatse, Agile Architecting met Rebecca Wirfs-Brock, Crafting Modular Architecture met Cyrille Martraire, en Product-, Domain- and- Team-Oriented Architecture met Susanne Kaiser.

De overstap naar consulting 

De training legde een stevige kennisbasis in Domain-Driven Design bij de engineeringteams van Shopify. Het was belangrijk dat die kennis niet in het klaslokaal bleef hangen. Het partnerschap richtte zich niet alleen op training, maar ook op het coachen en begeleiden van individuele teams die DDD invoeren.

Aardling breidde zijn ondersteuning voor softwareteams bij Shopify uit. De teams krijgen de kans om hun ontwerp- en strategiekeuzes te toetsen en met de hulp van onze consultants naar de specifieke context van elk team te kijken. Zo kunnen individuele teams de uiteenlopende uitdagingen van hun unieke use cases oplossen en met deskundig advies uit de knoop raken.

Deze aanpak van training en consulting stelde Shopify in staat om zijn adoptie van DDD op te schalen, nieuwe mogelijkheden op zijn platform te leveren en het systeem klaar te maken voor de toekomst.