IT-Systeme gibt es in einem breiten Spektrum. Monolithische Software bündelt die Bestandteile des IT-Systems in untrennbare Gebilde und unterscheidet nur zwischen Client und Server. Alternativ kann eine komplexe Software aus unabhängigen Prozessen aufgebaut werden, die untereinander mit genormten Programmierschnittstellen kommunizieren. Software hat immer eine Struktur, unabhängig vom Architekturstil und der Programmiersprache.
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.
— —Melvin Edward Conway
Das Gesetz von Conway basiert auf der Beobachtung, dass die Struktur der Software wesentlich von der Projektorganisation beeinflusst wird. Der Baustein Domain ist sehr gut geeignet, die Grenzen und Übergänge dieser Strukturen sichtbar zu machen.
Der Baustein Domain ist das Artefakt in der Systemstruktur, mit dem Autoren Bestandteile der Software bündeln, die eine starke Abhängigkeit voneinander haben. Ziel ist immer, die Komplexität der Software in den Griff zu bekommen, einen Überblick zu behalten und Zusammenhänge zu erkennen.
Projektmanagement
Der Produktverantwortliche hat mit dem Baustein Domain die Möglichkeit, frühzeitig und in Abstimmung mit dem Team Grenzen und Übergängen in den Struktur der Software zu fixieren. Besonders in Projektorganisationen mit mehreren Teams, die an der Entwicklung des Produktes beteiligt sind, ist dieses Wissen vorteilhaft. Selbst wenn das Produkt von einem einzigen Team entwickelt wird, kann die Anforderung eines unterbrechungsfreien Betriebs des IT-System dazu führen, dass ein weiteres Team einer Betriebsorganisation an der Software mitwirkt. Der Baustein Domain trennt individuell entwickelte Dienste und Dienste einer bereitgestellten Infrastruktur. Das ist förderlich für die nahtlose Zusammenarbeit der Teams.
Anforderungsanalyse
Der Produktverantwortliche hat mit den Bausteinen Epic und Domain zwei Möglichkeiten, das Wissen über das Produkt zu strukturieren. Im Baustein Epic werden die Fähigkeiten der Software nach rein fachlichen Gesichtspunkten gebündelt. Der Baustein Domain gruppiert Bestandteile der Software, die eine starke Abhängigkeit voneinander haben. Folgt das Team beim Entwurf der Software den grundlegenden Elementen der Anwendungsdomäne sowie deren Beziehungen, dann entsteht automatisch eine prüfbare Bindung zwischen den Bausteinen Epic und Domain.
Produktentwicklung
Der Baustein Domain macht starke Abhängigkeiten zwischen den Bestandteilen der Software sichtbar. Das sind wertvolle Hinweise für die Leser bei der Einschätzung der Kritikalität von Änderungen an Schnittstellen. Schnittstellen innerhalb einer Anwendungsdomäne erfordern in der Regel weniger Abstimmung als Schnittstellen zwischen verschiedenen Domänen oder an den Systemgrenzen. Auch der Umfang der Testpläne steigt entsprechend.
Das Wiki.
Ein Erfolgsfaktor.