Offices isolate the members of what should be a reasonably social job (software development) from one another, so that's no good either. who wants to work in a rabbit warren?
open-plan has problems too. some people need to have spaces where they can be approached discreetly. that's why many open-plan spaces still have some separated spaces. it's nothing to do with elitism. i have an isolated and private desk space, in a corner with a bookshelf between me and everyone else. i need this because at least half of my day is spent on the phone to clients, and even if the constant sound of my voice didn't drive my staff mad, the sound of my staff would send my clients away. my staff also need to be able to approach me with personal matters -- if not in complete privacy then at least with discretion.
if I have a developer complaining of a lack of productivity then i suggest that they work from home for a while. unfortunately, telecommuting comes with it's own set of problems, and if you let someone telecommute for too long then my experience has been that they start to disconnect from the other people in the office and become, effectively, an outsider (or worse: kind of paranoid). this situation is clearly not in anyone's interest, so my policy is that telecommuting be limited to distinct periods for specific jobs, and not be a regular way of work.
Speaking as one of "them", who was formerly one of "you", I think that offices are overrated. I've had them and I prefer the space we now share to any office I've ever had in the past.