Slide 1

Slide 1 text

Desolat? Nein Danke! Langfris)ge So.ware-Modernisierung Dr. Gernot Starke

Slide 2

Slide 2 text

Dr. Gernot Starke innoQ Fellow +49 177 – 728 2570 [email protected] www.arc42.de Schwerpunkte:   Softwarearchitekturen Entwurf, Entwicklung, Evolution Modernisierung, Dokumentation   Mentoring und Coaching   Analyse und Optimierung von Entwicklungsprozessen   Reviews, Audits, Retrospektiven

Slide 3

Slide 3 text

3 h>ps://www.flickr.com/photos/aigle_dore/5951683083 IT-Ausbildung bezüglich „Modernisierung“!

Slide 4

Slide 4 text

Die Botscha2: Prak)zieren Sie „Value-based Improvement“. Inves)eren Sie langfris)g >80% des CTS-Budgets in T1- und T3-Änderungen.

Slide 5

Slide 5 text

Der Plan... •  Normalfall •  Geld (Wert, Inves))on, Ertrag) •  IT-Budgets (Run, Change/CTS) •  Qualität (von IT-Systemen) •  Modernisierung (Evolu)on)

Slide 6

Slide 6 text

„das System...: Management: Zu teuer. Zu 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.

Slide 7

Slide 7 text

Der Normalfall...

Slide 8

Slide 8 text

Geld & Wert

Slide 9

Slide 9 text

Wert Ihres Systems (in €) ? InvesFFons-

Slide 10

Slide 10 text

mindestens 1.250.000 € 5 Personen arbeiten 5 Jahre ca. 50%, Personalkosten 500€/Tag, h>p://www.handelsbla>.com/infografiken/rechner-gehalts-rechner/7963754.html

Slide 11

Slide 11 text

eventuell 9.800.000 € 10 Personen arbeiten 10 Jahre ca. 70%, Personalkosten 700€/Tag

Slide 12

Slide 12 text

oder auch >50.000.000 € Erfahrungswerte bei mehreren (!!) großen Unternehmen in D, CH, AT, USA

Slide 13

Slide 13 text

Business Value: •  „Leistung“ •  Gebrauchs- oder Verkaufswert •  Führt direkt/indirekt zu Ertrag

Slide 14

Slide 14 text

Inves))on und Ertrag 1 1 Während der Entwicklung, kein Release => kein Mehrwert

Slide 15

Slide 15 text

Inves))ons-Ertrags-Hysterese 1 2 1 2 Während der Entwicklung, kein Release => kein Mehrwert Nach Release, zeitverzögerte Steigerung des Ertrages

Slide 16

Slide 16 text

Invesi)ons-Ertrags-Hysterese 1 2 3 1 2 3 Während der Entwicklung, kein Release => kein Mehrwert Nach Release, zeitverzögerte Steigerung des Ertrages Externe Faktoren beeinflussen Ertrag

Slide 17

Slide 17 text

Unternehmen müssen mehr verdienen als inves)eren langfris)g

Slide 18

Slide 18 text

Unternehmen müssen mehr verdienen als inves)eren Ertragssteigerung höher als Inves))on in Entwicklung <=> Steigerung des Business-Value höher als Inves))on

Slide 19

Slide 19 text

?How to get more BANG for the buck? heute und morgen...

Slide 20

Slide 20 text

?How to get more BANG for the buck? Business- Value Budget

Slide 21

Slide 21 text

IT-Budgets Run-the-Shop (RTS) Budget Change-the-Shop (CTS) Budget Hardware, Betriebssysteme, Lizenzen, Hos)ng, Kommunika)onsmi>el, Administra)on, Support Bugfixes, Patches, „Reparaturen“

Slide 22

Slide 22 text

CTS/RTS Rela)on... IT-Anwender IT-Lieferanten (Vendors) Run-the-Shop (RTS) Budget Change-the-Shop (CTS) Budget Run-the-Shop (RTS) Budget Change-the-Shop (CTS) Budget

Slide 23

Slide 23 text

Kosten versus Ertrag •  RTS: verursacht Kosten •  CTS: erbringt Ertrag Run-the-Shop (RTS) Budget Change-the-Shop (CTS) Budget

Slide 24

Slide 24 text

?How to get more Business Value out of CTS?

Slide 25

Slide 25 text

Alltag der Entwicklung...: •  Funk)onale Erweiterungen •  Verbesserung von Laufzeiteigenscha.en –  Useability –  Performance Fix Enhance •  Fehlerbehebung •  Notwendige Updates etc.

