Risikogetriebene Softwarearchitektur STEFAN TOTH Agile Bodensee 26.09.2013 0
Die Hacke für den Klotz am Bein STEFAN TOTH Agile Bodensee 26.09.2013 0
Stefan Toth Stefan.Toth@oose.de st_toth seit 06/2008 Artikel Vorträge Dies und das Berater und Trainer bei oose, Hamburg u.a. in Java Magazin, ObjektSpektrum, BT-Magazin, dotnetpro, ix, HMD u.a. auf Jax, W-Jax, Seacon, OOP, SET@Jazoon, Eclipse.jar isaqb Board Mitglied TOGAF 9 Certified (Level 2/2) AOGEA Mitglied 1
Agenda Einstieg Kurze Motivation Architekturarbeit definiert Softwarearchitektur und nicht-triviale Probleme Risikogetriebene Architektur Eine skalierbare Methodik Risikogetriebenes Arbeiten Fragestellungen im Projekt bearbeiten Ausblick Vorgehensmuster 2
Oktoberfest 3
Oktoberfest 4
Agenda Einstieg Kurze Motivation Architekturarbeit definiert Softwarearchitektur und nicht-triviale Probleme Risikogetriebene Architektur Eine skalierbare Methodik Risikogetriebenes Arbeiten Fragestellungen im Projekt bearbeiten Ausblick Vorgehensmuster 5
Was wir machen (sollten) 6
Unmittelbare Problemlösung Fokussierte Analyse Direkte Entscheidungen Findet schnell lokales Optimum Keine Synthese Kein strategisches Denken Wenig Abstraktion 7
Nicht-triviale Problemstellungen Mehr als 7+/-2 Komponenten... Große Erkenntnisse kommen nicht von ständiger Tätigkeit 8
Nicht-triviale Problemstellungen Problemstellung definieren Abstrahieren (Ideen externalisieren) Nachdenken (Hängemattenzeit) Wissen aufbauen Austausch mit anderen (Ideen schärfen) (Eigene) Lösungen analysieren / kritisieren Experimentieren ( ) Einfach entscheiden und evtl. scheitern 9
not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change. (Grady Booch) Softwarearchitecture is about the important stuff, whatever that is. (Martin Fowler) Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled. (Eoin Woods) 10
Agilität == NoArchitecture? Verbietet uns agiles Vorgehen Architekturarbeit? Verbietet uns agiles Vorgehen nicht-triviale Problemstellungen zu bearbeiten? wtf!? 11
Agiles Vorgehen & Architektur Essenz: Geh ein wenig flexibler an die Sache ran Wer? Wann? Wie viel? Welche Techniken? 12
Agenda Einstieg Kurze Motivation Architekturarbeit definiert Softwarearchitektur und nicht-triviale Probleme Risikogetriebene Architektur Eine skalierbare Methodik Risikogetriebenes Arbeiten Fragestellungen im Projekt bearbeiten Ausblick Vorgehensmuster 13
Architekturarbeit ist... Aufwand Kein Code Kein direkter Kundennutzen Risikominderungsmaßnahme für nicht triviale Problemstellungen 14
Risikogetriebene Architektur 15
Komplexitätstreiber Risiken für Projekte aus Architektursicht: Hohe Qualitätsanforderungen Enger Projektrahmen (Zeit, Budget) Viele Projektmitglieder Hoher räumlicher Verteilungsgrad Neue Technologien Wenig Erfahrung im Lösungsspektrum Dünner technischer Rahmen Viele Abhängigkeiten zu (externen) Projekten Vorhandene Zielkonflikte 16
Projekt beispiele U-Bahn Steuerungssystem Kontrolle über Netz mit 550 Stationen Signal- und Weichensteuerung, Positionsanzeige, Plattformplanung Pokerplattform Webseite mit Forenbereich zu Pokertaktik Beiträge, Artikel, Videos, Links zu Spielplattformen Automattic: Wordpress Projekt Co-Authors Plus: Mehrere Autoren für einen Blogpost Verwaltung von Autoren, Gastschreibern und Blog-Links 17
Agenda Einstieg Kurze Motivation Architekturarbeit definiert Softwarearchitektur und nicht-triviale Probleme Risikogetriebene Architektur Eine skalierbare Methodik Risikogetriebenes Arbeiten Fragestellungen im Projekt bearbeiten Ausblick Vorgehensmuster 18
Quellen von Fragestellungen 19
1. Fragestellung definieren Szenarien und technische Schulden nutzen 20
2. Risiko einschätzen Rest Ist die Entscheidung später nur schwer zu ändern? Ist die Umsetzung der Entscheidung eher teuer? Werden sehr hohe, qualitative Anforderungen gestellt? (Hochsicherheit, Hochverfügbarkeit, Hochperformanz, etc.) Lassen sich Anforderungen nur schwer in Bestehendes abbilden? Ist die eigene Erfahrung im Lösungsspektrum schwach? 21
3. Dringlichkeit bestimmen Wann wird das Risiko zum Problem? Wann führt die nicht-entscheidung zu größeren Schwierigkeiten? Wie lange sind interessante Lösungsalternativen noch umsetzbar? 22
4. Architekturarbeit 23
Gute Prinzipien Fragestellungen früh erkennen und analysieren Möglichst spät entscheiden (bei mehr als einer sinnvollen Alternative) 24
Agenda Einstieg Kurze Motivation Architekturarbeit definiert Softwarearchitektur und nicht-triviale Probleme Risikogetriebene Architektur Eine skalierbare Methodik Risikogetriebenes Arbeiten Fragestellungen im Projekt bearbeiten Ausblick Vorgehensmuster 25
tl;dr Denken Sie von Architektur nicht als starres Set von Tätigkeiten, nicht als Dokument, nicht als etwas das Sie brauchen könnten Softwarearchitektur ist einfach das Lösen von nicht-trivialen Problemen bei denen scheitern keine Option ist Sie brauchen keine große Methodik, kein vollständiges Vorgehensmodell, sondern Lösungen für Ihre Probleme Die Risikogetriebene Idee ist der Schlüssel dafür 26
Vorgehensmuster für Softwarearchitektur Kombinierbare Praktiken in Zeiten von Agile und Lean Autor: Stefan Toth Umfang: ca. 240 Seiten Verlag: Carl Hanser Verlag Sprache: Deutsch ISBN-10: 3446436154 Datum: erscheint am 07. November 2013 27
29 Bausteine von Architekturarbeit 28
st@oose.de st_toth