View on GitHub

Cross-Disciplinary Software Team Spaces

A Pattern Language

Cynefin-Based Decision Framework

Summary

Match decision-making approaches to the complexity of the situation using the Cynefin framework - applying appropriate processes from best practices to experimentation based on the domain.

Context

Software teams face decisions ranging from simple operational tasks to complex architectural choices. Applying the wrong decision-making approach to a situation can lead to over-engineering simple problems or under-analyzing complex ones.

Problem

Teams often use one-size-fits-all decision processes, either applying heavy analysis to simple problems (creating bottlenecks) or treating complex, emergent situations as if they were simple (leading to poor outcomes).

Solution

Use the Cynefin framework to diagnose the decision context and match the appropriate response:

Clear/Simple Domain: Obvious cause and effect, predictable outcomes

Complicated Domain: Multiple right answers, requires expertise

Complex Domain: Unpredictable outcomes, patterns emerge through experimentation

Chaotic Domain: No clear patterns, immediate action required

Confused/Disorder: Unclear which domain applies

Forces

Domain Assessment Tools

Quick Assessment Questions

Use these as conversation starters, not rigid classification rules. Real domain assessment often requires group discussion and may change as you learn more.

Gut Check Questions:

Context-Dependent Indicators:

Domain Classification Matrix

Characteristics Clear Complicated Complex Chaotic
Cause & Effect Obvious to all Requires analysis Only clear in retrospect No clear relationship
Best Response Follow procedure Good practice Emergent practice Novel practice
Decision Style Autocratic OK Consultative Participative Autocratic necessary
Failure Mode Complacency Analysis paralysis Over-analysis Hasty action
Time Frame Minutes/Hours Hours/Days Days/Weeks Immediate

Visual Decision Trees

Primary Decision Tree

START: We have a decision to make
            ↓
Is this a life/safety crisis requiring immediate action?
            ↓ Yes → CHAOTIC DOMAIN
            ↓ No
            ↓
Have we solved this exact problem before with known procedures?
            ↓ Yes → CLEAR DOMAIN  
            ↓ No
            ↓
Do we understand the problem space but need expert analysis?
            ↓ Yes → COMPLICATED DOMAIN
            ↓ No
            ↓
Are we dealing with uncertainty, emergence, or novel situations?
            ↓ Yes → COMPLEX DOMAIN
            ↓ No/Unclear
            ↓
DISORDER → Break into smaller parts and reassess

Domain-Specific Response Trees

CLEAR Domain Response:

Sense: What category is this?
    ↓
Categorize: Apply standard classification
    ↓
Respond: Execute best practice
    ↓
Monitor: Ensure expected outcome

COMPLICATED Domain Response:

Sense: Gather relevant data
    ↓
Analyze: Apply expertise & tools
    ↓
Respond: Implement good practice
    ↓
Review: Validate analysis accuracy

COMPLEX Domain Response:

Probe: Run safe-to-fail experiments
    ↓
Sense: What patterns are emerging?
    ↓
Respond: Amplify good, dampen bad
    ↓
Iterate: Continuous adaptation

CHAOTIC Domain Response:

Act: Take immediate action for safety
    ↓
Sense: Assess current situation
    ↓
Respond: Move toward stability
    ↓
Learn: Document for future crises

Training Materials and Exercises

Exercise 1: Domain Recognition Practice

Instructions: Read each scenario and classify it into a Cynefin domain. Discuss your reasoning.

Scenario A: Your CI/CD pipeline has been failing for the past hour. The error message is cryptic, production deployments are blocked, and the team is getting pressure to ship a critical fix. Domain: ___ | Reasoning: ___

Note: This could be Chaotic (if it’s blocking critical production issues) or Complicated (if pressure is artificial and you can take time to analyze). Context matters more than the surface description.

Scenario B: The team needs to choose between React and Vue for a new project. Both are well-understood technologies with clear trade-offs in your context. Domain: ___ | Reasoning: ___

Scenario C: You’re designing the user onboarding flow for a completely new type of product that doesn’t exist in the market yet. Domain: ___ | Reasoning: ___

Scenario D: A junior developer asks how to fix a failing unit test. The error message clearly indicates a null pointer exception. Domain: ___ | Reasoning: ___

Sample Classifications: A=Context-dependent (Chaotic vs Complicated), B=Complicated, C=Complex, D=Clear

Remember: These classifications can change based on context, team experience, and additional information. The goal is better decision-making, not perfect categorization.

Exercise 2: Decision Process Mapping

Goal: Practice matching decision processes to domains.

Instructions: For each domain, design a decision process for this hypothetical situation: “The team needs to improve code quality.”

Clear Domain Version: Code quality standards are well-established, tools exist

Complicated Domain Version: Multiple approaches exist, need to choose best fit

Complex Domain Version: Unclear what “quality” means in your novel context

Exercise 3: Domain Shifting Simulation

Scenario: You’re launching a new mobile app feature.

Phase 1 (Complex): Initially, user behavior with the new feature is unpredictable

Phase 2 (Complicated): After 3 months, you have data but multiple optimization approaches

Phase 3 (Clear): After 6 months, best practices emerge from your data

Common Misclassification Patterns

Treating Complex as Complicated:

Treating Complicated as Clear:

Treating Clear as Complex:

Chaotic Misclassification:

Implementation Guide

Practical Integration (Start Small)

Critical Warning: Don’t turn Cynefin into a bureaucratic process. Most decisions don’t need formal domain classification - use this framework only when you’re stuck or teams disagree on approach.

Week 1: Next time you’re about to make a significant decision, spend 5 minutes asking “Which domain does this feel like?” Don’t use tools or matrices - just discuss as a team.

Week 2-4: When you disagree on approach, ask “Are we treating this as the right type of problem?” Notice when you’re over-analyzing simple issues or under-analyzing complex ones.

Month 2+: If this proves useful, add domain assessment to decision documents. Otherwise, abandon it - frameworks that don’t naturally stick aren’t worth forcing.

Signs You’re Over-Using This Framework:

Step 2: Integration with Existing Processes

Step 3: Regular Retrospectives

Facilitation Guidelines

For Meeting Facilitators:

For Decision Makers:

Examples

Clear/Simple:

Complicated:

Complex:

Chaotic:

Sources