Skip to main content

Distributed Agile: It’s the People, Stupid, er, Honored Colleague

Let's say you're provisioning a new project team with members on multiple continents.  As you look for ways to do your work quicker, better, and cheaper, you may ask yourself: “Can we approach this project in an "agile" manner?” But you may have just read Martin Fowler’s excellent description of the ideal team room, and detected that the prototypical agile workspace isn’t big enough to span multiple time zones.

Should you give up your dream of using your new project to launch the agile revolution at your firm?  Well, yes and no.  A distributed agile team will not gain all of the benefits of Alistair Cockburn’s “osmotic communication.”  The team members in Bosnia won't be overhearing the Toronto office's discussions and benefiting from them.  On the other hand, you may still prefer for your distributed team to be agile rather than not.  You don't want to kill something good while waiting for the perfect.  And you may be acting on a mandate from above which gives you no choice, “self-governance” be damned.  So here’s what you do.

Years (or even millennia, if you follow Mary Poppendieck) of shared tribal experience with agile techniques suggest that a distributed project, like its collocated counterpart, will succeed or fail directly in proportion to the effectiveness with which the people on the project team work together.  Lilia Efemova has a wonderful discussion about the need for communication and common ground on project teams.  If you can build team trust and understanding across multiple locations, you can get the team to do things like “scrum of scrums” and whatnot in a heartbeat.  The reverse is not always true. 

Start with four basics:

·      Start with a careful vocabulary and go from thereDo not refer to anyone as “offshore.”  Whose shore are you talking about?   For best team morale and velocity, the premise must be that team members in all locations are equal in status, and each person is especially valued for his or her unique cultural background, project approach, experience, and personality.

·      Don’t even think of starting a distributed agile project without a shared online information radiator, preferably one that can be electronically projected onto a wall or smart board or the like for all to view at each site.  Agile zealots are quick to say that you should start with “post-its and pens,” and consider “the tool to be secondary.”  It is not.  Although a tool can’t create a high-performing environment for everyone on the distributed team, lack of a tool will certainly create miscommunications and lack of trust quickly and painfully

If you have no tool, you will end up with a power imbalance across teams where one team has control of the radiator and the other teams don’t.  Please don’t do this.  Here's a ranking of the options:

o   Looking for trouble:  one physical lo-tech radiator kept up to date by local scrum master and distributed by digital photo to other sites.
o   Better in theory than in practice:  physical lo-tech radiator kept up to date by teams and synched by each scrum master through digital photos and the like.
o   Good:  shared online tool which everyone updates centrally, and which you project at local standups.
o   Awesome:  shared online tool which everyone can update and which is always projected on a wall or smart board at all sites.

·      Start the project off with an in person meeting for the whole team.  Try for two weeks.  Figure out the most cost-effective location for the meeting, and bring everyone there, and have your project inception meeting.  Make people share rooms.  Put people up at team members’ houses.  Get the team together in person to get to know each other.  Team members will do far better during subsequent virtual contact via email, text, camera and phone, because they’ve already gotten to know each other’s quirks in person.  After this, send single project team members to different sites on occasion to reinforce the in person connections.

During the project itself you may want to experiment with an always-on reciprocal webcam arrangement or a shared virtual world within which each person represents him or herself with an avatar sitting in a shared room, to do better than you can do with phone calls and texts.  But regardless of what communications techniques you put in place for the duration of the project, it must be planted and periodically fertilized with in-person meetings. 

·      Team build. Even if you are unable to get your team together in person, allot some time during project initiation to creating common ground and a basis for communication on the team.  I personally eschew events involving trust falls, ropes courses, and anything with a blindfold.  What I would strongly recommend instead is that you start your project inception by cheerfully but efficiently forcing everyone on the team to understand each other’s professional persona (not their fear of heights).  Have everyone take the Myers-Briggs test, the interesting MAPP assessment, or the currently popular StrengthsFinder test, and discuss the results together.  (You choose the tool—these are just three I know about!)  Do not even think of having trust falls.

Sometimes in the thick of things, I think we lose track of the first premise of the agile manifesto—this isn’t just a set of techniques.  We win by focusing on individuals and interactions, and we just have to work harder on those interactions when a team is distributed.

Popular posts from this blog

A Corporate Agile 10-point Checklist

I'm pretty sure my few remaining friends in the "small, collocated team agile" community are going to desert me after this, but I actually have a checklist of 10 things to think about if you're a product owner at a big company thinking of trying out some agile today.  Some of these might even apply to you if you're in a smaller place.  So at the risk of inciting an anti-checklist riot (I'm sorry, Pez!), I am putting this out there in case it is helpful to someone else.

Here's what you should think about:

1.Your staffing pattern.  A full agile project requires that you have the full team engaged for the whole duration of the project at the right ratios.  So as you provision the project, check to see whether you can arrange this staffing pattern.  If not, you will encounter risks because of missing people.  Concretely it means that:
a.You need your user experience people (if applicable) and your analysts at the beginning of the project, as always, b…

Requirements Traceability in Agile Software Development

One of the grim proving grounds for the would-be agile business analyst (henceforth "WBABA")  is the "traceability conversation."  Eventually, you will have to have one.  You may have seen one already.  If you haven't, you may want to half-avert your eyes as you read further.  It gets a little brutal.  But if you close them all the way, you can't read.
Dialogue:
WBABA:   ...so in summary, we complete analysis on each story card, and then we support the developers as they build it that same iteration!Corporate Standards Guy:  but how do you do traceability in agile?  You have to have traceability.  It's broadly recognized as an important factor in building rigorous software systems. These software systems permeate our society and we must entrust them with lives of everyday people on a daily basis. [The last two sentences are an actual quotation from the Center of Excellence for Software Traceability website!] WBABA: [cowed silence]Corporate Standards …

The Agile Business Case

Many agile teams have never seen a business case, ever, and they may even be proud of it.

Our mantra is that we deliver "business value," not just "software," quicker, better, and faster, but if so, we certainly don't spend a lot of time reporting on value delivery, and in fact we may be scornful about "analysis paralysis."  As software developers, we consider ourselves to be doing quite well if we can deliver the software every two weeks (or continuously).  And this is particularly if we've enabled this frequent high-quality delivery through automated testing and automated build-and-release techniques.  We've reduced business risk by making results visible more often, and allowing the business to change direction more frequently.  We assert that along the way of course we're also delivering value.  But how would we prove it?

I've recently posited that we shouldn't even think of doing agile projects without capturing and recording s…