An algorithm for working on hard problems is to shake and pull. Complex systems and problems are like a tangled up wire that by shaking (introducing randomness to open new paths) and pulling (stretching the system so there are no tangles) you can solve the problem quickly. If you were to pull without shaking you would tighten the knots which is like going depth first. If you were to only shake you wouldn’t actually try any new solutions.
Read The Only Algorithm for Hard Problems: Shake and Pull Gently.
See also:
- The author also likens this algorithm to “simulated annealing” where you are heating (shaking) and cooling slowly (pulling) which is also like product development: the path from concept to product is an annealing process