Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SQ-Days Wien: Software änder, aber richtig

SQ-Days Wien: Software änder, aber richtig

Keynote auf den Software-Quality Days 2015 in Wien

Dr. Gernot Starke

January 22, 2015
Tweet

More Decks by Dr. Gernot Starke

Other Decks in Technology

Transcript

  1. © 2014 Dr. Gernot Starke / innoQ / aim42 Software

    ändern, aber richtig Dr. Gernot Starke 22. Januar 2015, Wien
  2. 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
  3. © 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
  4. © 2014 Dr. Gernot Starke / innoQ / aim42 5

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

    Improvement Method http://aim42.org
  6. © 2014 Dr. Gernot Starke / innoQ / aim42 für

    technische und betriebswirtschaftliche Stakeholder iterativ/ inkrementell! praxiserprobt!
  7. © 2014 Dr. Gernot Starke / innoQ / aim42 betriebswirtschaftlich

    bewertete Probleme in Architektur, Code, Daten, Prozessen, Betrieb, Deployment…
  8. © 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
  9. © 2014 Dr. Gernot Starke / innoQ / aim42 für

    Architektur, Code, Daten, Prozessen, Betrieb, Deployment… betriebswirtschaftlich bewertete Maßnahmen
  10. © 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 .....
  11. © 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
  12. © 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
  13. © 2014 Dr. Gernot Starke / innoQ / aim42 Estimate-in-Intervalls

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

    https://www.flickr.com/photos/63496375@N00/76524621
  15. © 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
  16. © 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
  17. © 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
  18. © 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
  19. © 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.
  20. © 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
  21. © 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
  22. © 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...
  23. © 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  
  24. © 2014 Dr. Gernot Starke / innoQ / aim42 Fazit

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

    (4) 42 Systematisch verbessern ist
  26. © 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
  27. © 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
  28. © 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]