Slide 26

Slide 26 text

IT-Budgets Run / Operate Fix Enhance Run-the-Shop (RTS) Budget Change-the-Shop (CTS) Budget

Slide 27

Slide 27 text

IT-Budgets + „innere Qualität“ Run / Operate Fix Enhance Durch innere Qualität beeinflusst Run-the-Shop (RTS) Budget Change-the-Shop (CTS) Budget

Slide 28

Slide 28 text

Zwei Grundwerte... •  Agility: Wie schnell / risikoarm können fachliche Änderungen implemen)ert werden •  Business Value: Fachliche Leistung, Gebrauchs- oder Verkaufswert

Slide 29

Slide 29 text

•  Agility: Wie schnell / risikoarm können fachliche Änderungen implemen)ert werden •  Business Value: Fachliche Leistung, Gebrauchs- oder Verkaufswert innere Qualität fachliche Leistung

Slide 30

Slide 30 text

Zwei Grundwerte: Business Value: •  „Leistung“ •  Gebrauchs- oder Verkaufswert •  Führt direkt/indirekt zu Ertrag Innere Qualität: •  Business-Anforderungen schnell, risikoarm und korrekt umsetzbar •  Know-How über Architektur und Implemen)erung explizit und replizierbar

Slide 31

Slide 31 text

Auswirkung von Änderungen

Slide 32

Slide 32 text

Typen von Änderungen •  T1: Verbesserung von Business-Value UND Verbesserung der inneren Qualität •  T2: Verbesserung von Business-Value •  T3: Verbesserung der inneren Qualität

Slide 33

Slide 33 text

wenn innere Qualität sinkt, wird (neue) fachliche Leistung teurer. Agility

Slide 34

Slide 34 text

Innere Qualität erreichen: •  Einfach •  Verständlich •  Konsistent •  Modular •  Wartbar •  Erweiterbar •  Kohäsiv •  .... 1x1 des So.ware- Engineering

Slide 35

Slide 35 text

Issue (Problem) Improvement (remedy) Cost Risk Cause cost of improvement improvement has risks or consequence improvements resolve cause (root) causes of issues cost of issue (potential) cost of risk risk might result in issue solve issue with improvement(s) improvement solves issue(s) •  Mängel innerer Qualität. •  Was hindert an Wertschöpfung?

Slide 36

Slide 36 text

? How to get more Business Value out of CTS? erhöhe Anteil von T1- und T3 Änderungen!

Slide 37

Slide 37 text

? How to get more Business Value out of CTS? Löse DIE Probleme, die Wertschöpfung am stärksten behindern!

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

•  rich)g: – wichFge Probleme lösen •  schlechter: – einfache Probleme lösen •  ganz schlecht: – interessante Problemlösungen umsetzen – Ak)onismus €

Slide 40

Slide 40 text

Langfris)ge Ansätze... Determine Improvement Approach Strangulate Bad 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 Value-based Improvement

Slide 41

Slide 41 text

Big Bang (aka Cold Turkey) Client Code Flawed System User 1 New System Client Code User Entwickle ein neues System parallel zu Betrieb und Pflege des alten.

Slide 42

Slide 42 text

Big-Bang Vorgehen 1.  Spezifiziere neues System 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

Slide 43

Slide 43 text

Change By Split Client Type 1 Flawed System Client 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

Slide 44

Slide 44 text

Change By Split (2) Client Type 1 Reduced to 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

Slide 45

Slide 45 text

Change By Split Vorgehen 1.  Iden)fiziere mehrere 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

Slide 46

Slide 46 text

Strangulate Bad Parts (1) Ersetze einige schlechte 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

Slide 47

Slide 47 text

Strangulate Bad Parts Vorgehen 1.  Ersetze im bestehenden System sukzessive einzelne Komponenten Risiken •  Nebenwirkungen innerhalb des Systems schwer zu testen •  Hohe Aufwände, um übergangsweise mit „Altlasten“ zu arbeiten Voraussetzungen •  interne Schni>stellen / Modularisierung

Slide 48

Slide 48 text

Branch-By-Abstrac)on (1) Client Code Flawed Supplier Client Code Client Code Flawed Supplier Client Code Abstraction Layer Client Code Flawed Supplier Client Code Abstraction Layer Kapsele die Interak)on mit den schlechten Teilen Lasse sämtlichen Client-Code diese Kapselung nutzen Erstelle einen besseren Supplier Client Code Flawed Supplier Client Code Abstraction Layer Abstraction Layer New Supplier 1 2 3

