I've been working as a software developer for some years, and one of the situations I've consistently run into is this: I will be given an assignment, will work on the assignment and/or research its requirements more deeply, and will ultimately end up at a point where I need to ask my boss how he/she wants something done. Or even if the question isn't for further orders, if you will, it may be for credentials to a VM, a software license for a new IDE, critical background information about something other people have discussed, or anything else that I really need to ask him/her about.
However it will often take some time before I get a response, and I often end up eventually even trying to ask a second time. At that point, I try to keep my head down and not be pushy or annoying about it, but am still a little bit nervous about it.
The issue is that, when I run into something like this, by the time I find out about it, it is often either barring or coming close to barring the way forward. I either can't progress or can only progress very little on the given assignment until the response is given. At this point, due to a delay in hearing back, I'm kind of stalled in terms of productivity. When this happens, it is generally very difficult - and possibly even disallowed - to try to switch to a completely different assignment in the meantime.
What is the best way to handle this? Again, it delays productivity, but it's hard to switch to something else, and by the time I see the need for this information, it's too late to ask before it becomes a delay. (One example is when I've been working with the code for a certain amount of time, and through investigating it in depth, have noticed a particular case that was completely unexpected and isn't clearly defined in terms of the requirements.) It is not as simple as just reading the requirements carefully.
The objective is to be productive. What's the best way to handle and even hopefully avoid these situations?