The main tradeoff is between the quiet and privacy of private offices versus the physical flexibility and interactions with colleagues afforded by more open environments. It appears that the extremes are defensible but the compromise is not. The chairs provided to programmers are often overlooked but are among the most important pieces of equipment in the software engineering environment. Bad chairs contribute to lower back pain which is the most common reason for time loss on the job. Lighting is another often overlooked concern.
Many persons are very sensitive to the interaction of fluorescent lights with computer screens.
Headaches, fatigue, tension, and dizziness can result, with corresponding decreases in productivity. The physical environment should not be overlooked when defining the environment in which people will engage in an activity as physically sedentary but mentally arduous as programming. The software tools that a good software engineering environment should provide go much farther than languages, libraries, and editors. Language interpreters can provide better debugging support and much faster turnaround than compilers. Optimizing compilers can provide better run-time performance that could make the difference between an acceptable product and an unacceptable one.