factor10 Solution Designer

Fältanteckningar

Context Map

Ett mjukvarusystem som överskrider en viss storlek får inte plats i en enda modell. Försöker man ändå urholkas språket: samma ord betyder olika saker i olika delar av systemet, och team som tror att de samarbetar pratar i själva verket förbi varandra. Ett team räcker helt enkelt inte till för att sköta vidareutveckling och underhåll.

Alternativt så vet du kanske redan att det rör sig om olika modeller och flera ubiquitous languages "at play".

Context Map gör det explicit: var går gränserna, vilken modell och vilket språk gäller på vilken sida, och hur ser samarbetet ut mellan grannarna?

Context Map beskriver ett sociotekniskt system. Teamen finns implicit med på kartan lika mycket som Bounded Contexten gör (mer om teamen på egen flik).

 

De huvudsakliga byggstenarna

I en Context Map modelleras varje Bounded Context och relationerna mellan dem. Relationsmönster (till exempel Customer/Supplier, Open Host Service, Anticorruption Layer, Conformist) väljs medvetet. De beskriver makt, koppling och modell-flöde mellan Bounded Contexts och team, snarare än dataflöde.

Utöver Bounded Contexts kan vi också använda Data Product och Big Ball of Mud (BBoM) i Context Mapen. Data Product är inspirerat av Data Mesh: tanken är att samma team som ansvarar för en Bounded Context också bör ansvara för vilket data som publiceras, nästan som motsatsen till centraliserad master data. En Data Product hör därför typiskt till en enda Bounded Context och ska inte spänna över eller samla ihop data från flera. En data product som samlar data från många Bounded Contexts är just det centraliserade anti-mönster som Data Mesh vill bort från.

BBoM innebär att ett Context inte är "bounded", det saknas gränser mot flera andra modeller. Vi tydliggör det genom att dra en yttre gräns och märka den med BBoM-mönstret.

 

Relationsmönster (urval)

 

Övrig information i verktyget som inte kommer från DDD

Verktyget tillåter kompletterande information per kontext, till exempel om någon annan ansvarar, om den är multi-tenant, och vilka teknikval som gjorts.

Notera också att om initiativstilen är satt till Leverans kommer verktyget varna för val som förväntas påverka den långsiktiga ändringsbarheten negativt.

 

Vidare läsning