Die Basis für Architekturarbeit
Architekturarbeit ist dort sinnvoll, wo Entscheidungen risikoreich sind. Idealerweise erkennen Sie dieses Risiko, bevor die Entscheidung getroffen und die Lösung dafür umgesetzt wurde – also auf Anforderungsebene. In diesem Kapitel werden Muster besprochen, die Ihnen dabei helfen, die richtigen Anforderungen abzuholen, sie zu strukturieren, zu priorisieren und laufend zu verfeinern. Auch die iterative Abarbeitung von Architekturanforderungen in Backlogs oder die Verarbeitung mit Kanban sind Themen.
Richtig entscheiden
Die Architekturdisziplin beinhaltet viele Praktiken, Techniken und Mittel, die bei genauerer Betrachtung alle um ein Thema kreisen: Entscheidungen. In diesem Kapitel werden Muster besprochen, die Ihnen dabei helfen, Architekturentscheidungen von unwichtigeren Entscheidungen zu trennen, sie zu planen und bei Bedarf über mehrere Iterationen hinweg zu bearbeiten, sie zum richtigen Zeitpunkt in der richtigen Granularität zu treffen und dabei auftauchende Risiken aktiv zu behandeln.
Zusammenarbeit und Interaktion
Zusammenarbeit, Interaktion und Austausch sind zentral. Und für welche Disziplin der Softwareentwicklung sollte das mehr gelten als für Softwarearchitektur? Von Architekturarbeit sind schließlich viele bis alle Projektmitglieder betroffen. Die Muster dieses Kapitels zeigen, wie Sie effektiv mit Stakeholdern zusammenarbeiten können, wie Sie trotz der Arbeit mehrerer Entwickler oder Teams eine konsistente Architektur gewährleisten, wie Sie Wissensmonopole vermeiden und für Transparenz sorgen.
Abgleich mit der Realität
Ihre Architektur ist nicht fertig, wenn Sie ein Konzept erstellt, ein Diagramm gezeichnet oder eine Idee formuliert haben. Architekturentscheidungen werden erst durch die Rückmeldung aus der Umsetzung lebendig – Sie benötigen möglichst schnell, möglichst objektives Feedback. Die Muster dieses Kapitels zeigen, wie Sie frühe Rückmeldungen fördern können, Architektureigenschaften im Code prüfen können, Architekturziele im Auge behalten und wie Sie mit gefundenen Problemen umgehen können.
Die inhaltliche Vision
Hinter den Vorgehensmustern dieses Buchs steht eine konsistente Vision zeitgemäßer Softwarearchitekturarbeit. Moderne Definitionen von Softwarearchitektur scheren nicht alle Softwareentwicklungsprojekte über einen Kamm. Menge und Ausprägung von grundlegenden, risikoreichen Fragestellungen sind von Projekt zu Projekt unterschiedlich. Zeitgemäße Softwarearchitektur erkennt diese Individualität auf vielen Ebenen an und greift aktuelle Strömungen der Softwareentwicklung auf. Zeitgemäße Softwarearchitektur ist:
- Durch Anforderungen getrieben
- Vom Aufwand her dem Problem angemessen: Nicht behindernd aber ausreichend fundiert
- Von aktuellen Erkenntnissen zu Zusammenarbeit und Vorgehen beeinflusst
- Gut mit der Entwicklung verzahnt
- Einfach in aktuelle Vorgehensmodelle integrierbar: Iterativ und agil lebbar, ohne umständliche Ergänzungen
Ich greife diese Punkte im Buch auf, beschreibe sie detaillierter und verbinde sie mit den Vorgehensmustern. Die Muster setzen die inhaltliche Vision um, sind dabei kleinteilig kombinierbar und in jedem Projektkontext sinnvoll.