Assume that a company runs several projects simultaneously. When a project reaches certain state (is completed, beta is shipped, etc) some people move to the other projects, then to the other, ad infinitum.
It could be a good idea to assign rooms to specific projects, and make people move there as soon as they're added to the project as well. Some software methodologies, for example, Scrum and other agile ones, explicitly declare that having all programmers in the same room is a boon, and benefits development.
However, a group of programmers that spends their work time in a common room for years creates a constructive and strong relationship between its members. The programmers inside it always know whom to ask for an advice about a specific technology, and the closeness makes people helpful and trusting. An advantage of a closer social interaction could also be taken. Should such an opportunity be missed just to arrange several peers for a specific short-term project?
In other words, how should we organize moving programmers between rooms?
Note: The best option, perhaps, is keeping each programmer in a separate office. But let's assume that the office under consideration is just not big enough for that.