Fältanteckningar
Att förstå intentionen i flera nivåer är naturligtvis extremt viktigt, men det är minst lika viktigt att förstå sammanhanget vårt initiativ ska befinna sig i. Sub-domains är ett sätt att fånga en intressant del av det sammanhanget.
En vanlig fråga i den här typen av arbete är om man ska fokusera på organisationen eller på de förmågor organisationen har. Ambitionen brukar vara att man ska organisera sig för att optimera för sina förmågor. Men i praktiken finns det oftast en glipa mellan de två. Oavsett vilket kan det vara enklast att börja nysta i organisationen, för att få en startbild som man sedan kan förfina om det visar sig att organisation och förmågor skiljer sig åt.
Om mjukvaruinitiativet är till för internt bruk är det den interna situationen som är intressant att undersöka och beskriva.
Är det däremot en produkt för andra organisationer att använda, är det förmodligen snarare deras organisationer vi vill fånga. Kruxet är förstås att de alla ser olika ut, så vi får hitta någon form av gemensam nämnare för vår målgrupp.
Utvecklare tycker ofta att det är svårt att "hitta" sub-domains, men affärsorienterade personer tycker det är ganska enkelt. Ett bra skäl att samarbeta. :)
All affärslogik är inte lika värdefull att äga själv. Sub-domain-indelningen tvingar fram ett medvetet val: vilka delar av problemet är vår konkurrensfördel, vilka stödjer den, och vilka är generiska problem som marknaden redan löst åt oss? Det styr i sin tur var vi lägger vårt huvudfokus, respektive vad vi hellre köper in.
Dela upp problemet i Core, Supporting och Generic sub-domains. Lägg fokuset på Core, köp in eller anpassa Generic.
OBS! Det handlar inte om vad som är viktigt. Allt en organisation gör är viktigt (annars borde den inte göra det). Det är till exempel viktigt att följa lagen eller att betala ut löner korrekt och i tid. Men det är hygien snarare än spets. Med Sub-domains blir bilden tydligare. Vad som är strategiskt är i slutänden ett val, och det beslutet äger organisationens styrelse.
Det kan vara intressant att titta på var Bounded Contexts hamnar i förhållande till sub-domains.
En Bounded Context som spänner över två sub-domains antyder att den också spänner över två Ubiquitous Language-områden, och är typiskt något värt att fundera ett varv extra på.