Oh, I'm not arguing against communication. Design discussions are vital. I'm not saying we don't need to know what others are doing. What I am saying is that the actual production of code must needs be a solitary process, that it cannot possibly work while engaged in discussion.
Hard for me to not come back to pair programming, which I had to do once and which eleven years later I went into counseling to recover from it. Pair programming is not only violently absurd, it's psychologically harmful, on the level of prolonged torture.
There's not much good to say about TDD but one of the most damning ideas its aficionados promote is that developers should have sole responsibility for testing their own work. This is straitjacket material; anyone with more than a month or two of experience should know that we will exhibit the same blind spots in writing the tests as we had while writing the code. A second pair of eyes, preferably a dedicated tester, is essential.
When I worked in offices I usually spent some time every day in my tester's office.
But he didn't sit hip to hip with me when I was writing code.