viele Fehler. Zu hohe Aufwände. Zu lange Time-‐to-‐Market. Techniker:-‐-‐-‐ Zu hohe technische Schuld. Zu wenig Verbesserung. Technologie zu schlecht. Zu wenig Innova-on. Zu wenig Budget. Zu wenig Zeit.
Cost Frequency Issue UID Description Cost Improvement 1..* * resolve ➤ resolved by ➤ Name System suffers from is remedy for UID Description Cost Frequency Issue Probability EarlyWarning Risk Cause UID Description Cost Improvement 1..* * resolve ➤ resolved by ➤ modify or create ➤ is real source of ➤ * * * * Name System Name Role Interests Experience Stakeholder Software Hardware Process Name Organization Documentation knows / informs about ➤ knows / informs about ➤ source of ➤ source of ➤ suffers from ➤ is remedy for Configuration consists-of Goals Constraints impose ➤ has explicit and implicit ➤ complies with ➤ restrict ➤ ➤ aim42 domain model
greifen Sie und Ihre Vorschläge an sind am Problem schuld, stehen zu Ihnen in Konkurrenz, greifen Ihre Kompetenz an leiden nicht am Problem, leiden unter dessen Lösung tragen (Teil-‐)Schuld am Problem zweifeln Schlussfolgerungen an, zweifeln Ihre Kompetenz an, haben Angst vor Veränderung
(min) Wert (max) Abhilfen PD-‐ 1 Falsche Berechnung Ar-kelpreis bei Kombina-on aus RabaYkarte, Einzelkunde und yxz-‐Konfigura-on zZt 3-‐5x pro Woche 110€ 550€ V-‐1 + V-‐2 PZ-‐ 1 Zu lange Warteschlangen (queues) in Entwicklungs-‐ prozess: wai-ng-‐-me für neue Anforderungen >6W 30x / Woche 300€ 15.000 € V-‐3 C-‐1 Zeit zur Iden-fika-on + Behebung von Laufzeitehlern zu lang (bis zu 5 T bei kri-schen Fehlern) 1x / Woche V-‐4 || V-‐3 C-‐2 Zeit für kompleYen Test der Anwendung > 10 T 4 x / Jahr V-‐4 Werkzeuge: • (gut) Issue-‐Tracker (Voraussetzung: stabile URL‘s) • (ok) Excel, Karteikarten, Flipchart • (schlecht) Kopf
zu finden! • zur „Root-‐Cause-‐Analyse“ • zum Beweis von Vermutungen • Instrumen-erung, z.B. – (fachliches/technisches) Logging – Tracking von Qualitätseigenscha#en
Zugriffe – Read / write • Volumen – auch von Query-‐Results + Indizes • Inhalte – Korrektheit – Schutzbedarf • Durchsatz -‐> Laufzeitanalyse Struktur / Typen ungeeignet für das Problem Wonach ist Persistenz op-miert, read oder write? Haben wir besonders viel / groß von etwas? Haben wir falsche Daten?
Parts Big Bang (Cold 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
Daten müssen erhalten bleiben? Big Understructured Mess Very Valuable Data Big Understructured Mess Very Va Da alu ble at Valu ata alu ble at uable ta Big Understructured Mess Very Valuable Data
2. Entwerfe und implemen-ere neues System 3. Nach Fer-gstellung & Abnahme werden Benutzer und Clients auf neues System umgestellt Risiken • Spezifika-on aufgrund der Komplexität des alten Systems lücken-‐ oder fehlerha# • Know-‐How-‐Flucht: Demo-vierte 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 Datenmigra-on
Type 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 Op-miere Gemeinsamkeiten 3
Type 1 Client Type 2 Reduced to Type 2 New Commons Op-miere spezifische Teilsysteme („Splits“) 4 New Type 1 System Client Type 1 Client Type 2 New Commons New Type 2 System
Benutzergruppen BG 2. Klone gesamtes System für jede BG 3. Reduziere für jede BG, extrahiere Gemeinsamkeiten (technische Basis) 4. Op-miere für jede BG Risiken • Gemeinsamkeiten schwer zu isolieren • Mehrere Teams benö-gt (1 pro Klon + Basis) Voraussetzungen • stark unterschiedliche Benutzergruppen
Teile Ersetze weitere schlechte Teile Und noch mehr... 1 2 3 Client Code Flawed System User Client Code Flawed System User better Client Code Flawed System User better Better System Client Code User Flawed Parts
System sukzessive einzelne Komponenten Risiken • Nebenwirkungen innerhalb des Systems schwer zu testen • Hohe Aufwände, um übergangsweise mit „Altlasten“ zu arbeiten Voraussetzungen • interne SchniYstellen / Modularisierung