It's extremely distracting for developers to be sidetracked by random, non-urgent customer or business problems all day. Do you use a ticketing system, have a rotating "bother this guy" schedule, create some sort of "I'm busy" signal that the office respects, or something else?
Do other developers/product folks like or dislike when users submit bugs/requests as user stories or problem statements instead of just writing in the typical conversational style?