Slide 1

Slide 1 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Software ändern, aber richtig Dr. Gernot Starke 22. Januar 2015, Wien

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

© 2014 Dr. Gernot Starke / innoQ / aim42 3

Slide 4

Slide 4 text

© 2014 Dr. Gernot Starke / innoQ / aim42 MODERNISIERUNG & CO Jemand möchte mit/an IT-System: ‣  mehr Geld verdienen ‣  weniger Geld ausgeben ‣  Fehler beheben ‣  Norm/Gesetz erfüllen ‣  Sourcecode oä verbessern 4

Slide 5

Slide 5 text

© 2014 Dr. Gernot Starke / innoQ / aim42 5 https://www.flickr.com/photos/aigle_dore/5951683083 IT-Ausbildung bezüglich „Modernisierung“!

Slide 6

Slide 6 text

Konsequenz...

Slide 7

Slide 7 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Architecture Improvement Method http://aim42.org

Slide 8

Slide 8 text

© 2014 Dr. Gernot Starke / innoQ / aim42 für technische und betriebswirtschaftliche Stakeholder iterativ/ inkrementell! praxiserprobt!

Slide 9

Slide 9 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Iteratives Modell

Slide 10

Slide 10 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Grundbegriffe...

Slide 11

Slide 11 text

© 2014 Dr. Gernot Starke / innoQ / aim42

Slide 12

Slide 12 text

© 2014 Dr. Gernot Starke / innoQ / aim42 betriebswirtschaftlich bewertete Probleme in Architektur, Code, Daten, Prozessen, Betrieb, Deployment…

Slide 13

Slide 13 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Beispiel (Auszug) Issue / Problem Description Cost Time-to-Market 6-12 month(!!) from business requirement to release / production Sales-loss > 20-250k€ / Qtr Certain product- configurations crash basket Users configure certain types of products, apply certain rebates -> several backend processes crash 15min operator time / crash know-how drain in development (expert-)developers dissatisfied with overall architecture/implementation leave development organisation(s) Excessive time for bugfixes Several (business-critical) bugs took 2-4 weeks (!) to fix (e.g: „combined basked price zero“) 1.  sales loss 50-100€/sale, 5-30x/day 2.  reputation loss Overly heterogenous 8+ different technologies used in development / architecture 2-20% of budget

Slide 14

Slide 14 text

© 2014 Dr. Gernot Starke / innoQ / aim42 für Architektur, Code, Daten, Prozessen, Betrieb, Deployment… betriebswirtschaftlich bewertete Maßnahmen

Slide 15

Slide 15 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Improvement Backlog (kompakte Fassung) ‣  Probleme mit Maßnahmen zur Behebung ‣  Inklusive Kosten ‣  Probleme: Kosten pro Zeit/Auftreten ‣  Maßnahmen ‣  Risiken der Behebung Prio Problem Maßnahmen (Remedies) Kosten (Problem) Kosten (Behebung) Risiken 1 2 .... 3 .....

Slide 16

Slide 16 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Etablierte Praktiken 42

Slide 17

Slide 17 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Qualitative Analysis Context Analysis Stakeholder Analysis Stakeholder Interview prepares validates external stakeholder Quantitative Analysis finds risks and non-risks gives overview fundamental crosscutting Legend: collect issues collect improvement opportunities Development Process Analysis part of find input for

Slide 18

Slide 18 text

© 2014 Dr. Gernot Starke / innoQ / aim42 fundamental crosscutting Legend: Estimate Issue Cost Estimate Improvement Cost Estimate in Interval Estimate Feature Value Explicit Assumption requires based upon Improvement Backlog Issue List Artifact

Slide 19

Slide 19 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Estimate-in-Intervalls ‣  Schätze IMMER in Intervallen ‣  Breite des Intervalls == Eigenes Vertrauen in Schätzung [15..2]

Slide 20

Slide 20 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Improve... https://www.flickr.com/photos/63496375@N00/76524621

Slide 21

Slide 21 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Verbreitere den Lösungsraum

Slide 22

Slide 22 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Improve Processes Improve Iteratively Reduce Complexity fundamental Category Legend: Improve Code Structure Improve Crosscutting Concepts Determine Improvement Approach Improve Technical Infrastructure Improve Analysability & Evaluability Verify After Every Change Fast Feedback Explicit Assumptions Group Improvement Actions Prototype Improvement

Slide 23

Slide 23 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Improve Processes Category Legend: Improve Code Structure Improve Crosscutting Concepts Determine Improvement Approach Improve Technical Infrastructure Improve Analysability & Evaluability Practice 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 Strangulate Bad Parts Big Bang Frontend Switch Change Via Copy Keep Data, Toss Code Branch For Improvement Refactor Code Restructure Code Enable Team Improve Test Infrastructure Change Via Split Modularize Data Migration

Slide 24

