Skip to content

Instantly share code, notes, and snippets.

@bemosior
Last active February 8, 2020 18:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bemosior/5c0eb235cd77987eba9742e2acc4fb20 to your computer and use it in GitHub Desktop.
Save bemosior/5c0eb235cd77987eba9742e2acc4fb20 to your computer and use it in GitHub Desktop.
An attempt to codify the strategy cycle.
/*
The Wardley Mapping Operating System
https://medium.com/wardleymaps
Courtesy of Simon Wardley, CC BY-SA 4.0
Codified by Ben Mosior, CC BY-SA 4.0
https://creativecommons.org/licenses/by-sa/4.0/legalcode
*/
// https://learnwardleymapping.com/home/climate/
var climaticPatterns = [
"Competitors actions will change the game",
// "...",
"Shifts from product to utility tend to demonstrate a punctuated equilibrium"
]
// https://learnwardleymapping.com/home/doctrine/
var doctrinalPrinciples = [
"Use a common language",
// "...",
"There is no one culture"
];
// https://learnwardleymapping.com/home/leadership/
var gameplayStratagems = [
"Open approaches",
// "...",
"Weak signal / horizon"
];
executeStrategyCycle();
// The strategy cycle
function executeStrategyCycle() {
// 1. Purpose
var purpose = "";
// 2. Landscape
var valueChain = makeValueChain();
// 3. Climate
iterateClimate(valueChain, climaticPatterns);
// 4. Doctrine
iterateDoctrine(valueChain, doctrinalPrinciples);
// 5. Doctrine
iterateGameplay(valueChain, gameplayStratagems);
}
// Construct a value chain
function makeValueChain() {
var valueChain = {
'name': 'Customer',
'needs': [
{
'name': 'Cup of Tea',
'stage': 3,
'needs': [
{
'name': 'Cup',
'stage': 4,
'needs': []
},
{
'name': 'Tea',
'stage': 4,
'needs': []
},
{
'name': 'Hot Water',
'stage': 4,
'needs': []
},
]
}
]
}
return valueChain;
}
// Iterate over Climatic Patterns across the entire value chain
function iterateClimate(valueChain, climaticPatterns) {
console.log('Let\'s consider how Climate affects our Value Chain.');
// Imagine I've implemented depth-first tree traversal of the value chain.
component = valueChain['needs'][0];
// For each component in the value chain...
climaticPatterns.forEach(function(pattern, index){
console.log(' * How might we become aware of how the \"' + pattern + '\" pattern affects the \"' + component['name'] + '\" component?');
});
}
// Iterate over Doctrinal Principles across the entire value chain
function iterateDoctrine(valueChain, doctrinalPrinciples) {
console.log('\nLet\'s consider how we should apply Doctrine in our Value Chain.');
// Imagine I've implemented depth-first tree traversal of the value chain.
component = valueChain['needs'][0];
// For each component in the value chain...
doctrinalPrinciples.forEach(function(principle, index){
console.log(' * How might we apply the \"' + principle + '\" principle with respect to the \"' + component['name'] + '\" component?');
});
}
// Iterate over Gameplay across the entire value chain
function iterateGameplay(valueChain, gameplayStratagems) {
console.log('\nLet\'s consider how we can apply Gameplay in our Value Chain.');
// Imagine I've implemented depth-first tree traversal of the value chain.
component = valueChain['needs'][0];
// For each component in the value chain...
gameplayStratagems.forEach(function(stratagem, index){
console.log(' * How might we apply the \"' + stratagem + '\" stratagem with respect to the \"' + component['name'] + '\" component in order to create an advantage?');
});
}
@bemosior
Copy link
Author

bemosior commented Feb 8, 2020

Example output:

Let's consider how Climate affects our Value Chain.
  * How might we become aware of how the "Competitors actions will change the game" pattern affects the "Cup of Tea" component?
  * How might we become aware of how the "Shifts from product to utility tend to demonstrate a punctuated equilibrium" pattern affects the "Cup of Tea" component?

Let's consider how we should apply Doctrine in our Value Chain.
  * How might we apply the "Use a common language" principle with respect to the "Cup of Tea" component?
  * How might we apply the "There is no one culture" principle with respect to the "Cup of Tea" component?

Let's consider how we can apply Gameplay in our Value Chain.
  * How might we apply the "Open approaches" stratagem with respect to the "Cup of Tea" component in order to create an advantage?
  * How might we apply the "Weak signal / horizon" stratagem with respect to the "Cup of Tea" component in order to create an advantage?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment