Lifecycle Anforderungen können auf ähnliche Weise wiederkehrend gelöst werden. Lösungen müssen nicht immer neu er/gefunden werden. Qualitätsstandards werden übergreifend definiert. Z.B. CleanCode, Domain Driven Design, Test Driven Development, Codemetriken Überschneidet sich mit der QA. Minimierung von Komplexität und Erhöhung der Lesbarkeit. Einfache Onboarding neuer Kolleg*innen Verständlichkeit auch auf heren Flylevel Die Zielarchitektur als Moving Target. Von der Konzeption, über die Entwicklung bis zur Wartung und Änderung. Gernot Starke, Effektive Software-Architektur, 2014 Definition einer langfristigen Zielarchitektur mit Blick auf gleichbleibender Änderbarkeit und Agilität. Langfristigkeit
Bildung von hoher technischer Komplexität • (Distributed) “Big Ball of Mud” • verschiedene Sprachen / Frameworks • unterschiedliche API / UI Stile → unzufriedene Kunden
Wahrscheinlichkeit zu Folgefehlern. • Der Aufwand einer Risikoabschätzung übersteigt den Aufwand der fachlichen Änderung. • Abschätzungen werden schwer bis unmöglich. • schlechte Prediction in der Projektplanung. • → geringe Time-To-Market → Release-Verzögerungen
im Spannungsfeld Zielarchitektur Vereinfachung weniger Komplexität Autonomie bessere Time to Market weniger Kommunikations- overhead Wiederverwendbare Konzepte
halten Dokumentation nicht als Selbstzweck Auf Allgemeingültigkeit achten Automatisieren, Living Documentation Dokumentation ist oft schon beim Schreiben veraltet! Ziele fachliche, technische und monetäre Dimensionen abbilden Den aktuellen Zustand darstellen Die zukünftige Entwicklung verständlich machen Entscheidungsbäume abbilden Aufs Flylevel achten!
gerichtet Must / Should / Could - Pattern Immer mit Argumentation! verschiedene Themengebiete APIs, Eventing, Testing, Coding, … Ziele Hilfestellung Verständnis - Das “Warum” im Fokus halten Teams Entscheidungsfreiheit geben
und Zielzustände in Backlogs / Projektpläne einweben. Einfluss auf die Prioritäten im Prozess nehmen. Missstände in Teams ansprechen Wer entscheidet eigentlich?
2 Teams) “Ohr an der Maschine haben” Themen im Team besprechen und Lösungen erarbeiten Problembewusstsein erzeugen Vertrauen aufbauen Das Team entscheiden lassen Wer entscheidet eigentlich?
ADRs, Arc42, etc. helfen dabei. findet im Spannungsfeld statt braucht Unterstützung aus dem Management muss überzeugen. Leitplanken helfen hierbei. 21 Die Entwicklung und das Management sind nicht die Feinde, sondern haben ähnliche Ziele. Kommunikation ist wichtig Es gibt viele Menschen, die die Architektur unterstützen können Kollaboration hilft stark in der Argumentierung und in der Vertrauensbildung.