The case for collocation

Monday, May 19, 2008 9:24:43 AM (Mountain Daylight Time, UTC-06:00)

image I've been thinking a lot about the collocation of agile development teams (or any development team for that matter).  Some people argue that collocated team members are essential to successful software development while others argue that it doesn't make any difference.  The more I think about it, and the more we operate with geographically dispersed teams, the more I'm starting to believe that collocation matters. 

Currently, our team is spread out between Ft. Collins, CO, and Orlando and Jacksonville, FL.  While things have not gone terribly wrong having dispersed team members, I have noticed a difference in communications.  The difference is that in the Ft. Collins office (and I'm sure in Orlando and Jacksonville), there is a lot of informal communication that occurs amongst collocated team members.  You know, the kind of discussions that happen spontaneously.  When these happen, a lot of project information gets passed between team members that doesn't get transmitted to other remote team members.  There is no malicious intent to not communicate.  It's just that the impromptu discussions don't usually inspire anyone to dial in to a teleconference number and all that...precisely because they are impromptu. 

On the flip side, the scheduled daily stand ups, planning meetings and reviews all happen when they're supposed to and everyone communicates on those calls.  However, I have found that something is lacking on those calls as well.  When a team is all together in a room, there is definitely a different dynamic than when there are "voices" on the phone.   Body language plays a huge role in communications and tells a lot more than than what people are saying.  However, what I find really absent is the sense of team and camaraderie that exists in a collocated team.  There are many "physical" exercises  that we used to do for planning meetings and retrospectives that have been lost due to collocation.  I found those really useful and without them, I think our planning and retrospectives are less effective than they could be.  Maybe we just need to adapt those exercises to be more amenable to the space between our team members.

All in all though, I think I would definitely be in the camp of folks who believe that collocation really does matter.  It build a better sense of team, increases both verbal and non-verbal communications, and really fosters a more collaborative work environment.

Monday, May 19, 2008 4:02:24 PM (Mountain Daylight Time, UTC-06:00)
Via Agile Commons: I've been working on a distributed team of about 30 developers in about 4-5 locations on 2 continents. We have experienced several of the things you mentioned. One thing our team does to address some of your issues (team camaraderie and good planning) is to get everyone together in one hotel for planning every 4 months. Our director is a firm believer that if you get everyone together for planning (and serious drinking) it builds relationships that last and improve communication. Yes, it is very costly but then again what is the cost of 30 developers not working at peak velocity? When you know the names of your co-workers children or the last sight-seeing trip they went on it’s a little easier to think twice before ranting that those idiots in such-and-such office don’t have a clue. This may sound childish and unprofessional but I’ve seen it happen a lot in distributed teams that don’t get face-to-face on a regular basis.
Jack Crews
Monday, May 19, 2008 4:09:53 PM (Mountain Daylight Time, UTC-06:00)
From Agile Software Development: You have discussed the two extremes: having everyone collocated vs. everyone in totally different physical locations. How about having team members in the same office but separated by office walls or even floors of buildings? Is getting together periodically throughout the day enough?

I prefer the richness of having everyone in the same physical area, but would conceed it can work if team members frequently congregate and are willing to get up to talk. It just adds another barrier.
Monday, May 19, 2008 4:10:37 PM (Mountain Daylight Time, UTC-06:00)
Actually that's a great point Mike. Here in Ft. Collins, we're building a new office. Our team is currently in one big room and we decided in the new space to do the same thing. At a previous company, our team was all in different offices. It cut down a ton on informal communications. Here in our big room, we have a great, open, communications style that doesn't interfere with our work but actually enhances it. When we get into our new space later this month, we'll post some pictures of it. We designed it to be completely open and collaborative. No offices...just little Scrum rooms for planning/stand-ups, an escape pod (for private calls and ejects from the daily grind), a conference room, and a huge open development lab where we all sit...that's it. We'll keep you all updated on how it goes.
Tuesday, May 20, 2008 8:18:52 AM (Mountain Daylight Time, UTC-06:00)
Via Agile Software Development: I think I agree with Chris on this one. We have our main office in The Netherlands, and a subsidiary office in Ukraine. Communication is always a challenge, and I would advise against cross-border teams. When both offices are working on the same project, we try to split the project up in two tracks with two subteams, one in each location. Communication is needed between the leaders, but a daily cross-country standup wouldn't work that well.
Wednesday, May 21, 2008 8:43:09 PM (Mountain Daylight Time, UTC-06:00)
Via Dzone.com: Not much you can do about spontaneous communcation between remote teams. But I wonder the extent to which technology can make up for the loss of body language and other deficiencies. Tools like video conferencing and collaborative software that allow real-time code editing among developers. Anyone have experience with this?
Frank Costanza
Wednesday, May 21, 2008 8:44:17 PM (Mountain Daylight Time, UTC-06:00)
Via Dzone.com: Yes, we've used video conferencing along with doing real-time code refactoring between developers. Video conferencing wasn't too successful, as the TV images weren't that clear and there were some audio delays. We have have success using live meetings and webex to conduct meetings. Nothing beats being collacted though! Collaboration is just more efficient!
Cindy5004
Wednesday, May 21, 2008 8:45:14 PM (Mountain Daylight Time, UTC-06:00)
Via Dzone.com: And don't limit this collaction to just the developers on the team (you said development team, I'd expand this to "project team"). Having immediate, face-to-face access with project managers, analysts, architects, designers, testers, etc. also has significant benefits. There are a number of reasons that I've found collaction to be the best working environment, some of which you've mentioned already:

* Teams that spend time together trust each other and know the strengths and weaknesses of each other. This makes them open to asking questions and they know the right people to ask.

* Even with technology as an enabler of remote communication, it is often less effective and efficient. Emails and chats are actually very ineffective from a stand-point of getting something done "right now" because for most people typing is much less efficient than, say talking on the phone or face-to-face. Unfortunately, most developers prefer to be "heads down" and isolated. And some rely on chat so much these days that their phone has inches of dust lying on it. Arguably there is still the need for email and other offline tools when resources aren't available "right now".

* There is so much implicit knowledge on a project that having a "physically close" team helps make that knowledge explicit. For example: if all the developers for an application or component are in the same room, a conversation between two people that can be overheard by others, even if they are not actively participating, helps expand the collective knowledge.

I'm not a big fan of "spec-it-up-and-throw-it-over-the-wall" type projects - some people assume that if it isn't written down they can take liberties. Instead I try to instill in my team that communication is half the project effort and that "good people ask questions". Asking questions helps make project knowledge explicit and that is the goal of any type of communication. Physical separation (and don't forget temporal separation!) simply impedes good communication.
kfry
Wednesday, May 21, 2008 8:45:53 PM (Mountain Daylight Time, UTC-06:00)
Via Dzone.com: I speculate that the worst case is where you have several groups at different sites. Then information is shared within each location, but the communication between sites may be lacking. On the other hand if everyone is dispersed, then electronic communication is the only method available and once you are sending a message it is easy to add extra recipients.

So I would say that having everyone in the same place works best, followed by everyone dispersed, and multiple groups may be the worst case.
Mark Thornton
Wednesday, May 21, 2008 8:59:17 PM (Mountain Daylight Time, UTC-06:00)
Via Agile Software Development: I am very much interested in this topic of collocation. The reason for my interest is that in a few months I will be involved in an Agile development project where the technician and the business analyst will be located in India while the project manager and product manager (myself) are located in Orlando. I am very worried as to how Agile can be applied when the two key resources (who are not quite that familiar with our products) are 9 hours away. Prior to the kick off we are planning on writting some procedural documents (which I believe is an anti-Agile step) and then on-going we will hold our daily 'meeting' by phone. Being new to Agile in conjunction with the offshore environment I worry that about the output from the project. Any suggestions would be appreciated.
Agile Vlad
Thursday, May 22, 2008 3:28:11 PM (Mountain Daylight Time, UTC-06:00)
Via Agile Commons: I stand firm in my belief that if Agile is going to stick around we, as the practitioners must find a way to make it work in distributed teams. Agile has the potential to make sweeping impacts in services, support, maintenance… the list goes on and on. However traditionally these types of non-product development shops ARE distributed. I suppose if you are an in-house product development team co-lo is the way to go… but in my case we are a services organization that does R&D… no product to speak of and our roadmap is a moving target. With that said it is a necessity to remain agile and saleable with our teams. As needs and requirements change as does the team… keeping all of that development horsepower under one roof would be quite costly.
Chris Johnson
Friday, May 23, 2008 7:18:24 AM (Mountain Daylight Time, UTC-06:00)
Via Dzone.com: The cost here is huge and is often overlooked, e.g. when offshoring, centralizing employees by role (e.g. QA or product management) rather than by team, etc.

This does go well beyond developers. Daily, informal collaboration between QA, developers and product managers is part and parcel of good, iterative development -- whether you call it agile or something else. Having everyone scattered to the four winds kills this 90% of the time, even if you have standups, teleconferences, etc. The 10% is when folk actually use something like IM to bounce ideas off one another, etc, as they happen all day long [if they have to wait too long, e.g. until the next standup the ideas are just be lost] -- but that falls flat when folk are in utterly non-overlapping timezones (e.g. India and the US).
Jesse Holle
Comments are closed.