Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wardleymap-0.2.1.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

wardleymap-0.2.1-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

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

Hashes for wardleymap-0.2.1.tar.gz
Algorithm Hash digest
SHA256 bec9d6264795d8fb3fa3dc75da5e21cf2ad28352a1b62120b195344ff01ff5f9
MD5 82f7bbe8dbab1b7c8a243f519273e0e7
BLAKE2b-256 1fa3983725ac52996b50b89c3e87c9dee195d50b18d3550456fabe71e0c0194a

See more details on using hashes here.

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

Hashes for wardleymap-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6a9f3489ed962f7be434af46185f9a849b09d6eed40c361d4a5b76117be728d5
MD5 429ab932bd516df2414e1bb4a779531e
BLAKE2b-256 042663a37a4f1642ee03716bd81994de6d6b6f8e0c7036c09d72ecd8f547e54e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page