If you want people to be able to do something complex, you need to provide them with the tools. Here’s an example of the basic methodology for solving an unstructured problem.

  • “What is the problem we are trying to solve?”
  • “The problem we are trying to solve is that …”
  • What’s a win? How would you know if you succeeded?
  • Do you have to solve it now?
  • Do you have the data to solve it now?
  • How much time do you have to solve it?
  • Understand the physics of the system: Why does the problem arise? Why is it intractable?
  • Distance yourself emotionally
  • Reason through robust statements
  • Raise your frame of reference from the problem. Go up 1-2 levels
  • Take variables off the table
    Relax constraints
  • Play it forward. Think 2-3 steps ahead. Run simulations in your mind.
  • See the likely future: What is likely to happen if …
  • Sequence the proposed solution practically: prioritize / triage
  • What can you do right now that improves your situation?
  • Build things to not fail in the first place
  • Will the solution persist on its own?
  • Plan for entropy and evolution: know there is no finality

You can teach people how to do this. That’s what we do, and it’s why we build things that work.