It is increasingly common to have software teams outsourced to various parts of the globe, could be to find the skills or more often based on the principle of exploiting the differing costs of living. Aside from the moral implications there, how effective is this really, especially in an agile context?
Firstly I suggest splitting down the concept of Distributed, I suggest three categories:
- Just round the corner – same culture, very close to the rest of the programme team but not co-located. Could be East London to West London, I have actually seen this being separate floors in the same building!
- Nearshore – similar culture, far enough away to make visits awkward but not prohibitive
- Offshore – Different Culture, typically a long haul flight away.
Agile is light on defined algorithm style instructions, it is, by definition, an emergent philosophy and hence requires continual communication. If you have a distributed operation then steps need to be taken to compensate for the communication issues – and those steps can be expensive.
There are two barriers to communication relevant in this context:
Regarding Distance, the best communication is face to face – co-located, because of the ability to pick up on the tone, body language and facial expressions that moderate and give subconscious context to the actual words. Put people over video conference they fail to see the distractions of the others and when teams talk it is as if we are all standing 5m away from each other. People also pay less attention to the speaker when on VC. Remove the screen so it is just a voice call and you lose huge amounts of information, take it one step further and have instant messenger and the value is considerably lower still. The least effective form of communication is obviously the written word, the only advantage it has is permanence, which in turn, for Agile, is dangerous as the content is static in a contextually changing world.
Communication has a long history of cultural related issues, it is very easy to misconstrue, incorrectly assume meaning and even cause offence due to cultural misalignment. There is no right or wrong, there is just similar and different.
The Dutch psychologist Geert Hofstede categorised national cultures according to 5 dimensions: Power Distance, Individualism, Uncertainty Avoidance, Masculinity and Long Term Orientation. Of these, in my own experience it is the difference in Power Distance that has generated the greatest issues in terms of Agile software development. Many countries popular for offshoring in Asia have very high Power Distance, which manifests as deference to hierarchy. The Agile approach encourages a safe trusting collaborative environment where hierarchy is typically flat.
So if you are considering (or already have) a distributed team consider distance and culture and what steps you will take to mitigate.
For team that are close consider arranging face to face sessions rather than video conferences, and be aware of how much this costs. When working with teams in London, Zurich and Kiev we’d have collocated release planning each three sprints (6 wks), that is moving 20 or so people a few thousand miles for a few days, 9 times a year – those costs rack up fast.
Teams that are very far away – I would suggest you’ll have to take a hit on productivity – just accept that it isn’t going to work as well, more time though means unhappy stakeholders and of course higher costs.
Gaining cultural understanding is far harder, can’t be fixed with an airline ticket. Regular contact will help, consider having people of that culture in your local team and visa versa – I have seen projects with senior local staff seconded over to the offshore location as a cultural liaison role. Arrange cultural awareness sessions with your teams to try to make the teams more aware.
They key to this is awareness. Be aware that your communication and hence your effectiveness is going to be significantly impacted. Awareness brings mitigation strategies and hopefully budgetary / timeline impacts.
Looking back on the Projects I have worked on, if you are just around the corner – then move to be collocated. The team are being forced to accept significant constraints usually because of local politics or logistical issues because those with the power to fix the situation refuse to believe the issues or just don’t care.
If you are near shoring, then you need a very large travel budget and plenty of good quality video conferencing facilities with dedicated rooms and good connectivity at both ends.
Finally if you choose to go down the offshoring route, then in addition to the above you’ll probably need permanent secondees in both directions and a continual cultural awareness programme running in the background- and you’ll probably still need to accept a slower delivery rate.
If you can do all that and still save money then maybe it is worth it after all.