wardley-mapping

A strategic mapping technique for understanding competitive landscape, technology evolution, and making informed architectural decisions.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "wardley-mapping" with this command: npx skills add melodic-software/claude-code-plugins/melodic-software-claude-code-plugins-wardley-mapping

Wardley Mapping

A strategic mapping technique for understanding competitive landscape, technology evolution, and making informed architectural decisions.

When to Use This Skill

Keywords: wardley map, value chain, evolution, genesis, custom, product, commodity, strategy, landscape, doctrine, gameplay, situational awareness, strategic positioning, technology radar

Use this skill when:

  • Making technology investment decisions

  • Evaluating build vs. buy vs. outsource

  • Understanding competitive positioning

  • Planning technology evolution strategy

  • Communicating architecture strategy to stakeholders

  • Identifying strategic opportunities and threats

  • Deciding where to focus innovation efforts

What is Wardley Mapping?

Wardley Mapping, created by Simon Wardley, provides situational awareness for strategic decision-making by visualizing:

  • Value Chain: Components needed to meet user needs

  • Evolution: How components change over time

  • Landscape: The competitive environment

  • Movement: How the landscape changes

The Map Structure

                EVOLUTION

    Genesis    Custom     Product    Commodity
       ↓          ↓          ↓          ↓
    ┌──────────────────────────────────────────┐
    │                                          │

Visible │ User Need ● │ ← Anchor │ │ │ │ ↓ │ │ Component A ●──────────→ ● │ │ │ │ │ ↓ │ │ Component B ● │ │ │ │ Hidden │ ↓ │ │ Component C ● │ │ │ │ │ ↓ │ │ Component D ● │ ← Commodity │ │ └──────────────────────────────────────────┘

    Y-axis: Visibility (to user)
    X-axis: Evolution (certainty)

Evolution Stages

Stage Characteristics

evolution_stages: genesis: position: "Far left" characteristics: - "Novel, unique, uncertain" - "Poorly understood" - "High failure rates" - "Requires experimentation" activities: - "Research & development" - "Exploration" - "Proof of concepts" examples: - "Quantum computing (for most use cases)" - "Novel AI architectures" - "Experimental materials"

custom_built: position: "Center-left" characteristics: - "Understood but unique implementation" - "Bespoke solutions" - "Differentiating" - "High cost, high expertise" activities: - "Custom development" - "Integration work" - "Specialized teams" examples: - "Custom recommendation engine" - "Bespoke trading platform" - "Specialized analytics"

product: position: "Center-right" characteristics: - "Increasingly understood" - "Multiple vendors/options" - "Feature differentiation" - "Growing competition" activities: - "Buy vs. build decisions" - "Vendor evaluation" - "Configuration over coding" examples: - "CRM systems" - "E-commerce platforms" - "Analytics tools"

commodity: position: "Far right" characteristics: - "Well understood" - "Essential, expected" - "Low differentiation" - "Volume operations" activities: - "Utility consumption" - "Cost optimization" - "Operational excellence" examples: - "Cloud compute (IaaS)" - "Email services" - "Payment processing"

Evolution Indicators

Indicator Genesis Custom Product Commodity

Ubiquity Rare Rare-Common Common Widespread

Certainty Uncertain Uncertain-Defined Defined Defined

Market Undefined Forming Mature Utility

Failure Mode Research Learning Differentiation Operational

Talent Pioneers Settlers Town Planners Utilities

Creating a Wardley Map

Step 1: Identify the Anchor

anchor: definition: "The user need being served"

questions: - "Who is the user?" - "What do they need?" - "What visible outcome do they expect?"

placement: "Top of map, visible to user"

examples: - "Customer needs to purchase products online" - "Developer needs to deploy applications" - "Analyst needs to generate reports"

Step 2: Build the Value Chain

value_chain: approach: "Work backwards from user need"

questions: - "What components are needed to meet this need?" - "What does each component depend on?" - "What components are hidden from the user?"

tips: - "List capabilities, not just technologies" - "Include people, practices, and data" - "Map both technical and business components" - "Dependencies flow downward"

Step 3: Position on Evolution

positioning: method: "Assess each component's evolution stage"

criteria: - "How well understood is it?" - "How many alternatives exist?" - "Is it commoditized or unique?" - "What's the market maturity?"

common_mistakes: - "Positioning based on age, not maturity" - "Confusing internal unfamiliarity with market genesis" - "Not considering industry context"

Step 4: Add Movement

movement: notation: "Arrows showing direction of evolution"

types: natural_evolution: "→ Component moving right over time" inertia: "× Resistance to movement" acceleration: ">> Forced rapid evolution"

considerations: - "All components evolve rightward over time" - "Evolution can be accelerated by competition" - "Inertia can slow movement"

Map Template

Title: {Map Name} Anchor: {User Need} Date: {ISO-8601}

                Genesis    Custom     Product    Commodity
                   │          │          │          │
                   ▼          ▼          ▼          ▼

