Sunday, April 24, 2005

SPA 2005 Note - Outsourcing

The workshop went through the standard set of problems that arise as a result of distributed teams. An interesting split emerged between those who were establishing distributed teams and those who had established teams. The latter were more concerned with maintaining a consistent vision and architecture having got the practices sorted out to some extent.

There was some debate about models for ensuring a standard architecture. Those backed by successful experiences were:

  • Seed team - having a small team produce the load bearing walls and I0 and then move each member of the team to one of the distributed locations to be 'keeper of the flame'. The 'keeper of the flame' then needs to hand off to a local member of the team once the appropriate degree of indoctrination has been performed.

  • Lead team - one development team owns the architecture and there is one chief architect where the authority lies. Expect some international travel.

  • Black boxing - have off shore teams building to a specification, treat them like a 3rd party vendor, don't care about their process or architecture, just make sure the tests pass.

  • Beach head - approx 80% off shore, 20% home base.


There was debate about whether distributed teams should work on the same codebase or whether distributed teams works better in a component based environment. People were using a mixture.

I made the point fairly strongly that the model to be used depends on what is to be built. If it is technological activities such as transformations for integration then Black boxing works. If it's business level functionality then one of the other models is more appropriate. I'm also more in favour of Seed team and Beach head for business apps.

Clearly there is room for guidance here and I believe the work myself and a colleague have been doing in this area may well yield some benefits over the coming year.