In the previous installment of this column, I went over some things you can do to increase communication within a team through software. But before we had Wiki and e-mail and ICQ, we had lips and tongues. Even for people who type a hundred words per minute, it's faster and easier to communicate with good old voice. And there are some things you can do to encourage this medium of communication.
We have a poster from Despair.com on the door of our meeting room that says, "Meetings: None Of Us Is As Dumb As All Of Us." Sometimes I think you can learn all you need to know afrbout management from Despair.com and Dilbert. Meetings, when overused, become a bad thing. People are so busy talking that they stop doing. And it's easy for a whole room of people to simultaneously come to the wrong decision. Still, without meetings, we'd all be doing our own thing, without regard to how it affects the project as a whole, and I believe that--despite groupthink--the chances of a group of people coming to a correct decision is greater than a single leader deciding something by fiat.
On a large team, it's worth having the leads meet once a week. Try to keep the meetings short; when they inevitably digress, somebody should pipe up and say, "Can you guys take this offline?" For the individual disciplines, every other week is fine. At the discipline meetings, you can quickly go around the table and let each other know what everybody's working on, just to touch base.
There's nothing wrong with spontaneous meetings. James Zachary, our lead animator, has a rule: three e-mails by any one person in a given e-mail thread means you should meet in person. (I tend to let it go a lot longer than that because I type really fast.)
Feature meetings, where everyone involved in a feature gets together on a regular basis to look at the feature and discuss what still needs to be done, are a great way to keep everyone on the same page about the particular feature/level/whatever. We hold these meeting once a week if some people aren't devoted to the feature full time; but usually everyone is working on the feature in parallel.
If it's a key feature that everybody is depending on, it's sometimes worth a lot more attention. Here, you can have a "standing meeting"--a meeting where nobody is allowed to sit down--of the people involved every day, to keep them updated on the progress.
Finally, every now and then, it's nice to get the whole team together in a big room, show off the game, give a pep talk, and let everyone know where you are. We do this just a few times over the life of the project; some teams do it every month.
If you only have one person per office, it's easy for them to concentrate, but not likely that they will communicate. If you have too many people per office, a lot of communication will happen, but no actual work. Tom DeMarco talks about the importance of "flow" in Peopleware, and there are plenty of anecdotes about how noisy offices are unproductive-if person A asks person B (or even person C) a question while person B is in "flow," person B has supposedly lost n minutes of work to save person A the n seconds it would take to look something up. In my experience, though, I've usually worked in crowded, noisy offices, and I've still somehow managed to ship a lot of games. How could this be? I have a couple of theories:
Although sometimes a person is in flow, more often, the person is waiting for a build to finish or a process to happen. So most of the time when you interrupt them, the cost is low.
It's better to do the right thing slowly than the wrong thing quickly. How's this for an anecdote: person A doesn't ask person B that question but soldiers on instead, and ends up doing the wrong thing, which has to be redone later.
People recognize when they're about to embark on a mission that requires flow; in those times, they put on headphones, or shut the door to their (admittedly shared) office.
Here's our rule of thumb on Team Spidey, the group working on Spider-Man: programmers are two to an office, artists are two-three, designers are three-four. Producers get cubicles in the hallways. Some exceptions are made for expediency. Small offices for the coders (since only two share), big offices for the designers (since there are probably four of them).
Cubicles--particularly cubicles with high walls--are Satan. All the distractions of a giant shared office, very little of the communication benefit.
Almost every project I've worked on has started small and grown massively as time went on. When this happens, it's tempting to take the trickle of new team members and slot them in wherever you can find them. After a while, you'll find you have an office floorplan that is not optimal for communication. Which is why we tend to move people around a few times during the course of a typical project. We've done this so many times now that we've become experts at it: we come up with a layout for who goes where, write a list of the moves that have to be made to get everybody in the right spot, and then make them one by one. In a couple of days, the floorplan has changed. We call this the "Busse Chain" since Chris Busse pioneered the technique.
When you move everybody around, it means people come in contact with new people. You can make a graph of who communicates with whom on your project--every person is a node, and you draw links between the ones who communicate. When you reorganize, this graph will tend to change. New links will form between the nodes, and the old links may weaken but won't go away completely. The amount of communication on the team will go up.
For a while, during the original Spider-Man, we mistakenly decided it would be a good idea to organize the team by the level they were working on rather than their discipline. Although this was a bad idea--designers could no longer ask each other questions on how to use the script language, artists and designers wanted different levels of light in the offices--it did help create a few new links in the communication graph, and was not a total loss.
Let The Hubs Be Hubs
Conventional wisdom says you should put your leads in private offices to help establish the image of authority. This is fine for a certain kind of lead, the sort of lead that spends more time overseeing and less time making critical decisions. There's another kind of lead, frequently without title, who leads simply by being a "hub" or "go-to guy"--the person everybody asks for help. On your office floorplan, it's good to drop these leads right in the middle of things, surrounded by the people who will need their help. Also, this way, they can keep abreast of important decisions that people are making on the fly.
And even your overseer-type leads should have offices near the center of the team, rather than those isolated (but prestigious) corner offices.
You can also do what Peter Akemann, our founder and CTO, does: have the prestigious corner office, and set up a workstation in the hallway right in the middle of everything, and spend most of your time there, in the trenches. You can even work on the game a little, if you make sure to stay off the critical path. Best of both worlds.
It's even better than Management By Walking Around: it's Management By Being Right In The Middle Of Things.
Let It Be
If there's a theme here, it's that communication will happen; all you have to do is remove barriers and let it. One tempting blunder to make is to try and close off lines of communication--I know after seeing a programmer working on someone else's pet project I've been tempted to say, "Don't talk to one of the programmers without going through me first, okay?" But there's nothing wrong with people on the team talking; the problem comes when someone goes off-task onto a low priority item. Just make sure that everyone understands that they're not supposed to switch task unless their lead or the project manager knows about it--and let them talk all they want.