Methode
Motivation für den Einsatz
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.
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.
Wissensmanagement richtig organisieren.
Zielgerichtet.
Agil.
Iterativ.
Prozesse
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.
Prozesse
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.
Prozesse
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.
Seitenvorlagen für alle Bausteine und hilfreiche Makros für die Verwendung in Confluence.
Qualität
Seitenvorlage des Bausteins
Confluence unterstützt mit Seitenvorlagen die Idee der Bausteine optimal. Das folgende Beispiel kann direkt als HTML im Editor der Seitenvorlagen eingefügt werden.
Bitte hier Klicken, um den Quelltext anzuzeigen
<h1>Überblick</h1> <ac:structured-macro ac:macro-id="d2979c44-899c-417c-b700-bc10d55809e5" ac:name="section" ac:schema-version="1"> <ac:rich-text-body> <ac:structured-macro ac:macro-id="2df65db9-2a6b-4001-a5f6-7e9fbb9ff023" ac:name="excerpt" ac:schema-version="1"> <ac:parameter ac:name="atlassian-macro-output-type">BLOCK</ac:parameter> <ac:rich-text-body> <p> <ac:placeholder>Bitte hier eine kurze Erklärung der Domäne. </ac:placeholder> </p> </ac:rich-text-body> </ac:structured-macro> </ac:rich-text-body> </ac:structured-macro> <ac:structured-macro ac:macro-id="99bb74c6-5c1d-423a-8257-6c71d84e7737" ac:name="scroll-ignore" ac:schema-version="1"> <ac:rich-text-body> <p> <ac:structured-macro ac:macro-id="ff1b1e51-1386-4880-a4c6-467e6111c29f" ac:name="contentbylabel" ac:schema-version="3"> <ac:parameter ac:name="showSpace">false</ac:parameter> <ac:parameter ac:name="excerptType">simple</ac:parameter> <ac:parameter ac:name="cql">label in ("layout","service","event","entity") and parent = currentContent()</ac:parameter> </ac:structured-macro> </p> </ac:rich-text-body> </ac:structured-macro>
Struktur
Eigenschaften des Bausteins
Der Baustein Domain hat einen Steckbrief mit einer Kurzbeschreibung.
Er repräsentiert eine Kontextgrenze (engl. bounded context) innerhalb der
Software.
Der Seitentitel beginnt immer mit Domain
.
Durch die Seitenvorlage hat jede Seite das Stichwort domain
.
Sie kann aber um weitere Schlagworte ergänzt werden.
Dadurch wird die Seite leichter auffindbar.
Der Baustein Domain bündelt eine wachsende Menge von Implementierungen, die mit den Bausteinen Layout, Service, Event und Entity beschrieben werden.
Der Baustein Domain hat keinen Zustand.
Der Baustein Domain hat keinen Bezug zu einem Produktinkrement.
Der Baustein Domain wird in der Sprache der Entwickler geschrieben.