Are you concerned about using Agile in combination with an offshore delivery model? Exoftware"s Laura Waite looks at how Agile can be used effectively in an offshore context.
Agile is well-known for working with small, co-located teams with “highly skilled” workers. Of course, common sense, research and experience tell us that small teams work better; that co-located teams work better; that “highly skilled” workers are more productive. If we could, we would certainly move to this model. But some initiatives demand 10’s, 100’s and even 1000’s of people to deliver them. How do we translate the success of Agile into our highly complex, resource intensive environment?
We have to understand the underlying intention behind Agile. We need to know how Agile has solved the problems it’s faced. And then we need to work out how to translate the solution from that context into our own context
The only measure of whether offshore delivery is working is if business value is being delivered. The challenge for most companies is how to achieve maximum benefits of going offshore – typically reducing costs and achieving speed to market.
If we look at an Exoftware example, where we had a team of 250 people with 100 based across the UK and 150 spread across several different locations in India. How can we possibly get such a disperse team to work in an Agile way? By understanding the values and principles behind Agile and replicating them in this highly complex, resource intensive environment.
A breakdown in communication is often cited as being the main challenge to successful offshore delivery. The geographical distance between groups of people working together can be challenging enough, add to that the complexity of having our customers located elsewhere and problems can seem to compound.
Agile can solve the communication difficulty, but first, we have to consider applying multiple practices to solve this problem. Second, we identify some of the fundamental practices that have been designed to address this problem: some of which include stand-ups, retrospectives, and planning sessions. Finally, we have to adjust these practices to work in our context, but without losing the fundamental intention behind them.
For example, how do large, distributed teams deal with daily stand ups? What are daily stand ups really forcing us to think about?
Stand-ups are very quick meetings (15 minutes) that happen at regular intervals (often daily) and involve the whole team. This simple practice is designed to provide communication and feedback, and traditionally is done with the whole team standing face-to-face in a circle sharing information.
Daily stand ups are about getting as much face-to-face communication everyday and interacting with our team as much as possible. This is important so that we deliver exactly what the customer wants (allowing us to realise business value) and that any issues or questions are resolved quickly (reducing cost and achieving speed to market).
Getting a 250 person team together everyday is impossible, but we need to look at the fundamental problem the face-to-face gathering solves and adapt it to our context.
For any large project, there is a well-known practice referred to as “stand-ups of stand-ups”. This is where smaller, focused teams meet and representatives from each of these smaller teams attend a higher-level stand-up to convey the information from the team, and so on.
Stand-ups were designed to involve the “whole team” not just for information sharing, but also to capture a diverse group and their views. So if “stand-ups of stand-ups” is to work in the spirit if traditional stand ups, then we need to ensure that diversity is retained.
In the smaller stand-ups, diversity is easier to maintain – we can include, developers, project managers, designers, customers, etc. Selecting a representative might be trickier – if all project managers are sent, diversity is lost.
One way to deal with this is to send a rotating representative from each of the stand-ups who have accepted responsibility to speak at the higher-level - a designer one week, a developer the next. Not only does this offer our missing element of diversity, it also promotes a sense of collective ownership where everyone feels involved; their voice is being heard at the higher-level; and they are privy to that higher-level information exchange.
Face-to-face communication is also important to include because it gives us the low-level sociological communication cues that come with body language, they provide a forum for creating and being motivated by collaborative energy and they offer a sense of community. However, for geographically disperse teams this is difficult.
In order to mimic the verbal communication of face-to-face gatherings we can fairly easily start to use conference calls. But subtle cues such as body language can be missed, and collaborative energy can be lost. While more complete video conferencing can help, an even more effective solution is to have 2 or 3 people that can meet together face-to-face for the stand-ups, and then speak into a conference phone to the rest of the team. This helps to boost collaborative energy and a sense of community.

So while on the surface stand-ups may seem unthinkable in a large distributed team, delving deeper into the values and principles means we can work out how to apply the solution in new ways to create an Agile environment even in unique, complex and challenging environments.
The most powerful aspect of Agile is its ability to be extremely adaptable.
Exoftware approaches delivery from a fundamental understanding of the intention behind Agile. We work from a values and principles perspective, rather than a specific set of practices. We apply the Agile values and principles combined with our rich experience of different environments to solve the problems in your specific context.
Whether you’re co-located or dispersed, traditional software development or commercial-off-the-shelf (COTS), or in fact whether your project is not software development at all, we have the experience and ability to apply Agile in order to deliver business value early (and often) and significantly reduce cycle time.
Site by Brightspark Consulting