Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Kind-im-Brunnen-GStarke-code-talks-HH.pdf

Dr. Gernot Starke
October 19, 2018
380

 Kind-im-Brunnen-GStarke-code-talks-HH.pdf

Dr. Gernot Starke

October 19, 2018
Tweet

Transcript

  1. Dr. Gernot Starke innoQ Fellow +49 177 – 728 2570

    [email protected] https://arc42.de üArchitektur-Verbesserer üCoach, Trainer ü arc42, aim42 ü iSAQB e.V.
  2. Ähnlichkeiten... mit real-existierenden Personen oder Unternehmen sind erwünscht. Direkte Benennung

    solcher wäre zufällig und nicht beabsichtigt. Sämtliche hier dargestellten Personen, Unternehmen und Organisationen sind frei erfunden. © Dr. Gernot Starke.
  3. SAMM Inc. International operierendes Handelsunternehmen, Verwaltungssitz in Durango, Colorado (USA),

    Zentrale in Berlin. Bündelt Kompetenzen von über 500 Spezialisten der gesamten vertrieblichen und technischen Bandbreite: Von der effizienten Beschaffung und Partnerbetreuung über die Konzipierung und Einführung zukunftsweisender Konfigurations- und Verkaufsprozesse bis hin zu kundenorientiertem Vertrieb und Service. Mit mehr als 1.900.000 Kunden weltweit, davon 900.000 in Europa ist die SAMM Inc. international und innovativ aufgestellt, gleichzeitig traditionell und auf nachhaltige Kunden- und Partnerorientierung fokussiert. aus dem Finanzbericht
  4. 1992 1997 2003 2008 2013 Atlas Software GmbH & Co.

    KG Dr. Blau & Partner Rot AG Hodor KG Ing-Büro WebDev Inc. (London + München) Rot Holding + Rot Europa SAMM International Gelb Finance AG Tocherunternehmen in Ungarn & Pakistan Grau GmbH 2018
  5. Wie groß soll Ihr Regal sein? Breite: Höhe: Tiefe: Böden:

    weiter… Maße Material Farben Bestellung cm cm cm 60 60 25 1 Beratung http:/ /samm24.com/de/shop/furniture/config
  6. interaktives Design, KI-gestützte Vorschläge, Planung, Ausführung, Schulung, incl. Zoll &

    Exportkontrolle, behördliche Klärung, Sicherheitsprüfungen A ll Inclusive
  7. 1992 1997 2003 2008 2013 „Atlas 1“ (Host) „Atlas 2“

    (AS/400, Cobol) Backoffice -Katalog (Java + Host) eGov (Python) Web-Katalog (Java) Pricemaster (Smalltalk) ComSuite (Java & Python) SAMM Sales (Java & Co) VENOM (Java & Co) Campaigner (Java, PHP) div. kleine Mitbewerber „WaWi“ (Host, Cobol) venom42
  8. „Atlas 1“ (Host) „Atlas 2“ (AS/400, Cobol) Backoffice -Katalog (Java

    + Host) eGov (Python) Web-Katalog (Java) Pricemaster (Smalltalk) ComSuite (Java & Python) SAMM Sales (Java & Co) VENOM (Java & Co) Campaigner (Java, PHP) div. kleine Mitbewerber „WaWi“ (Host, Cobol) „Atlas 2“ (AS/400, Cobol) SAMM Sales (Java & Co) Beispiel...
  9. Integrations > Fester Ende-Termin, festes Budget > Leistung grob definiert

    > Projektleitung verfolgt Projektziele „Atlas 2“ (AS/400, Cobol) SAMM Sales (Java & Co) projekt katastrophe
  10. ...Quick‘n Dirty... Wrapper-Code für Transformationen in beide Richtungen. „Atlas 2“

    (AS/400, Cobol) SAMM Sales (Java & Co) Atlas2SAMM Mapping SAMM2Atlas Mapping Atlas2SAMM Glue SAMM2AtlasGlue
  11. Technische Schulden... „Atlas 2“ (AS/400, Cobol) SAMM Sales (Java &

    Co) Atlas2SAMM Mapping SAMM2Atlas Mapping Atlas2SAMM Glue SAMM2AtlasGlue
  12. aktuelle Situation > starker Umsatzrückgang bei Privatkunden > Time-to-Market inakzeptabel

    > bisher kein Markteintritt in mobiles Internet > Kaum Innovation bei Produkten > Gravierende technische Probleme
  13. Friedbert Board of Directors (Vorstand), CEO Dr. Taler Finance &

    Controlling Delivery Research Information Technology External Relations BER BER DUR DUR 5 BER BER DUR BER DY IT FC ER RS > CTO > Früher: M&A
  14. Fazit Friedbert: Mit aktuellem System Innovation unmöglich: > Code generell

    zu schlecht > Eklatante Know-How Defizite bei VENOM
  15. Das Startup: > Gründung in Berlin – wie SAMM Inc.

    > Friedbert übernimmt Geschäftsführung
  16. 100 Tage > Vielversprechende Prototypen > Ramp-Up verzögert > bisher

    nur 6 (statt geplant 16) MA > Abhilfe: Mehr Externe
  17. 6 Monate > VENOM: Starker Rückgang von Umsatz & Ertrag

    > Aufwändige Klärungen zentraler Anforderungen verzögert Features in neuem System > byzz.io: Erste Kündigungen
  18. sofort danach... > Neues System zeigt desaströse Fehler im Betrieb

    > byzz.io Administration massiv überfordert > Resultate führen zu: > Rollback auf Bestandssystem VENOM > Rollback der Datenmigration
  19. SAMM Inc. Friedbert H. übernimmt BER Friedbert H., langjähriger IT-Leiter

    der SAMM Inc., übernimmt zu Jahresbeginn die technische Leitung des BER Flughafen Berlin- Brandenburg. Die Sprecherin der SAMM Inc. lobte die gute Zusammenarbeit und die erfolgreiche Umsetzung selbst kritischer Projekte – mit Friedbert H. verlöre die SAMM Inc. eine außergewöhnliche Führungspersönlichkeit. aus der Presse...
  20. Karin L. > „DRAG“ – massive Abhängigkeiten > immer mehr

    Überstunden > immer weniger Überblick > Kaum Innovation Karin, Entwicklerin
  21. Karin L. > Kleine Änderungen dauern immer länger > immer

    mehr Fehler > Zu hohe technische Schulden Michael, UI-Entwickler
  22. Karin L. Stakeholder Kennen (viele) Probleme Releases benötigen viele manuelle

    Eingriffe falsche Daten im Archiv aufwändige Kommunikation mit Marketing Betriebsübergabe von einzelnen Personen abhängig Build-Prozess inhomogen, langsam und instabil zuviele Abhängigkeiten zw Teilsystemen
  23. Analyse: Architektur... Breitensuche Stakeholder Architektur Kontext Qualität Daten Prozesse >

    Interne Struktur (Bausteinsicht) > Code: > Implemenentierung > Metriken > Konzepte
  24. Karin L. > Verschiedene Sprachen erschweren Analyse... > Konventionelle Metriken

    scheitern! Statische (Code) Analyse Price Management Marketing & Sales Campaigns Pricing Engine Hodor Optical Archive Legend: Java PHP Python C/C++ Hask ell Cobol PL/ SQL Flash HTML/ JS Backend eGovernment Sales Frontend Private + Corporate Configurator Shell Client Contracts UDS (User Data Service) Order & Fullfillment Vouchers & Rebates eGov Shop Sales & Contracts Archive External Partners Price Management Data Warehouse Marketing & Sales Campaigns Atlas Customs & Logistics Pricing Engine Sales Backend Private+Corp Hodor Optical Archive Post-Sales Services Security Extensions Legend: Java PHP Python C/C++ Hask ell Cobol PL/ SQL Flash HTML/ JS Sales Backend eGovernment
  25. Level-1: Component Disorder Sales Frontend Private + Corporate Configurator Shell

    Client Contracts UDS (User Data Service) Order & Fullfillment Vouchers & Rebates eGov Shop Sales & Contracts Archive External Partners Price Management Data Warehouse Marketing & Sales Campaigns Atlas Customs & Logistics Pricing Engine Sales Backend Private+Corp Hodor Optical Archive Post-Sales Services Security Extensions Legend: Java PHP Python C/C++ Hask ell Cobol PL/ SQL Flash HTML/ JS Sales Backend eGovernment
  26. Level-1: Component Disorder Enge Kopplung der Pricing Engine Haskell Entwicklerin

    zu selten anwesend konkrete Preise hängen von zu vielen Parametern ab „Heisenbugs“ bei Preisberechnung „komplizierte“ Interaktion zwischen Validierung und Preisbestimmung Pricing- Schnittstelle(n) sehr volatil
  27. Karin L. > Analyse der Code- Historie > Suche Hotspots

    Code Archäologie (1) Adam Tornhill: Your Code as a Crime Scene
  28. Analyse: Qualität... Breitensuche Stakeholder Architektur Kontext Qualität Daten Prozesse >

    Erreichung von Qualitätsanforderungen > Performance > Robustheit > Sicherheit > etc... > Etwa: ATAM Software Product Quality Functional Suitability Reliability Performance efficiency Operability Security Compatibility Maintain- ability Transfer- ability Appropriate- ness Accuracy Compliance Availability Fault tolerance Recover- ability Compliance Time- behaviour Resource- utilisation Compliance Appropriate- ness Recognise- ability Learnability Ease-of-use Helpfulness Attractiveness Technical accessibility Compliance Confidential- ity Integrity Non- repudiation Account- ability Authenticity Compliance Replace- ability Co- existence Inter- operability Compliance Modularity Reusability Analyzability Changeability Modification stability Testability Compliance Portability Adaptability Installability Compliance
  29. Analyse: Qualität... Software Product Quality Functional Suitability Reliability Performance efficiency

    Operability Security Compatibility Maintain- ability Transfer- ability Appropriate- ness Accuracy Compliance Availability Fault tolerance Recover- ability Compliance Time- behaviour Resource- utilisation Compliance Appropriate- ness Recognise- ability Learnability Ease-of-use Helpfulness Attractiveness Technical accessibility Compliance Confidential- ity Integrity Non- repudiation Account- ability Authenticity Compliance Replace- ability Co- existence Inter- operability Compliance Modularity Reusability Analyzability Changeability Modification stability Testability Compliance Portability Adaptability Installability Compliance Pri o Merkmal Szenario 1 Performance Konfigurator zeigt mögliche Bestandteile + Ergänzungen < 5 sek an 1 Operability Konfiguratoren (Privatkunden) unter iOS & Android lauffähig 2 Performance Angebotspreis ermittelt < 10 sek 2 Changeability Neue Produktkategorie < 30T live ... <u.v.a.m.> Maßnahmen in Architektur Kein Caching möglicher Ergänzungen Mehrere Quellen von Daten für Bestandteile Ergänzungen teilweise durch falsche Daten in optischem Archiv behindert Konfiguration komplett in Flash Angebotspreis abhängig von Historie d. Kunden, d.h. oft Zugriff auf optisches Archiv notwendig <u.v.a.m.> 1 2 3 4 kein Caching möglicher Ergänzungen in Konfig.
  30. Analyse: Qualität... Software Product Quality Functional Suitability Reliability Performance efficiency

    Operability Security Compatibility Maintain- ability Transfer- ability Appropriate- ness Accuracy Compliance Availability Fault tolerance Recover- ability Compliance Time- behaviour Resource- utilisation Compliance Appropriate- ness Recognise- ability Learnability Ease-of-use Helpfulness Attractiveness Technical accessibility Compliance Confidential- ity Integrity Non- repudiation Account- ability Authenticity Compliance Replace- ability Co- existence Inter- operability Compliance Modularity Reusability Analyzability Changeability Modification stability Testability Compliance Portability Adaptability Installability Compliance Pri o Merkmal Szenario 1 Performance Konfigurator zeigt mögliche Bestandteile + Ergänzungen < 5 sek an 1 Operability Konfiguratoren (Privatkunden) unter iOS & Android lauffähig 2 Performance Angebotspreis ermittelt < 10 sek 2 Changeability Neue Produktkategorie < 30T live ... <u.v.a.m.> Maßnahmen in Architektur Kein Caching möglicher Ergänzungen Mehrere Quellen von Daten für Bestandteile Ergänzungen teilweise durch falsche Daten in optischem Archiv behindert Konfiguration komplett in Flash Angebotspreis abhängig von Historie d. Kunden, d.h. oft Zugriff auf optisches Archiv notwendig <u.v.a.m.> falsche Daten im Archiv Flash-Konfigurator zu aufwändig in der Pflege Grundlagen für Angebotspreise in > 4 Datentöpfen. Kalkulation von Angebotspreisen 10-180 Sekunden.
  31. Analyse: Daten... Breitensuche Stakeholder Architektur Kontext Qualität Daten Prozesse >

    Struktur > Datenmodell > Zugriffe (r/w) > Inhalt > Verteilung > Sicherheit / Vertraulichkeit
  32. Datenmodell auf AS/400... > 5 Tabellen, jeweils 400 Spalten >

    Massiv (!) gekoppelt ... (500) ... (300) ... (400) ... (400) ... (400) Massive Performanceprobleme Daten-Chaos (2) zentrale Tabellen zu breit + zu eng gekoppelt (4x400 Spalten)
  33. Analyse Stakeholder Process Architecture + Code Data Context Organization Docs

    analyze crosscutting Flash-Konfigurator zu aufwändig in der Pflege falsche Daten im Archiv Enge Kopplung der Pricing Engine Releases dauern zu lange Releases benötigen viele manuelle Eingriffe zu hoher Anteil an manuellem Test Betriebsübergabe von einzelnen Personen abhängig Haskell Entwicklerin zu selten anwesend konkrete Preise hängen von zu vielen Parametern ab Know-How Flaschenhälse in Entwicklung und Betrieb Einkauf & Produktdesign komplett un-agil Scrum in Entwicklung kollidiert mit Planung in Fachbereichen Produktdaten verteilt auf zwei Sales-Backends mangelnde Qualität (Performance, Robustheit, Verfügbarkeit, Sicherheit) bei Verkaufs- und Vertragsdaten „Heisenbugs“ bei Preisberechnung „komplizierte“ Interaktion zwischen Validierung und Preisbestimmung Expertenwissen über Konfiguration verteilt auf Prolog und Drools Flash als Sicherheitsrisiko zu viele Datenquellen Pricing- Schnittstelle(n) sehr volatil optisches Archiv enthält falsche Daten
  34. Fazit Aaron > Codequalität in Teilbereichen schlecht > Viele Teile

    „gut genug“ > Hohe Kompetenz in Team(s) vorhanden > Datenmigration zu riskant
  35. Systematische Modernisierung > Keep Treasures: Continous Restructure > Transformation zu

    SCS („Modularisierung“) > Dabei: Schneller Abbau kritischer HotSpots > Auf Datenmigration weitgehend verzichten > Transition zu agiler Organisation
  36. Architektur-Modernisierung (1) Change-by-Split Client Type 1 Flawed System Client Type

    2 Client Type 1 Reduced to Type 1 Client Type 2 Reduced to Type 2 New Type 1 System Client Type 1 Client Type 2 New Type 2 System
  37. Architektur-Modernisierung (2) Change-by- Extraction Client Flawed (incohesive) System Client „other“

    other features Client Flawed System Client „other“ other features Better other features Client (reduced) Flawed System Client „other“
  38. Venom-Splits (1) Venom, Split-1 NGOs, User Groups Venom, Split-2 Private

    User Corporate Users Government Users Operations Internal Users Operations Internal Users
  39. Venom-Splits (2): NGO-Spezifika NGOs, User Groups Operations Internal Users kann

    entfallen Security Extensions Sales Frontend Private + Corporate Configurator Shell Client Contracts UDS (User Data Service) Order & Fullfillment Voucher s & Rebates eGov Shop Sales & Contracts Archive External Partners Price Manageme nt Data Warehouse Marketing & Sales Campaigns Atlas Customs & Logistics Pricing Engine Sales Backend Private+Corp Hodor Optical Archive Post-Sales Services Sales Backend eGovernme nt
  40. Venom-Splits (3): Commons common NGOs, User Groups Operations Internal Users

    Sales Frontend Client Data NGO User Management Inventory Sales Order & Contracts Archive Pricing Engine Sales Backend Security Extensions DB Commons Client Contract Common Price Mngmt Commons Common User Data verkleinert Geschätzte Reduktion: von ursprünglich 2 Mio LOC auf <200 kLOC im NGO-Split Services
  41. 2 Monate später... Retrospektive zu NGO Split: > time-to-market: 5

    Tage (statt vorher >30) > Prod-Bugs: <2/Woche (vorher >10) > Developer-Happyness: ++ > Inter-Team Abstimmung aufwändig > Scrum-of-Scrum für Common Services
  42. 9 Monate später... > Re-Architecture Pricing-Engine (Java statt Haskell) >

    Jboss Drools mit modularen Regel-Sets > Merge von Price-Management und Price-Engine
  43. 18 Monate später... > Erlös + Ertrag steigen > MVP

    „VENOM2Go“ erfolgreich > Fluktuation auf (fast) Null
  44. SAMM Inc. SAB holt Experten für innovative Softwarearchitektur Aaron Schwarz,

    bei SAMM Inc. bis dato verantwortlich für die Entwicklung des internen VENOM-Systems, gab auf seinem privaten Blog seinen Wechsel zur SAB AG in Walldorf bekannt. Schwarz hatte SAMM Inc. mit einem stringenten Modernisierungskonzept innerhalb von nur 18 Monaten aus der Krise geführt. Das VENOM System gilt mittlerweile als ein Vorbild für erfolgreiche Digitalisierungsstrategien im e-Business. Schwarz schreibt, die VENOM-Teams wären “flügge“ – und benötigten seine Unterstützung nicht mehr. Bei der SAB AG leitet er zukünftig die Software- Entwicklung der neu gegründeten SABank. aus der Presse...