Slide 49

Slide 49 text

Branch-By-Abstrac)on (2) Vervollständige den Supplier, ggfs. enzerne den alten. Client Code Flawed Supplier Client Code Abstraction Layer Abstraction Layer New Supplier Client Code Flawed Supplier Client Code Abstraction Layer New Supplier 4

Slide 50

Slide 50 text

Value Based Improvement Analyze: Probleme und Lösungsvorschläge analysieren 1 Flawed System (bewertete) Probleme 1 2 3 4 (bewertete) Maßnahmen 1 2 3 4 5 6 7 2 Evaluate: Deren Kosten und Nutzen (wirtscha.lich) bewerten. Konsequenzen und Nebenwirkungen beachten!

Slide 51

Slide 51 text

Value Based Improvement (2) IMPROVE: Maßnahmen umsetzen 3 Flawed System (bewertete) Probleme 1 2 3 4 (bewertete) Maßnahmen 1 2 3 4 5 6 7 Flawed System better (bewertete) Probleme 2 3 (bewertete) Maßnahmen 2 3 6 7 5

Slide 52

Slide 52 text

Value-Based Improvement (3) Steigert kon)nuierlich Business-Value UND Agilität

Slide 53

Slide 53 text

architecture improvement method aim42.org, aim42.github.io

Slide 54

Slide 54 text

Op)onen zur Verbesserung Breites Spektrum Improve Processes Improve Code Structure Improve Crosscutting Concepts Improve Technical Infrastructure Improve Analysability & Evaluability Improve Hardware Improve Logging Improve Test Automation Measure Extract Business Domain Improve Use of Technology Introduce Better Technology Quality Driven Software Architecture Improve Supporting Software Automate Release Improve Engineering Improve Delivery Improve Operations Improve Governance Improve Flow Schedule Work Refactor Code Restructure Code Enable Team Improve Test Infrastructure

Slide 55

Slide 55 text

Improve Processes Improve Code Structure Improve Crosscutting Concepts Improve Technical Infrastructure Improve Analysability & Evaluability Improve Code Structure Introduce Interfaces Refactor Code Untangle Code Remove Nested Control Structures Deprecate Obsolete Parts Improve Responsibility Improve Code Layout Move Behavior Close To Data Split Up Oversized Parts Handle If-Else Chains Interface Segregation Anticorruption Layer Hide Unmaintainable Code Extract Reusable Component Integrate Reusable Component Remove Unused Parts Eliminate Navigation Code Toggle Feature Restructure Code Isolate Parts (Modularize) Prepare Change Break Dependencies

Slide 56

Slide 56 text

Fazit (1) Beachte wirtscha2liche Auswirkungen von Maßnahmen, nicht nur deren Kosten!

Slide 57

Slide 57 text

Fazit (2) Betrachte Probleme und Lösungsvorschläge getrennt

Slide 58

Slide 58 text

Fazit (3) Vorsicht vor Big-Bang

Slide 59

Slide 59 text

Fazit (4) Prak)ziere Value-Based Improvement. Inves)ere in T1 und T3 Änderungen.

Slide 60

Slide 60 text

Dr. Gernot Starke [email protected] h>p://gernotstarke.de h>p://innoq.com h>ps://www.flickr.com/photos/foto_db/16000636092

Slide 61

Slide 61 text

Projekt 42

Slide 62

Slide 62 text

Prak)sch eingesetzt... ‣  2014: – Logis)k-Konzern (Audit Online-Sales System, >1MLOC) – ERP-Hersteller (Audit und Rebuild Kernsystem, 2 MLOC) – Finanzdienstleister, Modernisierung Core, 500kLOC •  Automo)ve: „Mul)media-Framework“ •  Rail-Service „Infrastruktur“ •  Mobilfunk „Billing“ •  Airport-Opera)ons „Luggage Handling“ •  Systemso.ware für Maschinenbau / Lebensmi>elindustrie

Slide 63

Slide 63 text

Website Whitepaper

Slide 64

Slide 64 text

Code: github

Slide 65

Slide 65 text

Issues: viele...

Slide 66

Slide 66 text

Contributors... Beiträge willkommen!

Slide 67

Slide 67 text

Contribu)ons welcome •  Method guide: http://aim42.github.io – Source: h>ps://github.com/aim42/aim42 •  https://github.com/aim42/aim42/ issues •  Twi>er: @arc_improve42 •  Mailing list: [email protected]