I have worked in a variety of environments wanted to share my opinions and see what others thought on the subject of ideal office space layout. Once our lease is up (in a few years) I am thinking of building out our space to be better suited for a software development company. Our current setup is an open layout and we have four employees.
Which layout do you prefer and why? In your experience has it been a crucial factor in attracting and retaining employees?
Private Offices
I know Joel swears by his "an office for every developer" mantra and says that it is his competitive advantage. I have heard others echoing that sentiment on this site.
Personal offices are quiet, allow getting in the zone and staying in the zone with fewer interruptions and allow full privacy for personal calls. On the other hand, working in an office isolates you from your team and reduces overall communication. They can be also be an inefficient use of space and quite expensive to build out especially if done right (e.g. windows for every office).
Shared Office
A compromise with 2 or 3 people sharing the same office space. I think this is the inevitable outcome of the Private Offices option above as the company grows (I think even Joel herds together interns as well as IT/support but correct me if I am wrong). This can be good or can be pure hell depending on the size of the office and who you are sharing it with.
Fully open layout
This setup is preferred by the XP school of thought. Shared space facilitates the dissemination of crucial information in a more timely manner and is the cheaper way to go for companies that are self-funded and are on a tight budget.
I think the major issue with this type of layout is the fact that it does not scale for companies larger than 15 people. At some point noise and interruptions becomes a serious issue as does the lack of privacy. Perhaps that can be solved by partially partitioning the space but I have not seen that done successfully.
Open Layout with Private Offices
A company I worked at had a large open area where every one worked but also had a number of offices (fewer than the number of employees but a decent number). You could use an office if you needed to have a meeting, make a personal code or wanted some alone time with your code.
I think a design like that can work but there is a definite issue of a "move cost" every time you need to relocate your work area (I have books, notes, my favorite keyboard, etc). Another issue is the fact that this setup requires a lot of real estate which makes it fairly expensive.
Cubicles
I figure I will bring this option up just in case someone here actually likes working in one of these things (I don't). They can be a very efficient use of space and relatively inexpensive.