December 23, 2008 There was an interesting article in my favorite technology site - InfoQ about how distributed development models and how quality suffers when this route is taken for IT projects. While the article by Vikas Hazrati was thick on polls, statistics and reasons why it doesn’t work - little spotlight was thrown on the 40% of the projects that DO work. Having run distributed teams since 2001 in places like Australia, Austria, India, Canada, London, France, Germany, Russia & Romania - I figured I would respond with my two cents/rupees:

Geographical distribution definitely affects code quality. Additionally, when the Architects are not geographically located in the same place as the developers - implementations are not true reflections of the design/vision. So yes, distributed models definitely introduce noise into the process. However, most projects don’t require pinpoint execution and you can get away with some dilution as long as teams communicate, proper checkpoints are enforced and effective reasoning is the basis of compromise.

Also, don’t break the project up into tier-specific teams - this will only promote dilution and confusion. Each development team should be responsible for their vertical functions and be able to execute across all tiers of the project. This gives you some fail-over when life/politics/economy intervenes with the implementation as you can introduce new functionality to a team familiar with all aspects of the architecture. Learning a new technology tier and its dependencies and interactions however, is not so simple, especially with distance.

If the project is small enough and the execution window isn’t absurd - we generally prefer keeping Architecture/Business-Analysts on one shore (the clients) and the entire Development team on another shore (whether the shore is 200 miles or 9000 miles away is irrelevant). The Architects regularly visit the offshore group, interact with them personally - especially at the beginning of the project when the vision and expectations need to be set. Depending on time and budget, we sometimes send our Business Analysts for brief visits as well. Don’t ever blind-side your developers - having them in-step with the vision is the key to successful execution.

It was a thought provoking topic from Vikas, I hope they write a follow-up article on distributed development done right some day.




Previous post Clinical Disassociation Like This Makes Me Sick I was browsing my usual technology blogs and obviously layoffs are a central topic on many of them. Tech is feeling the crunch just as most sectors Next post David "Coiled Spring" Warner It was 3am on a saturday night and sleep beckoned but I just wasn’t feeling like shutting down just yet. Then I remembered the Australia vs. South