Share
Strategische Softwarearchitektur mit Wardley Maps (Software Architecture Meetup Nürnberg)
Wardley Maps sind ein visuelles Werkzeug, das hilft, Systeme im strategischen Zusammenhang zu betrachten und fundierte Entscheidungen zu treffen. In diesem Talk erfahrt ihr, wie ihr mit Wardley Mapping Abhängigkeiten in Softwaresystemen sichtbar macht, Architekturentscheidungen nachvollziehbarer trefft und notwendige Investitionen oder auch den Verzicht darauf besser begründet. Anhand praktischer Beispiele aus der Legacy-Modernisierung zeige ich, wie ich diese Technik nutze, um Diskussionen über den Umgang mit gewachsenen Systemen anzustoßen und neue Handlungsoptionen zu eröffnen. Aber auch ihr erfahrt, wie ihr mit Wardley Maps eure tägliche Arbeit an Softwaresystemen strukturierter, transparenter und nachvollziehbarer gestalten könnt.
Markus Harrer
Transcript
88 slides
-
Strategische Softwarearchitektur mit Wardley Maps Markus Harrer Software Evolutionist Contact:
markusharrer.de Company: innoq.com some rights reserved -
Der ewige Konflikt in der Softwareentwicklung Zu teuer. Zu viele
Fehler. Zu hohe Aufwände. Zu lange Time-to-Market. Zu hohe technische Schuld. Zu wenig Verbesserung. Technologie zu schlecht. Zu wenig Innovation. Zu wenig Budget. Zu wenig Zeit. Business Technik geklaut stark inspiriert von Gernot Starke -
Clean Code Refactoring Qualitätsziele-/taktiken Domain-Driven Design Wardley Maps Mein Weg
zu diesem Thema … Refactor all the things! (aka Zeugs verbessern) Legacy Code Komisches Design Krumme Architektur Legacy Systeme Wirre Strategie Code Umfeld Zeit Design Architektur System Organisation Scope -
Wardley Simon Thought Lord, Mapper, Junior DevOpper, Destroyer of undeserved
value. Quelle: https://www.linkedin.com/in/simonwardley/ Was ist “Wardley” überhaupt? Lawful / Chaotic Evil, often Good. -
„ zu lernen ist hart!“ Basierend auf Simon Wardleys Tweet:
https://twitter.com/swardley/status/1489445302209814530 es dauert Jahre zum Lernen! Jahre und Monate, in denen man sich sagt: „Ich muss das wirklich lernen!“ 6 11 1 Monat zum Lernen! + Wardley Maps 9 -
Aller Anfang ist schwer … 10 Legacy System Wir sollten
ΛογΟµαγιχ als Open Source veröffentlichen! Bietet sich super an und wir sparen uns Arbeit! ??? Architekt Jemand, der Geld hat -
Ωισδοµ Βλοωερ ΛογΟµαγιχ ΣελλΧηεφ ∆ιε Ζεντραλε Τηε Σουρχερερ … geht
noch nicht alles Wir sollten ΛογΟµαγιχ als Open Source veröffentlichen! Bietet sich super an und wir sparen uns Arbeit! ??? -
Schritt 1: Wer braucht was? SellChef TheSourcerer WisdomBlower LogOmagic Die
Zentrale Wert Wisdom Blower LogOmagic SellChef Die Zentrale The Sourcerer Systemüberblick Wardley Map Kompo- nente Legende hängt ab von Nutzer braucht Komponente Nutzer Legende -
Schritt 2: Wie weit sind wir? Evolution Entstehung Einzel- anfertigung
Produkt Gebrauchtsgut SellChef TheSourcerer WisdomBlower LogOmagic Die Zentrale Wert -
Schritt 3: Passt das so? Evolution Entstehung Einzel- anfertigung Produkt
Gebrauchtsgut SellChef TheSourcerer WisdomBlower LogOmagic Die Zentrale Wert Create Improve Outsource -
Verschenken! Verbessern! Ignorieren! Replatform! Schritt 4: Wo wollen wir hin?
Evolution Entstehung Einzel- anfertigung Produkt Gebrauchtsgut SellChef TheSourcerer WisdomBlower LogOmagic Die Zentrale Risiko! Wert Create Improve Outsource -
Verbessern! Verschenken! Ignorieren! Replatform! Schritt 3: Wo wollen wir hin?
Evolution Entstehung Einzel- anfertigung Produkt Gebrauchtsgut ΣελλΧηεφ ΤηεΣουρχερερ ΩισδοµΒλοωερ ΛογΟµαγιχ ∆ιε Ζεντραλε Risiko! Wert ΛογΟµαγιχ beizubehalten ergibt keinen Sinn. Wir verkaufen Kochtöpfe und keine Dev-Tools! Warum sagst du das nicht gleich? -
Meine erste „public“ Wardley Map (etwas vereinfacht) Commodity Product Custom
Built Genesis Wertschöpfungskette Evolution User Zeugs machen Ultrawichtige Fachanwendung, mit der das Unternehmen fast die gesamte Kohle macht Selbstentwickeltes Microservices-Framework 7 1 Zahlen: Anzahl der Entwickler -
Anstehende Architekturentscheidung Eigenentwicklung Framework • Kontext: Bedarf an konsistentem Rahmen
für Services • Entscheidung: Eigenes leichtes Framework bauen • Pro: Passgenau, schlank, lernfördernd, unabhängig, grüne Wiese, Spaß • Alternativen: keine Ahnung Nutzung etablierter Plattform • Kontext: Bedarf an konsistentem Rahmen für Services • Entscheidung: Standardstack mit Spring Boot auf Kubernetes • Pro: Community, Reife, Sicherheitsupdates, Produktivität • Alternativen: Dapr, Quarkus -
Mensch das ist doch klar, oder? (etwas vereinfacht) Commodity Product
Custom Built Genesis Wertschöpfungskette Evolution User Zeugs machen Interne Anwendung Basis- framework Oh no! Oh yeah! Interne Entwickler Externe Firma -
24 Start Ist der Outsourcing- Kandidat klein genug? Teile ihn
auf! Ist der Outsourcing- Kandidat gut definiert? Gibt es bereits externe Dienstleister? Können wir es besser als die Dienstleister? Wird der Dienstleister auf unsere Kosten lernen? In-House- Entwicklung Outsource (agil) Neue Möglichkeit! Outsource nein ja nein vielleicht / ja nein nein ja ja ja nein Simon Wardley, CC BY-SA 4.0 Lizenz Auch: Cheatsheet zu Outsourcing -
Wie Wardley Maps erstellen? Fight-Club-Regeln 1. Regel: Ihr verliert kein
Wort über den Fight Club. 2. Regel: Ihr verliert KEIN WORT über den Fight Club. Mein Vorgehen: In Gesprächen Informationen sammeln, aus denen später bei Bedarf eine Wardley Maps erstellt werden kann Auch gut, um das Thema am Anfang nicht gleich zu verbrennen 26 -
Wann und wie Wardley Maps? • Gelegenheiten z. B. •
Im Nachhinein allein • Direkt in Gruppe* • Kopf → (chaotisches) Gekritzel → Skizze / Diagramm • Tools • Stift und Papier / Tablet • Miro, Mural, Conceptboard, … • PowerPoint, Keynote • onlinewardleymaps.com Einfache Skizze Gekritzel einer Idee * wenn Wardley Maps schon etwas mehr bekannt 27 -
“All models are wrong, but some are useful.” George Box
Wardley Maps als Kommunikationsinstrument und nicht als goldenen Zauberstab sehen! 28 -
Klassische Softwarearchitektur 30 “Die grundsätzliche Organisation eines Systems, wie sie
sich in dessen Komponenten, deren Beziehung zueinander und zur Umgebung widerspiegelt, sowie die Prinzipien, die für dessen Design und Evolution gelten.“* * Definition von ISO/IEC 42010:2007 Eigentlich schon ziemlich gut für Strategieebene! -
Strategische Softwarearchitektur? Architekturentscheidungen nicht nur technisch, sondern bewusst im Kontext
von Umfeld, Nutzerbedürfnissen und Evolution betrachten. -
Software- system Unser Umfeld 32 Nach Fabijan, Aleksander; Olsson Holmström,
Helena; Bosch, Jan. (2016). Commodity Eats Innovation for Breakfast: A Model for Differentiating Feature Realization. -
Commodity Product Custom Built Genesis Wardley Map Evolution Wertschöpfungskette sichtbar
unsichtbar Print photos Customer Management System Power Photographers Edit photos Store photos Online Photo Service Nutzer Bedürfnisse Scope Komponenten Wertschöpfungskette Evolution Muster Operating platform Website Data center Compute Übernommen von Simon Wardley, CC BY-SA 4.0 Lizenz -
„Ein Fragment der uns umgebenden Realität, das wir zum Zweck
der weiteren Analyse (willkürlich) als eine einzige Einheit behandeln wollen.“ Chris Daniel, Mapping Glossary (https://community.wardleymaps.com/t/mapping-glossary/280) Im Allgemeinen • Aktivitäten (Dinge, die wir tun) • Praktiken (wie wir Dinge tun) • Daten (wie wir etwas messen) • Wissen (wie wir etwas verstehen) In der Softwarearchitektur • Bausteine • Module • Teilsysteme • Services • Softwaresysteme • Infrastrukturelemente Die „Böbbels“ sind Komponenten -
Gebrauchsgut Produkt Eigenbau Entstehung Komponente & Evolution Wie einigen wir
uns auf die Platzierung einer Komponente? Vertrieblerin CRM Evolution 1 2 3 4 Erwartungs- haltung des Marktes Erwartungs- haltung der Herstellenden Unsere Fähigkeiten Erwartung- haltung eines konkreten Nutzenden CRM(-System): Customer Relationship Management (System zur Verwaltung von Kunden und den Beziehungen zu ihnen) CRM CRM CRM Überblick über die Geschäftskundenbeziehungen behalten Beispiele damit beginnen 36 -
Wertschöpfungskette Welche Komponenten benötigen wir, um Bedürfnisse zu erfüllen? Kundenmanagementsystem
Betriebsplattform Rechenzentrum Rechenkapazität Strom Kundenmanagementsystem Betriebsplattform Rechenzentrum Rechenkapazität Strom braucht braucht Wertschöpfungskette sichtbar unsichtbar 90° 37 -
Eine kleine Übung… Wertschöpfung sichtbar unsichtbar Komponenten Legende Angelehnt nach
Simon Wardley, CC BY-SA 4.0 Lizenz braucht Kubernetes 1 Wo würdest Du diese Komponente einordnen? Plattform zur Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen. Bitte per Chat mitteilen 38 -
Wertwahrnehmung hängt von der Orientierung ab! Wertschöpfung sichtbar unsichtbar Komponente
Legende Angelehnt nach Simon Wardley, CC BY-SA 4.0 Lizenz braucht Kubernetes Kubernetes Kubernetes Endanwender Entwickler Kubernetes Developer Advocate 40 -
Pro-Tipp: Abstand vs. Betroffenheit Wertschöpfung sichtbar unsichtbar Komponente Legende Angelehnt
nach Simon Wardley, CC BY-SA 4.0 Lizenz braucht Kubernetes Produktmanager Spitzenlasten bewältigen Dynamic Scheduling Techiekram A Techiekram C Techiekram B Techiekram D Kubernetes Produktmanager Techiekram A Techiekram C Techiekram B Techiekram D Gleicher Abstand Höhere Betroffenheit Niedrige Betroffenheit 41 -
Das Admin Panel + Alternativen Commodity Product Custom Built Genesis
Wertschöpfungskette Evolution Server effizient neustarten Admin Panel Probleme vermeiden Entwickler frühe Problem- erkennung Alarm bei Fehlern Monitoring Self-healing Managed Kubernetes auf Nutzerbeschwer- den reagieren Nutzer glücklich machen -
Ein paar einzelne Beobachtungen Klimatisches Muster: Red-Queen-Hypothese* „Hierzulande musst du
so schnell rennen, wie du kannst, wenn du am gleichen Fleck bleiben willst.“ Die rote Königin zu Alice (aus “Alice hinter den Spiegeln” von Lewis Carroll) Evolution Java JavaScript * No Choice over Evolution -
Ein paar einzelne Beobachtungen Spielzug*: Bündelung Verschiedene Produkte oder Dienstleistungen
zusammen als Paket vertreiben. * im Original: Gameplay -
Grobe Spielzüge im Java-Umfeld Evolution Lizenzgebühren, Verklagen von Marktmitbegleitern, Anstrengungen
zum Markenschutz Offene Prozesse (JCP), offene Standards, Communities (JUGs), Konferenzen, … Netzwerkeffekte, Open Source, Beteiligung Beschleuniger Java Preispolitik, Verwirrung, Ausnutzung von Einschränkungen Bremser -
Wardley Maps im Java-Ökosystems Commodity Product Custom Built Genesis Wertschöpfungskette
Evolution Java mitgestalten Java Community Process (JCP) Java-Entwickler Auf großartiger Programmierplattform mit Spaß und Freude entwickeln Moderne Programmier- Features verwenden OpenJDK Community TCK License Agreement Zertifizierte Builds Technology Compatibility Kit Java Specification Request (JSR) Offener Prozess Lizenz- ierung Disclaimer stark vereinfachte Sicht eines Außenstehenden -
Musterarten Klima Trägheit* Climatic Patterns Inertia *Eigentlich ein Teil von
Klima Maxime Doctrine Spielzüge Gameplay 53 -
Simon Wardley, CC BY-SA 4.0 Lizenz Dungeon & Dragons Alignments
:-) LG: Lawful Good N: Neutral LE: Lawful Evil CE: Chaotic Evil https://blog.gardeviance.org/2015/05/on-61-different-forms-of-gameplay.html 55 -
Ignorieren! Abschalten! Am Leben erhalten! Verkaufen! Abgeben! Verschenken! Neukaufen! Konservieren!
Umwidmen! Ausschlachten! Zurechtstutzen! Umhüllen! Ersetzen! Konvertieren! Verbessern! Rehost! Replatform! Business Produkt Technik -
Evolution MyConfTool Lightbend Config 1.3.4 Entstehung Einzelanfertigung Produkt Gebrauchsgut Lightbend
Config 0.0.1 Abwarten! + Abgeben! -
NoCode-AI- Cloud-Blockchain ihr haben müsst! Verzögern! Evolution Entstehung Einzelanfertigung Produkt
Gebrauchsgut DokManApp z. B. über Bildung -
Commodity Product Custom Built Genesis Konferenzgeschäft expandieren Entwickler Konferenz Vorträge
Speaker Inhalte Ideen Erfahrung Praxis- Wertschöpfungskette Evolution neue Ideen bekommen 63 -
64 Commodity Product Custom Built Genesis Konferenzgeschäft expandieren Entwickler Konferenz
Vorträge Speaker Inhalte Ideen Erfahrung Praxis- Wertschöpfungskette Evolution Open Space Hacking Areas Idioten hinschicken Einsetzen Allianzen Offene Ansätze behaupten, viele Ideen zu haben Signalverzerrung lawful good chaotic evil neue Ideen bekommen -
Amazon EKS Commodity Product Custom Built Genesis Arbeiten lassen mit
Spielzügen Evolution Kubernetes Entwicklerwissen über Kubernetes 1. Schulungen anbieten Wertschöpfungskette sichtbar unsichtbar 2. Community vergrößern 3. Community für einen arbeiten lassen Gameplay: Fool‘s mate (Narrenmatt) 66 -
Arbeiten lassen mit Spielzügen …bis es die anderen checken (Beispiel
OpenRewrite) Achtung, das war gerade evtl. eine unfaire Unterstellung! AWS hat natürlich nicht vor, andere für sich arbeiten zu lassen! -
“Innovate, Leverage, Commoditize” und andere Commodity (+utility) Product (+rental) Custom
Built Genesis Value chain visible invisible HPT Conversational AI ChatHPT Content Enricher Word2Vec ChatHPT Content Importer Usage data as future sensing engine Invest in startup / buy competitor Lobby for harder regulations Provide public API Publish as open source Wir Marktmitbegleiter Beispiel rein hypothetisch HPT: Human Pre-Trained Transformer Build tower and moat 69 Spielzugkombinationen -
Mein Buch über strategische Züge https://leanpub.com/strategische-spielzuege https://leanpub.com/strategic-moves (will be translated
once the German version is finished) Kostenlos online zu lesen Pay what you want Strategische Spielzüge Softwaresysteme listig weiterentwickeln Noch im Entstehen Strategic Moves Evolving software systems the smart way -
Zusammenfassung Strategische Softwarearchitektur mit Wardley Maps • Auswirkungen von Architekturentscheidungen
reichen weiter als je zuvor • Konzepte von Wardley Mapping können Architekt:innen dabei unterstützen, • neue Ideen im gegebenen Umfeld zu entwickeln • sinnvoller mit Altlasten umzugehen • verhindern, das wir ins Verderben geraten -
www.innoq.com Königstorgraben 11 90402 Nürnberg Erftstr. 15-17 50672 Köln Hermannstrasse
13 20095 Hamburg Kreuzstr. 16 80331 München Ludwigstr. 180E 63067 Offenbach Ohlauer Str. 43 10999 Berlin Krischerstr. 100 40789 Monheim +49 2173 3366-0 innoQ Deutschland GmbH Kontakt Markus Harrer Software Evolutionist #softwarearchitecture #softwaremodernization #wardleymapping E-Mail: [email protected] „Das Wissen ist das einzige Gut, das sich vermehrt, wenn man es teilt.“ Marie von Ebner-Eschenbach Diese Folien sind lizenziert unter Creative Commons Plus: (CC BY-SA 4.0 mit den separat aufgeführten Ausnahmen) some rights reserved 75 -
Wardley Mapping Quick Start https://www.youtube.com/watch?v=IJcLmoKR6v8 Ben Mosier: The Easiest Way
to Do Wardley Mapping Investing in Innovation: How Situational Awareness Can Put Your Business on the Map https://www.youtube.com/watch?v=Gfq3ocmadZo 77 -
Einstieg in das Thema • Einsteigerseite von Ben Mosior https://learnwardleymapping.com/
• Vortrag von Simon Wardley https://www.youtube.com/watch?v=Ty6pOVEc3bA • Buch „Wardley Maps“ von Simon Wardley https://medium.com/wardleymaps • Wardley Maps Awesome List (Ressourcen-Sammlung) https://list.wardleymaps.com • Meine persönlichen TOP 5 zum Einstieg https://www.feststelltaste.de/top-5-learning-wardley-maps/ • Viele Infos auf deutsch: https://flowwork.rocks/alles-ueber/wardley-maps/ 78 -
Weitere Arbeiten meinerseits • Some initial thoughts about ERP systems
https://www.feststelltaste.de/some-initial-thoughts-about-erp-systems/ • Software quality in the context of value chains and evolution https://www.innoq.com/en/blog/quality-value-chain-evolution/ • Evolving software like an orchardist https://www.innoq.com/en/blog/evolving-software-like-an-orchardist/ • Wardley Maps – Audiobook (AI-generated) https://feststelltaste.github.io/wardley-maps-audiobook/ 79 -
Mein Buch über strategische Züge https://leanpub.com/strategische-spielzuege https://leanpub.com/strategic-moves (will be translated
once the German version is finished) Kostenlos online zu lesen Pay what you want Strategische Spielzüge Softwaresysteme listig weiterentwickeln Noch im Entstehen Strategic Moves Evolving software systems the smart way 80 -
Zum Buch von Simon Wardley • Original-Blog-Posts https://medium.com/wardleymaps • Ebook
https://github.com/andrewharmellaw/wardley-maps-book • Gesprochenes Hörbuch https://www.youtube.com/playlist?list=PLSY6GMwjDPv7R2e _PvvM4WytTRzjaDx5W • Generierte Hörbücher • EN: https://feststelltaste.github.io/wardley-maps-audiobook/ • DE: https://feststelltaste.github.io/wardley-maps-hoerbuch/ 81 -
Konferenzen, Meetups & mehr • Einstiegsseiten zu Konferenzen • https://www.map-camp.com/_pages/events/
• https://list.wardleymaps.com/#events • Meetups • https://list.wardleymaps.com/#meetups • Wardley Mapping Slack-Channel • https://map-camp-slack-invite.herokuapp.com/ • Aufzeichnungen auf deutsch auf YouTube (z. B. von Oliver Finker und Tom Asel, Markus Andrezak, Holger Gelhausen und andere) 83 -
Halten die Erwartungen realistisch! Sieh es ein: Du mappst im
totalen Chaos! Ein klarer Scope ist hier entscheidend! 85 -
Gehe Schritt ür Schritt vor 1/3 1. Wer sind die
Nutzer? 2. Was sind ihre Bedürfnisse? 3. Welche Komponenten erfüllen diese Bedürfnisse? →Wertschöpfungskette! Von Ben Mosiors „The Problem with Wardley Mapping“ inspiriert 86 -
Gehe Schritt für Schritt vor 2/3 4. Wie ausgereift sind
die Komponenten im Hinblick auf Evolution? → Wardley Map! Von Ben Mosiors „The Problem with Wardley Mapping“ inspiriert 87 -
Gehe Schritt ür Schritt vor 3/3 Fortgeschritten: Muster, Muster, Muster
5. Klimatisch / Trägheit 6. Maxime 7. Spielzüge →Spaß haben! Es fühlt sich irgendwie an wie Schachspielen, bei dem nur du das Brett sehen kannst! 88