Problem Slicing is the key; Kent Beck wrote an article about "Master Programming" and I'd like to take his advice whenever I encounter a problem in programming, but also in real life (e.g. coordinating tasks in work or private life):
https://www.reddit.com/r/programming/comments/4n3s7c/kent_be...
> Slicing. Take a big project, cut it into thin slices, and rearrange the slices to suit your context. I can always slice projects finer and I can always find new permutations of the slices that meet different needs.