Today, I think I coined a new work-related term: "multi-blocking". It's sorta like multi-tasking, but different.
At any rate... "Multi-blocking" is the (necessary) habit of running multiple, concurrent projects, but letting "blockers" determine which project goals you're actively working towards at any given time. That is, you work on a project until some dependency stops you, then hop onto the next most pressing project that isn't blocked.
Other interruptions to multi-blocking can be "suddenly critical" things that aren't on your project plans being dumped into your lap. These either get added to the multi-blocking queue or supercede everything in it.
The big down-side of this working-model is when you reach a state where you're 100% blocked. Then, it's total frustration time. If this happens frequently enough, or you're given a superceding task that also blocks, it can cause a total freak-out of frustration and denial of satisfaction.