October 15, 2011

Successful Implementation

Success is easy to define in football because few things are more precise and indisputable than a scoreboard. The team with the losing score is not the team we see showering each other with champagne. But if we define success only in-terms of a momentary “win” we miss the bigger picture. Losses early in a game, or early in the season, often turn into gains, especially when a team comes together and rallies their strengths to understand and counteract identifiable mistakes. That’s why coaches insists their players spend hours watching footage of the game.

In software engineering, the playing field is the process called implementation. When software engineers test run new software, each play revolves around a “user story” and the equivalent to game footage is the QA feedback loop that helps engineers work out the bugs. Success in this game is more complicated than a simple score: it’s all about getting a team to work together to turn client ideas into great software.

Chief Methodologist Scott Ambler (Agile and Lean with IBM Rational) recently conducted a survey to evaluate just what constitutes “success” in terms of the Agile software development model. Of particular interest to us was his evaluation with regard to geographical distribution of engineering teams. Although disappointed in the response to his survey (he’d hoped for 1000 responses but only got 279), Ambler drew some interesting conclusions regarding “far-located” vs. “co-located” teams. Far-located teams are those with developers and stakeholders working from various locations around the globe, whereas co-located teams have key team members and interested parties situated in a single workplace. Ambler’s survey showed that co-located teams were more successful (70% compared to 55%) at implementing user stories than far-located teams.

These results piqued our curiosity so we decided to try to use Ambler’s methods to measure our success. We took a look at four months of recent software iterations for our biggest client and discovered the following:

Iteration

Total # of tasks/iteration

# New Features

# New Features that passed

# BUGs

# BUGs fixed

iteration-1

19

10

8

9

7

iteration-2

9

6

6

3

3

iteration-3

11

7

4

4

3

iteration-4

14

9

4

5

3

iteration-5

18

6

5

12

10

iteration-6

6

5

4

1

1

Totals

77

43

31

34

27

Success Rate

72%

79%

Overall Success Rate

75%

As you can see the success rate of our far-located development team was higher than Ambler’s surveyed teams that are co-located. Curious. What makes our team different?

Ambler has identified the main problems far-located teams face: communication, time zones and cultural differences. In other words, put a bunch of non-native English speaking engineers from a distant land to work on your project while you’re fast asleep on the other side of the globe and you will be hard-pressed to achieve a high success rate. This seems obvious to us and is exactly why we developed the business model we’ve been refining for decades: globally source the highest-quality developers, and locally source the highest-quality client account and program management professionals. That’s how you overcome the communication, time zone and cultural difference challenges. That’s our recipe for success.