WardleyMap
WardleyMap is a Python package designed for creating and visualizing Wardley Maps. Wardley Maps provide a visual representation of the strategic landscape and the positioning of components within it, facilitating better decision-making in business strategy and technology development.
Features
- Parse and interpret Wardley Map syntax.
- Visualize maps using
matplotlibfor easy integration into Python workflows. - Export maps to SVG format for embedding in web applications or documents.
- With a set of utilities to convert Wardley Map text into JSON, TOML, GRAPH and Cypher Text.
Installation
Install wardleymap using pip:
pip install wardleymap
Ensure you have Python 3.6 or newer installed.
Quick Start
To create and visualize a Wardley Map, follow these steps:
from wardley_map.create_wardley_map import create_wardley_map_plot
from wardley_map.wardley_maps_utils import create_svg_map
# Define the structure of your Wardley Map using a string.
map_definition = """
title Business Value Chain
anchor Customer [0.95, 0.9]
component User Needs [0.8, 0.8]
component Website [0.6, 0.6]
component Hosting [0.3, 0.4]
User Needs -> Website
Website -> Hosting
"""
# Process the Wardley Map text and generate a plot of the map
wm, map_plot = create_wardley_map_plot(map_definition)
# Display the map in a Jupyter notebook
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 8))
plt.show()
# Or convert the map plot into an SVG
svg_map = create_svg_map(map_plot)
# Or save as an image file
map_plot.savefig("business_value_chain.png", dpi=300, bbox_inches='tight')
Documentation
For detailed usage and API documentation, please refer to the docs directory.
Contributing
Contributions to WardleyMap are welcome! Please read the CONTRIBUTING.md file for guidelines on how to contribute to this project.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
- Special thanks to the open-source community for the invaluable tools and libraries.
- Inspired by Simon Wardley's work on mapping and strategy.
Example Usage
Below is an example of how to use the wardleymap package to create and visualize a Wardley Map:
from wardley_map.create_wardley_map import create_wardley_map_plot
from wardley_map.wardley_maps_utils import create_svg_map
# Define the structure of your Wardley Map using a string.
map_definition = """
title Business Value Chain
anchor Customer [0.95, 0.9]
component User Needs [0.8, 0.8]
component Website [0.6, 0.6]
component Hosting [0.3, 0.4]
User Needs -> Website
Website -> Hosting
"""
# Process the Wardley Map text and generate a plot of the map
wm, map_plot = create_wardley_map_plot(map_definition)
# Convert the map plot into an SVG
svg_map = create_svg_map(map_plot)
Advanced Features
This package supports several advanced Wardley Map elements:
Markets
Markets represent user needs or groups and are visualized with a distinctive symbol:
map_definition = """
title Customer Segments
component Product [0.6, 0.5]
market Enterprise Customers [0.9, 0.7]
market SMB Customers [0.9, 0.3]
Product -> Enterprise Customers
Product -> SMB Customers
"""
Inertia
Components with resistance to evolution can be marked with inertia:
map_definition = """
title Legacy System Migration
component Legacy System [0.6, 0.3] inertia
component Cloud Platform [0.6, 0.7]
"""
Pipelines
Visualize value chains or processes that span multiple evolution stages:
map_definition = """
title Development Pipeline
component Software Development [0.7, 0.5]
pipeline Software Development [0.2, 0.8]
"""
Complete Example
A more complex example showcasing multiple features:
map_definition = """
title Digital Transformation Strategy
component Business Strategy [0.9, 0.2]
component Legacy Systems [0.5, 0.2] inertia
component Cloud Migration [0.6, 0.5]
component New Digital Services [0.7, 0.6]
market Enterprise Customers [0.9, 0.7]
market SMB Customers [0.9, 0.4]
component DevOps [0.4, 0.6]
pipeline DevOps [0.4, 0.8]
Business Strategy -> Legacy Systems
Business Strategy -> Cloud Migration
Cloud Migration -> New Digital Services
New Digital Services -> Enterprise Customers
New Digital Services -> SMB Customers
DevOps -> Cloud Migration
"""
wm, map_plot = create_wardley_map_plot(map_definition)
map_plot.savefig("digital_transformation_strategy.png", dpi=300, bbox_inches='tight')
Metadata
Release files for wardleymap 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wardleymap-0.2.1.tar.gz | 28.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wardleymap-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.4 kB
Release files / wardleymap-0.2.1.tar.gz
| Download URL | wardleymap-0.2.1.tar.gz |
|---|---|
| Size | 28.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bec9d6264795d8fb3fa3dc75da5e21cf2ad28352a1b62120b195344ff01ff5f9
|
|
BLAKE2b-256 checksum How to use checksums |
1fa3983725ac52996b50b89c3e87c9dee195d50b18d3550456fabe71e0c0194a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.12
|
Release files / wardleymap-0.2.1-py3-none-any.whl
| Download URL | wardleymap-0.2.1-py3-none-any.whl |
|---|---|
| Size | 29.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6a9f3489ed962f7be434af46185f9a849b09d6eed40c361d4a5b76117be728d5
|
|
BLAKE2b-256 checksum How to use checksums |
042663a37a4f1642ee03716bd81994de6d6b6f8e0c7036c09d72ecd8f547e54e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.12
|