Visible ┌───────────────────────────────────────┐ │ │ │ {User Need} │ │ │ │ │ ↓ │ │ {Component 1} ●──────→ │ │ │ │ │ ├───────────────┐ │ │ ↓ ↓ │ │ {Component 2} {Component 3} │ │ ● ● │ │ │ │ │ │ ↓ │ │ │ {Component 4} │ │ │ ● │ │ Hidden │ │ │ │ │ ↓ ↓ │ │ {Component 5}───────┘ │ │ ● │ │ │ └───────────────────────────────────────┘

Legend: ● = Current position → = Movement direction × = Inertia

Doctrine

Universally useful patterns for strategy:

doctrine_categories: communication: - "Use a common language" - "Challenge assumptions" - "Focus on user needs"

development: - "Use appropriate methods for evolution stage" - "Think small (cell-based structures)" - "Manage inertia" - "Use standards where appropriate"

operation: - "Think fast, inexpensive, restrained, elegant" - "Manage failure appropriately" - "Optimize flow"

learning: - "Use a systematic mechanism of learning" - "Know your users" - "Know your details"

leading: - "Be the owner" - "Move fast" - "Accept that strategy is iterative"

Doctrine Assessment Template

doctrine_assessment: communication: common_language: score: "{1-5}" evidence: "{How is strategic language standardized?}"

challenge_assumptions:
  score: "{1-5}"
  evidence: "{How are assumptions questioned?}"

development: appropriate_methods: score: "{1-5}" evidence: "{Are agile/lean/six sigma applied contextually?}"

cell_based:
  score: "{1-5}"
  evidence: "{Are teams small and autonomous?}"

... continue for all doctrine points

Gameplay Patterns

Strategic moves based on landscape understanding:

Offensive Patterns

offensive_gameplay: tower_and_moat: description: "Build differentiating capabilities on commodity foundation" when: "Strong custom components exist" action: "Commoditize dependencies, invest in differentiation" map_signature: "Custom components with commodity dependencies"

land_and_expand: description: "Enter market with narrow offering, expand from there" when: "New market entry" action: "Start simple, add components over time"

open_source_play: description: "Commoditize competitor's differentiator" when: "Competitor relies on custom component you can replicate" action: "Open source alternative to accelerate commoditization"

ecosystem: description: "Create platform others build upon" when: "Control infrastructure component" action: "Enable others to build on your platform"

two_factor: description: "Satisfy two markets with one platform" when: "Platform can serve multiple user types" action: "Connect both sides of a market"

Defensive Patterns

defensive_gameplay: patents_and_ip: description: "Protect innovations legally" when: "Genesis/custom stage innovations" action: "File patents, protect trade secrets"

creating_constraint: description: "Slow evolution of component you control" when: "Evolution threatens your position" action: "Limit interoperability, create switching costs"

embrace_and_extend: description: "Adopt standard then differentiate" when: "Commodity/product threatens differentiation" action: "Add proprietary extensions"

Strategic Decisions

Build vs. Buy vs. Outsource

build_buy_outsource: build: when: - "Component in Genesis/Custom stage" - "Core differentiator" - "No suitable market alternatives" - "Strategic advantage from ownership" examples: - "Core recommendation algorithm" - "Proprietary trading logic"

buy: when: - "Component in Product stage" - "Not core differentiator" - "Multiple vendor options exist" - "Faster time to market needed" examples: - "CRM system" - "Marketing automation"

outsource: when: - "Component is Commodity" - "No differentiation possible" - "Volume economics favor specialists" - "Operational burden not worth it" examples: - "Cloud infrastructure" - "Payment processing" - "Email delivery"

Innovation Investment

innovation_investment: genesis: investment_type: "Exploration" approach: "Experiments, PoCs, research" metrics: "Learning velocity, options created" failure_tolerance: "High"

custom: investment_type: "Differentiation" approach: "Product development, custom builds" metrics: "Feature completion, user adoption" failure_tolerance: "Medium"

product: investment_type: "Enhancement" approach: "Integration, configuration" metrics: "Time to value, TCO" failure_tolerance: "Low"

commodity: investment_type: "Optimization" approach: "Cost reduction, automation" metrics: "Cost per unit, availability" failure_tolerance: "Very low"

.NET/C# Architecture Implications

Evolution-Appropriate Development

namespace Architecture.Strategy;

// Model for tracking component evolution public record WardleyComponent { public required string Name { get; init; } public required EvolutionStage Evolution { get; init; } public required double EvolutionPosition { get; init; } // 0.0 (Genesis) to 1.0 (Commodity) public required double Visibility { get; init; } // 0.0 (Hidden) to 1.0 (Visible) public List<string> DependsOn { get; init; } = []; public MovementDirection? Movement { get; init; } public bool HasInertia { get; init; } public string? StrategicNotes { get; init; } }

