I'm going to propose a somewhat radical solution: secretaries (or administrative assistants if you prefer).
Seriously, give developers and engineers secretaries/assistants. Even one assistant per 3-5 engineers would be a huge benefit. A good secretary will run interference with people who are coming to provide a distraction, and in many cases will probably be able to answer any questions necessary without bothering the engineer.
It could also provide a good entry level position for someone to get some experience and move up to coding.
goodness, the social signals implication that sends would never fly in any company I've ever worked at. You're elevating the developers to the status of "rock stars!". Now, many companies say they want rock star developers, they just don't want to treat them as such.
Seriously, give developers and engineers secretaries/assistants. Even one assistant per 3-5 engineers would be a huge benefit. A good secretary will run interference with people who are coming to provide a distraction, and in many cases will probably be able to answer any questions necessary without bothering the engineer.
It could also provide a good entry level position for someone to get some experience and move up to coding.