The biggest problem for me are distractions that slow down my progress. Too often instead of pushing the main task forward I switch to the other task/check my email/etc. It doesn't mean I'm procrastinating (though sometimes I do). It's more like I multitask too much.
I'm trying to use the pomodoro technique for this, which I really like so far. It turns out it's not a big problem for to focus on a single task for 25 minutes. But doing so I realized an important source of my distractions: wait times. I'm a software engineer and sometimes (some days its often) I need to wait for several minutes for some processes to finish (e.g. compiling code, deploying to production, etc.) While I'm trying hard to eliminate those, I don't think I can completely do that.
These wait periods are usually when I switch to another task because I don't like spending time doing nothing. What do you think I should do during these moments? Should I stare blankly at my monitor? Any ideas?