I think a good answer to your question really requires a thorough understanding of your staff and their personal foibles. For instance in general I dont like music playing when I code and im not a morning person. OTOH Ive worked with people whose idea pushing out the code means coming to the office at 6am and cranking the thrash metal. Needless to say neither of us were entirely happy working in close proximity to the other. Nor were either of us as productive as we could have been. I suffered through music I could (mostly) tune out, and he suffered by not being able to listen to music he really liked.
My point is that having the flexibility to accomodate the various personality types out there in one office will probably be your best approach. If you have enviornments were the rowdy types can be grouped together to laugh, shout and work, while at the same time leaving us quieter types a place to go and meditate and concentrate, with some kind of common ground in between for hanging out and brainstorming and drinking beveridges (and maybe smoking depending on what country you are in :) then I think everybody will be able to find their comfort zone and be more productive.
Grouping your coders (by personality type) in pairs in offices with windows and doors like they do often in academia, with a friendly meeting room for the rest seems like a viable approach. Certainly one that I would like to work in.
<code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>