geklärt. Obergrenze für Verschuldung. Klare Regeln für Risikobewertung. Schulden explizit in Bilanz. Software: technische Schulden Schulden zufällig aufgenommen. Rückzahlung völlig offen. Beliebige Schuldenhöhe. Kaum Kriterien für Risikobewertung. Schulden implizit und oft unbekannt. Hilfe, Schulden!
hohe Aufwände. Zu lange Time-to-Market. Techniker: Zu hohe technische Schuld. Zu wenig Verbesserung. Technologie zu schlecht. Zu wenig Innovation. Zu wenig Budget. Zu wenig Zeit.
System haben, • von System oder Architektur betroffen sind: – damit arbeiten – daran arbeiten – davon profitieren – darunter leiden – es • betreiben • verwalten • regulieren • bezahlen ?
Budget System Budget Support Issues High-Level Manager Business Manager Entwickler/ Architekten Test/QS Product Owner Visualisieren Sie IHRE Stakeholder & Artefakte
• Wer arbeitet • woran • mit wem, • informiert/steuert wen • Benennen Sie für 3-5 relevante Stakeholder: Person /Rolle hat welche Aufgabe(n) hat welche Ziele oder Intentionen? kann „wie“ bei Analyse mitwirken?
in <4h konfigurierbar Last / Performance • 250.000 eingelieferte Fotos innerhalb von 24h prozessiert Sicherheit • Mandant kann niemals Zugriff auf Daten anderer Mandanten erhalten Architektur-/Lösungsansatz • Konfigurationssprache für CSV-Parser (Import), auf Basis ANTLR • Syntaxgesteuerter Editor für die Sprache • Bilder als Dateien speichern, Links in DB • Lasttests im DailyBuild • Generator für (Massen- )Testdaten • Mandantenspezifische Daten grundsätzlich in (eigener) VM • Datenlieferungen grundsätzlich in mandantenspezifische Verzeichnisse (ftp-Server) • Unix-Kennungen spezifisch für Mandanten Lösungsansätze Risiken?
können. • Mit passablem Aufwand messbar • Indikator für was? 2. Erstellen Sie ein „Metrik-Dashboard“: Welche Metriken würden Sie erheben? • Codemetriken • Laufzeitmetriken • Test-Metriken • Business-Metriken • Aufwandsmetriken • Prozess-Metriken • ....
write 4. Volumen • auch von Query-Results + Indizes 5. Korrektheit 6. Schutzbedarf 7. Verteilung/Dezentralisierung 8. Duplikation/Redundanz 9. Durchsatz -> Laufzeitanalyse Struktur / Typen ungeeignet für das Problem Wonach ist Persistenz optimiert, read oder write? Haben wir besonders viel?Ist etwas besonders groß? Haben wir falsche Daten? Haben wir sensible Daten? Halten wir Daten mehrfach?
wir? Unit Schätzgröße, Einheit: Geld, Zeit, Aufwand, Anzahl (wovon) Parameter von welchen Größen/Faktoren ist das Ergebnis abhängig? Assumptions Annahmen, meist über einzelne Parameter Observation Beobachtung oder Messung einzelner Parameter Probability Mit welcher Wahrscheinlichkeit / Zuversicht gelten welche dieser Zahlen Estimate Assumption Unit (Measure) Parameter Observation Probability based upon how certain? can observe or measure Interval time, money, etc Subject what do we estimate? tackle uncertainty by based upon
Observation Probability based upon how certain? can observe or measure Interval time, money, etc Subject what do we estimate? tackle uncertainty by based upon determines size influence „size“
Turkey) Frontend Switch Keep Data, Toss Code Managed Evolution Change Via Split Data Migration Branch by Abstraction Chicken Little Butterfly Bridge To New Town Change By Extraction Change On Copy Value-based Improvement
neues System 3. Nach Fertigstellung & Abnahme werden Benutzer und Clients auf neues System umgestellt Risiken • Spezifikation aufgrund der Komplexität des alten Systems lücken- oder fehlerhaft • Know-How-Flucht: Demotivierte Mitarbeiter des alten Systems • Das neue System vermeidet zwar bekannte Fehler, enthält jedoch neue! • Business erhält lange Zeit (Jahre!) keine signifikanten neuen Features • Schwierige, aufwändige Datenmigration • Bereits die Anforderungsanalyse oft sehr schwierig
schlechten Teilen über eine Abstraktion (Interface) 2. Lasse sämtlichen Client-Code nur noch dieses Interface verwenden 3. Erstelle einen besseren Supplier (Provider, Server) für dieses Interface 4. Entferne den alten Supplier Risiken • Entsteht auf Basis des schlechten Suppliers... Ggfs. ist die Abstraktion schlecht! Voraussetzungen • Klare Schnittstelle für bestehende Dienste definierbar
Klone gesamtes System für jede BG 3. Reduziere für jede BG, extrahiere Gemeinsamkeiten (technische Basis) 4. Optimiere für jede BG Risiken • Gemeinsamkeiten schwer zu isolieren • Mehrere Teams benötigt (1 pro Klon + Basis) Voraussetzungen • stark unterschiedliche Benutzergruppen
2 Kopiere für alle Client-Typen 1 Client Type 1 Flawed System Client Type 2 Flawed System Client Type 1 Reduced to Type 1 Client Type 2 Reduced to Type 2 Commons Reduziere und extrahiere Gemeinsamkeiten 2 Client Type 1 Reduced to Type 1 Client Type 2 Reduced to Type 2 New Commons Optimiere Gemeinsamkeiten 3
1 Client Type 2 Reduced to Type 2 New Commons Optimiere spezifische Teilsysteme („Splits“) 4 New Type 1 System Client Type 1 Client Type 2 New Commons New Type 2 System
https://www.flickr.com/photos/tambako/3007256159/ by https://www.flickr.com/photos/tambako/ Problems https://www.flickr.com/photos/portland_mike/6852704246/ by https://www.flickr.com/photos/portland_mike/ Broken Fence https://www.flickr.com/photos/socsci/21844740756/ by https://www.flickr.com/photos/socsci/ Circle https://www.flickr.com/photos/infomastern/14519782386/ by https://www.flickr.com/photos/infomastern/ Spectrum of Topics (Spices) https://www.flickr.com/photos/crobj/5519129659 by https://www.flickr.com/photos/crobj/ Measuring https://www.flickr.com/photos/david_mackay/5541294472/ by https://www.flickr.com/photos/david_mackay/ https://www.flickr.com/photos/mad_house_photography/4311409835/ by https://www.flickr.com/photos/david_mackay/ Evaluate / Estimation https://www.flickr.com/photos/evelynsaenz/4987334392/ by https://www.flickr.com/photos/evelynsaenz/ https://www.flickr.com/photos/jakerust/16811604186/ by https://www.flickr.com/photos/jakerust/ Long Term Improvement https://www.flickr.com/photos/legion293/4921980590/ by https://www.flickr.com/photos/legion293/ Image Credits