- taking good care of your subconscious thought processes: adequate sleep, traversal of real space (i.e. walks/runs), evaluation of physical & emotional state and the identification of dismissed intra/inter-personal issues, and amounts of time each day /not/ spent on the problem
- working on other challenging problems also, as there may be some cross-pollination of ideas
- exposure to extremely creative ideas in completely different (& often consumptive) domains; novels, movies, tv shows, art
- time devoted to learning from peers, and creating with them, also. finding those with parallel and antiparallel value systems may widen your horizon of modes of attack
- knowing when it's best to pause your work and resume it in the future, or when to drop your current approach
- great documentation skills, as your brain will forget the assumptions you relied upon, or the method you used to reach some milestone/write some code once you re-read it in a compressed format
https://en.wikipedia.org/wiki/TRIZ
Also, have a look at Polya's "How to solve it":
1) Identify hard problems — they are pivotal in unlocking the next level of progress. If unresolved, they all but ensure the status quo.
2) Their solution requires System 2 thinking, autopilot interruption, lack of distraction and imposition of both physical and time constraints.