A favorite of mine: assume a sub-problem has a solution (even though it doesn't), and solve everything else assuming that solution holds.
I find that after I do that, once I have a solution for everything else, a less-general solution to the sub-problem is often sufficient to keep the global solution valid.
I wonder what a specific example of this approach would be.
I'm intrigued and would appreciate further examples/explanations too.
It's an interesting approach.
To try to come up with an example, let's say we set as our goal to completely automate a process X, which consists of 10 subprocesses. Let's say we fairly quickly automated steps 1-9, but the 10th is tricky.
But we now realize the 10th step was only really necessary for certain edge cases, which we now realize we are fine not handling. So we "if" them away and now have a process that is 100% automated, even though it is different from what we originally wanted to achieve.