That's why, as a team (and with support from our Director and Vice President), we've instituted "Developer Quiet Hours". Two days a week (Tuesday, and Thursday) are days when we try not to have any meetings. Of course, we have a stand up every day, so that's sprinkled in. And we have the occasional staff meeting, which may fall on one of those days. But otherwise, developers don't go to meetings on Tuesdays and Thursdays.
It also helps that the developers don't have a phone. None of us. It's amazing. If a product owner needs something done, they can email us, or go through Product Development. It means that we get a solid 5-8 hours (depending on what time we come in) of heads down coding.
We're expected to close email for most of the day. We check it a couple of times, with the product owners having the expectation that we won't be getting back to them immediately. If it's urgent, they'll find us. It helps that we're not directly responsible for servers and the software that run them.
We use HipChat so that we can still ask questions without directly disturbing each other. Group chat is an amazing thing, and HipChat is well on it's way to being one of my favorites (I still prefer IRC, but that's another story).
What are your thoughts? Tell me on Twitter.