When I took a mgmt role as VP/Engnring at a firm a few years ago, the first thing I did was assess and address morale, which was not good. One of the obvious things was that the staff didn't like the militaristic-layout of desks, being on display to others in the organization who had cozy and private retreats to use.
The CEO freaked out when I told him we were moving to the opposite side of the office floor (we had a full floor in a standard big-city downtown office building). When we moved over, we had our choice of cubes, open areas (not desks, but full-on tables) and quiet corners. Product management hated it because they "had to walk over to see what was going on". It didn't take a lot to figure out the source of frustration with the office environment for the engineering team. After that, I was able to take on the frustrations of the product management group since they could no longer easily impact the engineering team.
As it turned out, the engineering team didn't mind working in any combination of those situations, as long as they could kind of pick-and-choose over time. And, wouldn't you know it, productivity went up -- considerably.
This makes it incredibly easy to put yourself next to the people you're actually working with. It tends to cut down on interruptions (you're not stuck in a room working on feature X while there are other people working on features Y and Z).
Flexibility and freedom are wonderful. Of course, you have to be able to trust people to not abuse it; it might be difficult to implement this in an existing large company, though you might get away with it in a smallish division.
All of your network drops would all be connected to the switches in advance (if network security was a concern, you could do 802.1X controlled VLAN / port-based authentication). In this type of setup, you've now made it "port on a switch = physical location in the building" (within the length of an ethernet cable - say 6-9 feet).
With the right automation tools, when a port goes active, it would be possible to poll the client workstation information connected to it and automatically update directory information with the physical location based on the port that user is connected to (assuming a 1-to-1 user to computer assignment).
I'm interested in something more comprehensive and definitive, and was wondering what Valve's actual solution was.
There's probably a third-party vendor that can take that interface and integrate it with your Exchange / LDAP directory services to update physical location. Given the rather unique structure of Valve, however, I'd be more inclined to think they rolled their own.
And if such a business product doesn't exist, hey, opportunity for you (or someone else).
And RE: using MAC - that's one reason I mentioned 802.1X. If you do EAP you can have client certificates for proof of identity / identity mapping. Then it doesn't matter what the MAC is (which can be spoofed anyways, so it's not trustworthy) / which network interface the machine uses.
It appears from interviews with Valve staff and photos of their office that the desks are mobile, with the office built around a flexible arrangement, including freight elevators. In that case, it's extraordinarily easy to identify where someone is, or at least where their desk is, and whether they are at it.
Now I'm going to toss and turn tonight, waking up at 5am with the organization I was thinking of. :-)
[Edit] It was Olivetti Research. There's a good reason it was difficult to recall.
In my current position I have a desk that's in an area that's a bit too social. In a lot of cases social is good for me. It puts me in water-cooler contact with the folks I need to interact with, and I avoid having to send an e-mail which elicits a reply copying the entire org-chart, turning it into a "who can be more formal and professional" contest.
On the other hand, this desk is my desk. There are many like it, but this one is mine.
That doesn't always work.
Sometimes I need to be able to go somewhere and basically disappear into a productivity hole. There's really nowhere to go to do that. I could check out a conference room, but one person stealing a conference room for a workday isn't really going to go over well.
My ideal situation is one where I have a desk or area that's basically mine, and a lot of little corners and holes that I can move around to as needed.
My small team has just been moved from by the door and the photocopier/printer bay to a position further back by a wall. Calmer, quieter and we are getting on with more stuff. This is an open plan office with ~70 people based in it.
Caveat: I'm a teacher so I spend a lot of time in classrooms anyway
Then they closed some other sites and moved their people in, and by the end of it we were all jammed into a single huge room (big enough that if there was someone standing at the other end, I couldn't see who it was) with so many desks that there was only one way from any one desk to any other - if I wanted to get to the desk of the guy sitting directly in front of me (who spent the day facing me) I had to walk all the way out to the long corridor and then weave in and out of pods of desks to get to him. He was an FPGA designer, as I recall. He ended up "borrowing" some of the industrial noise-suppressing headphones from the catapult lab in the basement so he could block out the noise of everyone working. Because it could take over a minute to walk to the desk of the person ten feet away from you, people phoned a lot or just had conversations over the top of partitions. A particularly inspiring move was the demand that the tall cupboards some people had (six foot tall ones) that broke up the sightline a bit and created shields be replaced with smaller ones. So that they wouldn't break up the sightlines.
I quit that job without having another job to move on to (which, to be honest, I thought was normal and was how I'd always done it, but this time the boss was so surprised he explained that it's not the way people normally do things). I think everyone I worked with there had quit within a year, leaving the lifers to it.
Ironically, I once spent some time at one of the offices in France and it was gorgeous. Floors were basically all enclosed offices with one to three people in them. Proper offices with proper walls and doors; none of this moveable partition stuff. With wine at lunch.
So, what it took me doing was learning more about the product management daily process. It turned out that what drove a lot of the communication needs of the product management team was a desire for status updates because (drum-roll please) they couldn't articulate it sufficiently to the executive team.
We drove toward what information was needed and how timely, then figured out how we in engineering could supply product mgmt with that info while staying in the wheelhouse of our own flow. So, evaluation of things like JIRA (Atlassian), Redmine and other tools to coordinate product management actions with engineering actions. It took a little while, but it required everyone all around to work together in expected ways to lower those frustration barriers.
Many managers consider frequent communication as being good communication, but more often than not its actually very bad. It is a signal that people are not thinking through what they are trying to communicate. Some trivial barriers, such as a door or forcing people to walk over, are often a good thing, because they force people to evaluate what they are communicating and whether it is worth the effort.
I've also found that open plan is great up until you hit the size of your team. One large, open room with only people you work directly with is perfect. Giant hanger-like engineering floors with 100+ people and little dividing the space is a disaster.
A large open plan floor with central, quiet conference rooms anyone can use or phone booths is great. The outer space should be divided into team rooms with their own open layout of 10-15 people or less.
My startup currently shares a large, open-plan loft space with 3 other companies. We each cordoned off one corner of the space with hanging dividers. It's just about perfect.
There are times when I value the (semi) privacy of my cubicle for getting into a focused flow for hours. At this time, I do not want to be interrupted.
At other times, I value being able to take my laptop into a conference room with a bunch of other developers.
Each layout has its own strengths. When interpersonal communication is paramount (i.e. a new project getting started, lots of unknowns, trying to define who's going to do what, etc.) then the conference room approach works.
When I have a well-defined feature to implement, the hunkered-down approach works well.