This is something I came up with. It’s an iterative method to come up with solutions at the right level of abstraction (usually people solve problems that are too specific, or feel powerless to solve problems that are too large).<p>I’m using here as an example the problem that India faced when they had massive heat waves. Solution in the end was to paint their houses (and maybe streets?) with a light repelling paint. Super cheap and super effective.<p><pre><code> 1. Identify pain — What’s hurting me? What am I trying to solve? (people dying from heat wave in india)
2. List assumptions — What are my assumptions about the problem/state of the world? (heat kills people / people dying is bad / heat waves will continue to occur / we have no control over heat at the scale of cities/countries)
3. Challenge assumptions — Which assumptions, if removed, change the equation? (first 3 assumptions, if removed, result in deciding to do nothing; final assumption if challenged, opens possibilities)
4. Restate problem, per challenged assumption — What is the new problem definition, if I remove this assumption? (how do we make the city less hot)
5. If no solutions come up either do (3) again, or go a level higher by doing (1) again.</code></pre>
This is heavily weighted towards computing / programing.<p>Roughly:<p>1: Find out what fixed looks like. When did it stop working? Has it ever worked?<p>2: Form theories about why it may not be working (googling is part of forming theories)<p>3: Pick what you consider to be the most likely problem, or the fastest theory to test.<p>4: Test the theory (May require googling to figure out a falsifiable way to test)<p>5: if that was not the problem, consider if your test falsified any more theories or changed the liklihood of other, then move on to the next test<p>6: Repeat until you're out of testable theories.<p>7: Come up with more testable theories (if you already tried everything you could think of and google, start asking people online and reading books about the problem.)<p>8: Keep testing theories.<p>9: Fix the problem.<p>10: Celebrate.
* How to Solve it – A New Aspect of Mathematical Method by George Polya.<p>* The Thinker's Toolkit: 14 Powerful Techniques for Problem Solving by Morgan Jones.<p>* The Model Thinker: What You Need to Know to Make Data Work for You by Scott Page.<p>* The Decision Book: Fifty models for strategic thinking by Krogerus & Tschappeler.
Kepner-Tregoe ("K-T") is something our IT department was given training in a few years ago. It's not specifically for software/IT though; it's a pretty generic framework. <a href="https://kepner-tregoe.com" rel="nofollow">https://kepner-tregoe.com</a><p>While searching for it online, I also came across <a href="https://www.uapb.edu/sites/www/Uploads/Assessment/webinar/session%203/13%20Problem%20Solving%20Models.pdf" rel="nofollow">https://www.uapb.edu/sites/www/Uploads/Assessment/webinar/se...</a><p>Hope those help.
A very simple one for most personal problems is just asking "Why" as long as you get to the bottom of things.<p>"I need to solve X now"
"Why?"
"Because it blocks me from finishing project Y"
"Why?"
"Because without it I won't be able to dy Z"
"Why?"
"Oh"
Triz is a Russian engineering problem solving methodology <a href="https://en.wikipedia.org/wiki/TRIZ" rel="nofollow">https://en.wikipedia.org/wiki/TRIZ</a> it's incredibly methodical and basically brute forces creative insight.
Math and logic are pretty good methods. But if you're looking for something more specific then there is something called TRIZ: <a href="https://en.wikipedia.org/wiki/TRIZ" rel="nofollow">https://en.wikipedia.org/wiki/TRIZ</a>.