A Python package to create and visualise Wardley Maps
Project description
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
matplotlib
for 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')
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file wardleymap-0.2.1.tar.gz
.
File metadata
- Download URL: wardleymap-0.2.1.tar.gz
- Upload date:
- Size: 28.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
bec9d6264795d8fb3fa3dc75da5e21cf2ad28352a1b62120b195344ff01ff5f9
|
|
MD5 |
82f7bbe8dbab1b7c8a243f519273e0e7
|
|
BLAKE2b-256 |
1fa3983725ac52996b50b89c3e87c9dee195d50b18d3550456fabe71e0c0194a
|
File details
Details for the file wardleymap-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: wardleymap-0.2.1-py3-none-any.whl
- Upload date:
- Size: 29.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
6a9f3489ed962f7be434af46185f9a849b09d6eed40c361d4a5b76117be728d5
|
|
MD5 |
429ab932bd516df2414e1bb4a779531e
|
|
BLAKE2b-256 |
042663a37a4f1642ee03716bd81994de6d6b6f8e0c7036c09d72ecd8f547e54e
|