public enum EvolutionStage { Genesis, // 0.0 - 0.25 CustomBuilt, // 0.25 - 0.50 Product, // 0.50 - 0.75 Commodity // 0.75 - 1.0 }

public enum MovementDirection { None, Evolving, // Natural rightward movement Accelerating, // Faster than normal evolution Decelerating // Inertia slowing evolution }

public record WardleyMap { public required string Title { get; init; } public required string Anchor { get; init; } public required string UserNeed { get; init; } public DateOnly MapDate { get; init; } public List<WardleyComponent> Components { get; init; } = []; public List<StrategicPlay> IdentifiedPlays { get; init; } = []; }

public record StrategicPlay { public required string Name { get; init; } public required GameplayPattern Pattern { get; init; } public required string Rationale { get; init; } public List<string> AffectedComponents { get; init; } = []; public string? ExpectedOutcome { get; init; } public string? RiskAssessment { get; init; } }

public enum GameplayPattern { TowerAndMoat, LandAndExpand, OpenSourcePlay, Ecosystem, TwoFactor, PatentsAndIp, CreatingConstraint, EmbraceAndExtend }

Evolution-Based Architecture Decisions

public class ArchitectureAdvisor { public ArchitectureRecommendation Recommend(WardleyComponent component) { return component.Evolution switch { EvolutionStage.Genesis => new ArchitectureRecommendation { DevelopmentApproach = "Experimental, spike-driven", TeamType = "Small, cross-functional pioneers", Architecture = "Loosely coupled, easily replaceable", Practices = ["Rapid prototyping", "High test coverage", "Feature flags"], InfrastructureApproach = "Containerized, easy to tear down" },

        EvolutionStage.CustomBuilt => new ArchitectureRecommendation
        {
            DevelopmentApproach = "Agile, iterative",
            TeamType = "Product-focused settlers",
            Architecture = "Vertical slices, bounded contexts",
            Practices = ["TDD", "CI/CD", "Observability"],
            InfrastructureApproach = "Managed services where possible"
        },

        EvolutionStage.Product => new ArchitectureRecommendation
        {
            DevelopmentApproach = "Configuration over custom code",
            TeamType = "Integration specialists",
            Architecture = "Adapter patterns, plugin architecture",
            Practices = ["Vendor evaluation", "Contract testing"],
            InfrastructureApproach = "SaaS/PaaS preferred"
        },

        EvolutionStage.Commodity => new ArchitectureRecommendation
        {
            DevelopmentApproach = "Operational excellence",
            TeamType = "SRE, platform engineering",
            Architecture = "Standard interfaces, utility patterns",
            Practices = ["Cost optimization", "Automation", "Monitoring"],
            InfrastructureApproach = "Utility services, serverless"
        },

        _ => throw new ArgumentOutOfRangeException()
    };
}

}

public record ArchitectureRecommendation { public required string DevelopmentApproach { get; init; } public required string TeamType { get; init; } public required string Architecture { get; init; } public List<string> Practices { get; init; } = []; public required string InfrastructureApproach { get; init; } }

Map Analysis Checklist

analysis_checklist: completeness: - "Is the anchor (user need) clearly defined?" - "Are all components necessary to meet the need included?" - "Are dependencies shown?" - "Are movement arrows present?"

positioning: - "Is each component positioned based on market evolution, not internal capability?" - "Are commodity components on the right?" - "Are genuinely novel components on the left?"

insights: - "What components have inertia?" - "Where are there opportunities to commoditize?" - "What genesis activities could become differentiators?" - "Where do we have technical debt (building custom where products exist)?"

strategic: - "What gameplay patterns apply?" - "Where should we invest vs. outsource?" - "What climatic patterns affect our landscape?" - "What doctrine weaknesses exist?"

Output Format

Wardley Map Document

wardley_map: metadata: title: "{Map Name}" author: "{Author}" date: "{ISO-8601}" version: "1.0" scope: "{What this map covers}"

anchor: user: "{User description}" need: "{User need statement}"

components: - name: "{Component Name}" evolution: "{Genesis/Custom/Product/Commodity}" position: "{0.0-1.0}" visibility: "{0.0-1.0}" depends_on: - "{Dependency 1}" - "{Dependency 2}" notes: "{Strategic notes}" movement: "{evolving/accelerating/inertia/none}"

analysis: opportunities: - "{Opportunity 1}" - "{Opportunity 2}"

threats:
  - "{Threat 1}"
  - "{Threat 2}"

inertia_points:
  - component: "{Component}"
    reason: "{Why inertia exists}"

recommendations: immediate: - "{Action with rationale}" short_term: - "{Action with rationale}" long_term: - "{Action with rationale}"

Integration with Other Skills

Upstream

  • togaf-guidance - Enterprise architecture context

  • gap-analysis - Current vs. target state analysis

  • adr-management - Document strategic decisions

Downstream

  • team-topology-design - Align teams with evolution stages

  • fitness-functions - Measure evolution progress

  • cloud-alignment - Cloud strategy by evolution stage

References

For additional guidance:

  • Climatic Patterns

  • Mapping Examples

Version History

  • v1.0.0 (2025-12-26): Initial release - Wardley Mapping skill

Last Updated: 2025-12-26

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

design-thinking

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

plantuml-syntax

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

system-prompt-engineering

No summary provided by upstream source.

Repository SourceNeeds Review