Löst man sich ein Stück weit von der gewohnten, rein visuellen Arbeitsweise, kann man neue Auswertungsmöglichkeiten dazugewinnen. Mit der Überführung einer Wardley Map in eine Graphdatenbank kann die Map mit strukturierten Abfragen analysiert und interpretiert werden. Das erleichtert die Auswertung und ermöglicht die automatisierte Erkennung von Mustern.
Visuelle Analyse gerät schnell an ihre Grenzen
Idealerweise lassen sich Problemstellungen bereits besser verstehen, indem man eine Wardley Map der wahrgenommenen Situation erstellt. Für manche Szenarien reicht das jedoch nicht aus und es entstehen mehrere Maps für einen gemeinsamen Kontext. Gründe dafür können sein:
- Ein Szenario ist zu groß, um auf einer einzigen Map sinnvoll dargestellt zu werden
- Die Struktur der Map ist hierarchisch geprägt, ein Ausschnitt oder eine Komponente auf einer Map wird als eigene Map visualisiert
- Mehrere Fragestellungen sind inhaltlich verknüpft und beziehen sich z.B. auf die gleichen Komponenten
- Für eine Fragestellung sind über einen Zeitraum mehrere Maps entstanden, die unterschiedliche Wissensstände repräsentieren
Wie kann mit solchen Situationen umgegangen werden? Im einfachsten Fall liegen nur die Maps an sich vor, d.h. handschriftlich auf einem Blatt Papier, auf einem digitalen oder analogen Whiteboard oder mit einer speziellen Software erstellt. In jedem Fall können die Maps selbst verglichen und versucht werden, eigene Schlüsse daraus ziehen. Je mehr Maps gleichzeitig berücksichtigt werden müssen und je komplexer die einzelnen Maps sind, desto schwieriger gestaltet sich diese Aufgabe.
Welche Tools bieten strukturierte Abfragen auf Wardley Maps?
Stand 2022 ist die Tool-Landschaft für die Erstellung von Wardley Maps sehr übersichtlich: Online Wardleymaps und Mapkeep dürften aufgrund der einfachen Zugänglichkeit am weitesten verbreitet sein. Unter https://list.wardleymaps.com/#apps finden sich weitere Werkzeuge und Ressourcen.
Keines der Tools verfügt über fortgeschrittene Abfrage- oder Auswertungsmöglichkeiten und ebenfalls allen gemein ist, dass sie aufgrund fehlender Standards nicht kompatibel sind. Wünschenswert wären Abfragesprachen und Auswertungsmöglichkeiten, wie sie bereits aus Datenbanken bekannt sind. Insbesondere Graphdatenbanken scheinen besonders geeignet um Wardley Maps aufzunehmen und mit den integrierten Abfragesprachen zu analysieren. Bislang existiert kein Tool, dass die visuelle Erstellung von Maps mit Graphdatenbanken verknüpft - mehr dazu später.
Aber Maps sind keine Graphen, oder doch?!
X : Why is it not a graph?
— Simon Wardley ❤️🇺🇦 (@swardley) July 4, 2019
Me : Maps are graphs but not all graphs are maps. To explain, one of these is a map, one of these is a graph. See if you can spot the difference ... pic.twitter.com/gZBdf2NQqZ
Im Gegensatz zu einem Graphen hat die räumliche Anordnung auf einer Karte eine Bedeutung, ebenso wie Entfernungen und Abstände. Betrachtet man eine Map als Graph, gehen diese wesentlichen Informationen in der visuellen Darstellung verloren. Konzepte wie Evolution, bei denen die räumliche Anordnung entlang der Evolutionsskala und der Abstand zwischen Komponenten eine Bedeutung haben, lassen sich visuell so nicht mehr ausdrücken.
Die physische Repräsentation der Map, z.B. in einer Graphdatenbank, kann diese Informationen natürlich weiterhin codiert enthalten, sie sind somit für algorithmische Auswertungen zugänglich. Wesentliche Aussagen über die Map lassen sich treffen, in dem innerhalb des Graphen navigiert wird und auf Eigenschaften der die Map-Komponenten repräsentierenden Knotenpunkte (z.B. den Evolutionsgrad) zugegriffen wird.
Es muss also nicht ausschließlich visuell mit Maps gearbeitet werden: Wird eine Map in eine Graphdatenbank überführt, bietet sich die Möglichkeit, mit strukturierten Abfragen auf dem Graph der Map zu operieren. Das erleichtert die Auswertung großer Datenmengen und ermöglicht die automatisierte Erkennung von Mustern.
Ein Beispiel: Wardley Maps in Neo4j
Simon Wardley publiziert Maps aus offenen Mapping Sessions unter https://github.com/swardley/Research2022. Im Folgenden werden Maps, die im Rahmen von kollaborativen Mapping Sessions entstanden sind und dort veröffentlicht wurden, verwendet:
- agriculture/agriculture-food-traceability and security (Github) (Preview mit Onlinewardleymaps.com)
- agriculture/agriculture-food-waste (Github) (Preview mit Onlinewardleymaps.com)
Beide Maps stammen aus dem gleichen Kontext, bilden jedoch unterschiedliche Sachverhalte ab, wie bereits der jeweilige Titel verrät. Wie lässt sich herausfinden, ob es Komponenten gibt, die in beiden Maps vorkommen? Zunächst werden die Maps in eine Neo4J Graphdatenbank überführt, um mit der Cypher Query Language strukturierte Abfragen darauf anzuwenden.
Der Graph lässt sich mit einer einfachen Abfrage auf die Komponenten reduzieren, die in beiden Maps vorkommen:
MATCH (m1:MAP)-[:CONTAINS]->(c1:COMPONENT)
MATCH (m2:MAP)-[:CONTAINS]->(c2:COMPONENT)
WHERE c1.name = c2.name AND m1 <> m2
RETURN DISTINCT c1, c2, m1, m2
Neo4J bringt einen sehr gut nutzbaren Browser mit, der bei der Analyse und der Formulierung auch komplexer Queries hilfreich ist. Praktischerweise lassen sich die Ergebnisse nicht nur graphisch darstellen, sondern auch Ergebnislisten erzeugen:
Die gefundenen mehrfach vorkommenden Komponenten lassen sich weiter untersuchen, z.b. in dem man sich deren direkt verbundene Komponenten in beiden Maps anzeigen lässt:
MATCH (n)-[]-(c) WHERE n.name = 'energy' RETURN n,c
Weitere Anwendungsfälle
Strukturierte Abfragen auf Maps anzuwenden, eröffnet viele interessante Auswertungsmöglichkeiten und auch das Angebot an dafür nutzbaren Tools verbreitert sich. Mit Neo4J Bloom steht z.B. eine Data-Science Suite zur Verfügung, die auf Graphdatenbanken operiert und zur weiteren Analyse von Wardley Maps genutzt werden kann. Ebenfalls spannende Einsatzmöglichkeiten sind:
- Pattern Matching: Identifikation von Komponenten mit bestimmten charakteristischen Eigenschaft, z.B. hohe Sichtbarkeit bei geringem Evolutionsgrad
- Pfadanalysen: Wenn der zugrunde liegenden Value Chain Kosten zugeordnet werden, lässt sich algorithmisch der günstigste Pfad ermitteln und darauf aufbauend eine Strategie entwerfen.
Die Liste lässt sich sicher noch erweitern, fest steht: Algorithmische Auswertung eröffnet ganz neue Perspektiven.
Wie überführt man eine Map in eine Graphdatenbank?
Um Wardley Maps mit strukturierten Abfragen analysieren zu können, ist es zunächst notwendig, sie in eine Graphdatenbank zu überführen und dabei sind einige Hürden zu nehmen:
- Generell gibt es nur wenige Werkzeuge, um Maps strukturiert zu erstellen und in einem textbasierten Format zu exportieren
- Ein einheitlicher Standard zur Definition von Wardley Maps existiert nicht, alle Ansätze sind proprietär
- Manuelle Überführung einer Map-Definition aus einem bestimmten Tool wie Online Wardleymaps, mit Bordmitteln der jeweiligen Graphdatenbanken ist sehr aufwändig
- Es fehlt ein Synchronisationsmechanismus, mit dem Änderungen an der ursprünglichen Map ebenfalls auf die Datenbank übertragen werden
Parsley: Ein freier Parser für Wardley Maps
Um die oben genannten Probleme zu adressieren, wurde im Rahmen eines Proof-of-Concept Parsley entwickelt. Parsley ist ein quelloffener Parser für Wardley Maps, mit dem Maps aus Online Wardleymaps in eine Neo4J Graphdatenbank überführt werden können. Die oben gezeigten Beispiele wurden mit Parsley in der Datenbank persistiert um sie weiteren Analysen zu unterziehen. Parsley ist unter MIT Lizenz auf Github verfügbar und kann z.b. einfach als Docker-Container lokal betrieben werden.
Ein Plädoyer für Standards
@swardley laid out his plan: "ultimately, I want Standards to be set by the community", which meshes well with @juliusgb2k setting up a #WardleyMaps Standards Working Group. We’ll likely need to split this up, eg: knowledge, data, grammar, libraries, etc.
— Steve Purkis (@spurkis) February 1, 2022
Die Wardley Mapping Community wächst stetig, wie sich an mittlerweile etablierten Veranstaltungen wie dem Map Camp und der regen Toolentwicklung zeigt. Was jedoch fehlt und ebenfalls von der Community selbst getrieben werden sollte, ist die Entwicklung interoperabler Standards. Allen voran zu nennen ist die Standardisierung eines menschen- und maschinenlesbaren Formats zur Definition von Wardley Maps. Eine gemeinsame, ubiquitäre Sprache würde die Evolution bestehender und neuer Tools fördern. Eine standardisierte Beschreibungssprache könnte erheblich dazu beitragen, die Austauschbarkeit und Kompatibilität, und somit den direkt wahrnehmbaren Nutzen der Werkzeuge, dramatisch zu erhöhen.
Als Basis für eine offenes, niederschwelliges und einfaches Standardformat bietet sich die von Onlinewardleymaps.com benutzte Grammatik an. Diese bildet zwar noch nicht den vollen Umfang der benötigten Sprachfeatures ab und ist stellenweise inkonsistent, dafür jedoch sehr einprägsam, leicht zu verwenden und bereits in der Community verbreitet. Eine Standardisierung würde es anderen Tool Entwicklern ermöglichen, mit Onlinewardleymaps.com erstellte Maps zu verarbeiten, ohne sich an proprietäre Features zu ketten. Eine wohldefinierte, standardisierte Sprache erlaubt den Einsatz von Parser-Generatoren welche wiederum den Implementierungs- und Wartungsaufwand für künftiges Tooling verringern würde.
Mit den Worten von Simon Wardley’s Worten ausgedrückt, sollten dies die nächsten Schritte für die Wardley Mapping Community sein:
- Know your users
- Be transparent
- Use a common language
- Be pragmatic
- Use standards where appropriate
- Design for constant evolution
- Set exceptional standards