A collaboration by David Grabel and Mario Moreira
You’ve just been given a plum assignment, heading up a major
new application development project. Congratulations! Your boss just got off
the phone with a large off-shore contracting firm. At the labor prices they are quoting, we’ll
save a fortune and come in under budget. He knows that you’ve been
experimenting with virtual teams; it’s time to kick this into high gear and
really cut our labor costs. DON’T DO IT!
By the time you factor in the extra costs for travel, the high costs of the
locally based support personnel (project managers, architects, etc.), the
increased systems and telecommunications cost, the miscommunication caused by
lack of face-to-face conversations, and the rewrites this will require, the
cost savings will evaporate. They will never complete it on time and the missed
revenue alone will eat up all of your savings.
There are good reasons to rely on virtual teams. Cost
savings is not one of them. Real world constraints can make virtual teams
unavoidable. Your company might have a liberal “work from home” policy. Your
development centers could be scattered about a large campus, across the country
or around the world. You may have a strong relationship with an off-shore
development company that has delivered high quality software on time in the
past. You might be partnering with a company from another state. All virtual
teams are distributed, whether it’s a single member working from home or dozens
of teams scattered around the world. Co-located teams will almost always be
more efficient and effective than virtual or distributed teams. When virtual
teams are unavoidable, the key to success is to Be Agile. If you follow the
agile values and principles you can successfully deliver valuable working
software, quickly, with high quality, even with virtual teams. Let us explore how the Agile values and
principles can be put into action to help with virtual teams.
- Value people and interactions over processes and tools by enabling virtual and physical face-to-face conversations. If team members are in different time zones, encourage flexible hours and provide high quality video conferences for stand-ups and other ceremonies. Supplement the teams with collaboration tools. Bring the teams together periodically to learn each other’s business contexts, cultures, and individual needs. Virtual teams necessarily need to rely more on electronic tools like agile project managers and collaboration software. These tools help, but virtual teams need to nurture the interpersonal relationships that allow trust to develop. Trust within and across teams is vital to agile success.
- Value working software over comprehensive documentation by writing stories about the users experience and by delivering small increments quickly based on those stories. The traditional wisdom has been that virtual teams require very detailed requirements and design documents. These heavyweight artifacts don’t exist on agile projects. Very detailed requirements create the illusion of completeness and accuracy. All those details about what they system shall do obscure the problems we are trying to solve
- Value customer collaboration over contract negotiations by scheduling regular demos with customers to get their feedback and deepen the understanding of the business problems to be solved. This is more important than checking the boxes on a requirements document. This is a case where virtual meeting tools can bring remote teams and customers together even when they are physically apart.
The agile values and principles are the best guiding lights
available today to make virtual teams work. If you have to use virtual teams,
please consider using agile practices and staying true to the values and
principles.