At OOPSLA 2001, a panel of the most distinguished methodologists of the day was asked "How would you do agile development where the team are a geographically distributed workforce, each working in his own home?"

They more or less unanimously said "We wouldn't even try!"

And yet ...

  • Distributed open source projects have worked successfully for some years.
    • Yes, but they don't work to commercial deadlines and requirements; nor within commercial confidentiality. And they don't get paid!
  • There are commercial precedents, even as early as the 1970s.
    • In Cobol....
  • Distributed Pair Programming has been shown to be feasible, especially with broadband connections.
    • But only in internal projects or academic exercises.
  • The use of agile methods reduces the scope for misunderstandings between co-workers.
    • Ha ha ha! Ho ho ho! Tell me another one!
  • We have some patterns for distributed agile development, and want to compile more.
    • Oh yes? Let's see them then....
  • See PatternsForDispersion.
  • Distributed working means you can earn money while living on the beach or up your favorite mountain, or wherever you like, without having to commute every day and without wearing a tie all the time, or sharing a smelly grey office with people who smoke or cough.
    • This exciting new method of software development is clearly the way of the future. When can I start?

 

See http://www.fastnloose.com/cgi-bin/wiki.pl/dad/  for patterns and tools for dispersed working (and to contribute some of your ideas to the patterns book there).  John Daniels and I started this Wiki when we founded Fastnloose, a company that works with dispersed teams.

John Daniels and Paul Dyson recently ran a workshop at OT2004 -- see their slides here.

 

Since joining Microsoft, I’ve found that most of the principles of Dispersed development actually apply to good software development anyway. Dispersed working makes you think more carefully about how you collaborate with your colleagues; those principles can be applied to any working situation.