I prefer an office, but for those without I think there should at least be "quiet time" or consideration given to where different types of workers are located.
This helps avoid the "talkers vs. typists" problem--don't mix the two. For example, don't put me near the support guy who has loud and frequent speakerphone discussions about resetting passwords, his personal doctor visits, etc. ;)
The 'we have no heirachy - the owner doesn't have an a office' open cubical farm where you are stuck between chatty secretaries and shouting salesmen.
And the private offices where one office = one person = one module and the only way to talk to somebody about 'their' part was a request up the management chain.
Best was a 'programmers only' room with one huge desk for three programmers on the same project.
This helps avoid the "talkers vs. typists" problem--don't mix the two. For example, don't put me near the support guy who has loud and frequent speakerphone discussions about resetting passwords, his personal doctor visits, etc. ;)