I have just finished reading Peopleware (DeMarco, Lister) and have researched on Extreme Programming (XP) a little before. As I see it now, the two approaches are almost exclusive to each other.
Peopleware suggests to isolate programmers from any disturbance and sets priority on uninterrupted work in order to help programmers to achieve flow. XP on the other hand proposes to ensure as much communication as possible, even suggesting for programmers to "sit together", code in pairs and generally work in the same room (generating a lot of noise).
Are those two competing schools of thought, is perhaps one of them proven right/wrong or is there an effective compromise? I can see the points both sides make, but can't see any reasonable compromise.
I am very new to studying software development management, so it's possible that I just misunderstood something. All comments welcome.
As an added mini-question, as a programmer, which would you find more productive?