I like problem decomposition a lot as a discrete step. There's a huge tendency to go, I have problem A, let's just solve with it B. Many times the nuance of why A occurred, whether it's a symptom of something, and what are the different subproblems that comprise A are skipped.
This often causes solutions which don't actually solve the problem, or just mask it. That extra effort up front, leads to the proper solution, and as you said, very tactical fixes instead of huge unnecessary solutions.
Context size is huge, as well as the ability to context switch effectively. It can mean the difference between solving something in a day or weeks.