Slide 24 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Beispiel: Change-Via-Split 1.  Erstelle n Kopien des Systems. 2.  Vereinfache / verkleinere jede Kopie spezifisch 3.  Optimiere jede Kopie nach spezifischen Zielen. Copy 1. 2a 2b 3a 3b Legend: bad medium good Split Improve

Slide 25

Slide 25 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Improve Code Structure Category Legend: Practice Introduce Interfaces Refactor Code Modularize 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 Introduce Layering Extract Reusable Component Integrate Reusable Component Remove Unused Parts Eliminate Navigation Code Bridge to New Town Toggle Feature Restructure Code

Slide 26

Slide 26 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Quality-Driven Architecture A.k.a. „Global Analysis“ ([Hofmeister+99]) 1.  Beschreibe Qualitätsziele – möglichst konkret entscheid- oder messbar 2.  Entwickle Strategien zur Erreichung der Qualitätsziele [Hofmeister+99] Applied Software-Architecture – A Practical Guide. Addision-Wesley.

Slide 27

Slide 27 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Qualitätsziele Q-Ziel Bedeutung / Szenarien Flexibilität •  Neues csv- Importformat in <4h konfigurierbar Last / Performance •  250.000 Fotos à 5MB innerhalb von 4h verarbeitet 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ösungs- ansätze

Slide 28

Slide 28 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Beispiel: „BigShop“* 42 * Projekt

Slide 29

Slide 29 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Analyze + Evaluate ... Sales Frontend Cash Management Client Personalization Client Data / Contract User Management National Catalogue Vouchers Rebate and Reduction Cards European Catalogue External Partners Sales Offices Price Management Data Warehouse Marketing & Sales Campaigns Travel Agents API & UI Pricing Engine Sales Backend Legend: Java PHP Python C/C++ Web Server Extensions Pricing Data Store Lisp- ish Cobol Security Extensions PL/ SQL

Slide 30

Slide 30 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Fakten aus „BigShop“ ‣  Technologie-Zoo: ‣  >20 Subsystemen in 7+ Technologien ‣  Organisations-Zoo: ‣  diverse Dienstleister, verteilte Entwicklung ‣  Prozess-Zoo: ‣  Diverse „Meinungen“ über Abläufe in Entwicklung, Release, Betrieb...

Slide 31

Slide 31 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Probleme „BigShop“ Issue / Problem Description Cost Time-­‐to-­‐Market   6-­‐12  month(!!)  from  business   requirement  to  release  /  produc?on   Sales-­‐loss   >  20-­‐250k€  /  Qtr   Certain  product-­‐ configura?ons   crash  basket   Users  configure  certain  types  of   products,  apply  certain  rebates  -­‐>   several  backend  processes  crash   15min  operator   ?me  /  crash   know-­‐how  drain  in   development   (expert-­‐)developers  dissa?sfied  with   overall  architecture/implementa?on   leave  development  organisa?on(s)   Excessive  ?me  for   bugfixes   Several  (business-­‐cri?cal)  bugs  took   2-­‐4  weeks  (!)  to  fix   (e.g:  „combined  basked  price  zero“)   1.  sales  loss   50-­‐100€/sale,   5-­‐30x/day   2.  reputa?on  loss   Overly   heterogenous   8+  different  technologies  used  in   development  /  architecture   2-­‐20%  of  budget  

Slide 32

Slide 32 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Fazit (1) 42 Bewerte Probleme und Lösungsvorschläge getrennt

Slide 33

Slide 33 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Fazit (2) 42 verbessere

Slide 34

Slide 34 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Fazit (3) 42 Führe

Slide 35

Slide 35 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Fazit (4) 42 Systematisch verbessern ist

Slide 36

Slide 36 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Dr. Gernot Starke [email protected] http://gernotstarke.de http://innoq.com https://www.flickr.com/photos/foto_db/16000636092

Slide 37

Slide 37 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Praxis 42

Slide 38

Slide 38 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Praktisch eingesetzt... ‣  2014: ‣  Logistik-Konzern (Audit Online-Sales System, >1MLOC) ‣  ERP-Hersteller (Audit und Rebuild Kernsystem, 2 MLOC) ‣  Finanzdienstleister, Modernisierung Core, 500kLOC ‣  Automotive: „Multimedia-Framework“ ‣  Rail-Service „Infrastruktur“ ‣  Mobilfunk „Billing“ ‣  Airport-Operations „Luggage Handling“ ‣  Systemsoftware für Maschinenbau / Lebensmittelindustrie

Slide 39

Slide 39 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Projekt 42

Slide 40

Slide 40 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Website Whitepaper

Slide 41

Slide 41 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Code: github

Slide 42

Slide 42 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Issues: viele...

Slide 43

Slide 43 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Contributors... Beiträge willkommen!

Slide 44

Slide 44 text

© 2014 Dr. Gernot Starke / innoQ / aim42 Contributions welcome ‣  Method guide: http://aim42.github.io ‣  Source: https://github.com/aim42/aim42 ‣  https://github.com/aim42/aim42/issues ‣  Twitter: @arc_improve42 ‣  Mailing list: [email protected]