Tales of Distributed Teamwork
What follows are three stories of actual distributed teams that I have been on. These are my stories and my version of events. Others involved may tell different tales.
It was my first agile project! I didn't know it though. None of us knew what we were doing, but we knew that anything that got in the way of satisfying our customers had to go. We were pretty good. We were so good, in fact, that our corporate entity took control of the project.
The Team
With two developers, our field-support/QA person, and our saleswoman/business expert, this was a small, tight team who enjoyed strong support from our executive sponsor.
The Tools
The developers employed a tactic of working together (we might call it pairing now). We released more than once a week and we all worked directly with our customers daily. We also met daily to discuss sales, installations, features, and bugs.
How it Felt
It felt amazing. We had many happy customers and we worked with them to build a better product.
Our project was a success! I was transferred to a team at headquarters and we were rolling out nationwide.
The Team
I was one of 15 developers on my team. We were one of two teams reporting to the same manager. I was the only remote team member.
The Tools
Once a week, we had a team status meeting. We also used email for anything too urgent to wait for the next meeting. My team lead would occasionally call and give me assignments that never lasted long enough to keep me busy.
How it Felt
I felt lost. I didn't know what I was supposed to do day to day. I didn't have much guidance from my team lead and I was instructed not to work directly with the customers as this was the business analysts' job.
In a desperate attempt to reclaim the past glory of the project, I moved my family across the country. I worked in the office with my team again. This time I wore a suit every day.
The Team
The team didn't change from Act II, but I finally felt like part of it.
The Tools
We had methodology. We had documentation. We knew what everyone was going to be working on a year in advance. The small project I was developing was an anomaly because it hadn't been planned yet. Fortunately, we had meetings to resolve that.
How it Felt
Being part of the team was enough for a while, but eventually I soured on the whole project and left the company for a project were I could release code into production again.
The flag ship project wasn't going to be ready in time, so the troops were rallied. New management brought new energy and ideas to the table. Additional team members and teams were hired. The project could not fail.
The Team
The teams were constantly in flux. There were either one or two co-located teams depending on the week. There were two additional teams in other time zones. Each team had developers and QA, but all the business knowledge was with the original team(s).
The Tools
Each team was supposed to be autonomous, but the reality was that we shared a common codebase, database, and source control repository. We sometimes had daily meetings between the teams, but more often than not, talking to members of the other teams was considered a waste of time.
How it Felt
There was a constant feeling of conflict. Though we all claimed to be headed together toward the same goal, each team was attempting the somehow beat the others. Any time members of the other teams made mistakes, the whole team would be attacked. Feelings were often hurt and apologies were hard-won. We were at war with ourselves.
The company is very small and very successful. The product is interesting and in demand.
The Team
The team is a small group of seasoned veterans. Each person brings unique skills, but all have extensive experience. Everyone enjoys creating code and helping to build the company. Everyone uses his or her strengths to make the team better.
The Tools
We communicate constantly via email, chat, and video conferencing (Skype). We use screen sharing software (TeamViewer) daily. The CI server is constantly notifying everyone of newly completed work. The unit, integration, acceptance, and UI tests allow us to make changes very quickly without fear and with little risk.
How it Feels
The feeling from the first agile project is back. Coming to work is a joy. Releasing software is exciting rather than scary.
I can't answer all those questions, but I can tell you a story...
· · ·
A Tragedy in 3 Acts
Act I
The SceneIt was my first agile project! I didn't know it though. None of us knew what we were doing, but we knew that anything that got in the way of satisfying our customers had to go. We were pretty good. We were so good, in fact, that our corporate entity took control of the project.
The Team
With two developers, our field-support/QA person, and our saleswoman/business expert, this was a small, tight team who enjoyed strong support from our executive sponsor.
The Tools
The developers employed a tactic of working together (we might call it pairing now). We released more than once a week and we all worked directly with our customers daily. We also met daily to discuss sales, installations, features, and bugs.
How it Felt
It felt amazing. We had many happy customers and we worked with them to build a better product.
Act II
The SceneOur project was a success! I was transferred to a team at headquarters and we were rolling out nationwide.
The Team
I was one of 15 developers on my team. We were one of two teams reporting to the same manager. I was the only remote team member.
The Tools
Once a week, we had a team status meeting. We also used email for anything too urgent to wait for the next meeting. My team lead would occasionally call and give me assignments that never lasted long enough to keep me busy.
How it Felt
I felt lost. I didn't know what I was supposed to do day to day. I didn't have much guidance from my team lead and I was instructed not to work directly with the customers as this was the business analysts' job.
Act III
The SceneIn a desperate attempt to reclaim the past glory of the project, I moved my family across the country. I worked in the office with my team again. This time I wore a suit every day.
The Team
The team didn't change from Act II, but I finally felt like part of it.
The Tools
We had methodology. We had documentation. We knew what everyone was going to be working on a year in advance. The small project I was developing was an anomaly because it hadn't been planned yet. Fortunately, we had meetings to resolve that.
How it Felt
Being part of the team was enough for a while, but eventually I soured on the whole project and left the company for a project were I could release code into production again.
· · ·
A Land War in Asia
The SceneThe flag ship project wasn't going to be ready in time, so the troops were rallied. New management brought new energy and ideas to the table. Additional team members and teams were hired. The project could not fail.
The Team
The teams were constantly in flux. There were either one or two co-located teams depending on the week. There were two additional teams in other time zones. Each team had developers and QA, but all the business knowledge was with the original team(s).
The Tools
Each team was supposed to be autonomous, but the reality was that we shared a common codebase, database, and source control repository. We sometimes had daily meetings between the teams, but more often than not, talking to members of the other teams was considered a waste of time.
How it Felt
There was a constant feeling of conflict. Though we all claimed to be headed together toward the same goal, each team was attempting the somehow beat the others. Any time members of the other teams made mistakes, the whole team would be attacked. Feelings were often hurt and apologies were hard-won. We were at war with ourselves.
· · ·
A Tall Ship...
The SceneThe company is very small and very successful. The product is interesting and in demand.
The Team
The team is a small group of seasoned veterans. Each person brings unique skills, but all have extensive experience. Everyone enjoys creating code and helping to build the company. Everyone uses his or her strengths to make the team better.
The Tools
We communicate constantly via email, chat, and video conferencing (Skype). We use screen sharing software (TeamViewer) daily. The CI server is constantly notifying everyone of newly completed work. The unit, integration, acceptance, and UI tests allow us to make changes very quickly without fear and with little risk.
How it Feels
The feeling from the first agile project is back. Coming to work is a joy. Releasing software is exciting rather than scary.
· · ·
The Moral of the Story
Was distributing the teams the primary cause the sad endings for the first two tales? Can a distributed team be productive? Can a distributed group of people form a cohesive team? Would co-location have solved any of the problems in these stories? Do tools make a difference? Is it the team members who make or break the team (whether distributed or not)? Is is the project that matters most? Would you work on a distributed team?I can't answer all those questions, but I can tell you a story...
I can't wait to find a Tall Ship, but I'm VERY happy to be out of Asia. ;)
ReplyDelete