Complex Problem Solving
Python# For any complex problem: 1. Parse the problem statement for hidden constraints and stakeholders 2. Map dependencies using "If this fails, what else breaks?" 3. Generate 3 solution approaches: conservative, optimal, innovative 4. Test assumptions with "What would have to be true for this to work?"
Step 1: Problem Decomposition
- Extract core objective vs constraints vs nice-to-haves
- Identify all stakeholders and their competing interests
- Map dependencies: what must happen before what else can happen
Step 2: Solution Generation
- Generate 3 approaches: safe/fast/novel
- For each approach: list required resources, timeline, risk factors
- Identify the 1-2 critical assumptions that could kill each approach
Step 3: Testing & Refinement
- Red-team each solution: "How could this fail spectacularly?"
- Stress-test assumptions against real-world constraints
- Design smallest possible pilot to validate core hypothesis
Progress:
- Problem mapped with dependencies
- 3 solution approaches documented
- Critical assumptions identified and tested
- Pilot experiment designed
Example 1: "Our software deployment takes 6 hours and fails 30% of the time" Input: Reduce deployment time and failure rate
Output:
PROBLEM MAP:
- Core issue: Manual steps + environment inconsistencies
- Stakeholders: DevOps (wants reliability), Product (wants speed), QA (wants testing)
- Dependencies: Code → Build → Test → Deploy → Monitor
SOLUTION APPROACHES:
1. Conservative: Automate existing process (2-week effort, 50% improvement)
2. Optimal: Blue-green deployment + automated rollback (6-week effort, 90% improvement)
3. Innovative: Feature flags + continuous deployment (12-week effort, 95% improvement)
CRITICAL ASSUMPTIONS TO TEST:
- Current failures are environment-related (not code quality)
- Team has capacity for 6-week automation project
- Infrastructure supports blue-green deployment
PILOT: Automate deployment for 1 microservice in 1 week
Example 2: "How do we enter the European market with limited budget?" Input: Market expansion strategy with resource constraints
Output:
PROBLEM MAP:
- Objective: Revenue growth in Europe
- Constraints: Limited budget, unknown regulations, no local presence
- Stakeholders: Sales (wants leads), Legal (wants compliance), Finance (wants ROI)
SOLUTION APPROACHES:
1. Conservative: Partner with local distributor (3-month setup, shared revenue)
2. Optimal: Direct online sales + local customer support (6-month setup, full control)
3. Innovative: Acquisition of small European competitor (12-month process, immediate presence)
CRITICAL ASSUMPTIONS TO TEST:
- European customers will buy without local sales team
- Our product meets EU regulatory requirements
- Customer support can handle timezone differences
PILOT: Launch in Netherlands only, measure conversion rates for 2 months
Example 3: "Team productivity dropped 40% after remote work transition" Input: Productivity decline diagnosis and solution
Output:
PROBLEM MAP:
- Symptoms: Longer project timelines, more meetings, communication gaps
- Root causes: Async communication overhead, informal knowledge sharing lost
- Stakeholders: Managers (want visibility), ICs (want autonomy), HR (wants engagement)
SOLUTION APPROACHES:
1. Conservative: Structured daily standups + documented decisions (immediate, 20% improvement)
2. Optimal: Redesign workflows for async-first + communication protocols (4-week effort, 60% improvement)
3. Innovative: Hybrid model with defined in-office collaboration days (ongoing, 80% improvement)
CRITICAL ASSUMPTIONS TO TEST:
- Problem is communication, not motivation/tools/skills
- Team prefers more structure vs more autonomy
- Managers can measure output vs activity
PILOT: Implement async protocols with 1 team for 3 weeks
Problem Definition:
- Always ask "What problem are we really solving?" 3 times
- Separate symptoms from root causes using "5 Whys"
- Map all stakeholders, including hidden ones who benefit from status quo
Solution Design:
- Generate solutions across different time/resource/risk profiles
- Use "steel man" arguments - make the strongest case for each approach
- Design experiments that can fail fast and cheap
Assumption Testing:
- List assumptions explicitly: "For this to work, X must be true"
- Rank assumptions by importance and uncertainty
- Test high-uncertainty, high-impact assumptions first
Solution Fixation: Don't fall in love with your first idea. Generate multiple approaches before evaluating any.
Stakeholder Blindness: Missing key stakeholders leads to solutions that work technically but fail politically.
Perfect Information Fallacy: Don't wait for complete information. Design experiments to reduce uncertainty iteratively.
Complexity Addiction: Prefer simple solutions that address 80% of the problem over complex ones that address 100%.
Assumption Burial: Making critical assumptions invisible by treating them as facts. Always surface and test key assumptions.