I went to an executive seminar on agile methodology two weeks ago, and an audience member asked about running agile with distributed and outsourced teams. The panel members nodded their heads silently. Then the guy on the left said something like “We try to avoid it”, and the guy next to him said something like “we get better results when we can meet every day”, and the consultant next in line, a woman said something like “we recommend against it.” They looked stumped, and frankly, defeated. It was a very unproductive response to someone that clearly has a distributed team.
Then last weekend I was talking to a guy from Rally, the vendor of agile project planning software, and I gave him my distributed / inspired-by-open-source pitch. His response was short: “We think it's important for the team to meet every day.”
These guys are living in a reality-free zone. They are like ostriches with their heads in the sand. Almost everyone that I talk to has a distributed team. When I first started managing distributed teams ten years ago, it was a little unusual, but a variety of trends make it the new normal. Companies of any size have always had multiple offices, with cross-function and cross-location teams. Then there was outsourcing. The outsourcers tried to control the amount of dispersal by centralizing their staff in big offices, but the clients kept moving around and blending teams. Then people like me got wise about finding good talent and started deliberately recruiting global teams. The escalating costs of commuting, both time and money, left more people working at home more of the time. Finally, there is random motion. People move. Their husbands and wives move. Their company offices move away from them. Almost every team I see that is more than a few years old has some long-time team members that are no longer co-located. Look around you and you will see what I mean.
So, we all have distributed teams. This attitude that distributed agile teams are by definition less productive is unhelpful and defeatist. It's bad propaganda that is starting to irritate me. A MUCH better and more useful approach would be to admit that distributed teams are here to stay and figure out how to make them at least as productive as co-located teams.
I say at least as productive, because although a bunch of guys in a room have some communication advantages over a bunch of guys scattered around the Internet, distributed teams also have some advantages. You can put them together faster, and you can get better talent.
We have taken a systematic approach to boosting distributed team productivity.
The first thing we did is study the process, starting with the amazing example of productive open source teams, and absorbing low-overhead agile methodologies like Scrum. I have a presentation that I give which highlights some of the differences in our process and approach, compared with more traditional teams, and I will post that here in the next week or so.
The second thing that we did is invest in tools like Assembla.com. Our teams get a lot of use from the tools on Assembla.com, the ticketing, the workstream, and the alerts. We invest in build processes, staging servers, and continuous integration, which we also hope to bundle with Assembla workspaces. We also use a lot of Skype chat. I'm going to post some videos and some other examples when I get time.
We're about to take a third step and start having meetings. I'm all about speed, and meetings, which take a lot of time to arrange and travel to, are an obstacle to speed. But I'm not dogmatic. If we need meetings to hash out architecture, then we should streamline the process of putting together a team meeting. As an experiment, I am on my way to Istanbul for our first Assembla team meeting.