It comes as no surprise to any of us that the offshoring of software development and testing efforts has become the standard for most companies. But what drives that decision, and how does a company determine if it is the right choice for them? Once a company has been outsourcing for a while, what steps can help them to determine if it is working in their best interests?
When I joined my current company, we had a development and quality assurance (QA) office in India. To the money people, this sounded like a smart idea since the staff salaries in emerging markets can be quite low. While I had my own experiences to draw upon that told me this was a risky strategy, I only had subjective evidence that it wasn’t the best option for this company. Subjective arguments don’t go very far with the people who are managing the costs of a company.
In order to do an objective, fact-based review of the offshoring strategy for my company, the Director of Development (himself a big fan of outsourcing) and I put in place an Agile SCRUM development environment and tools that showed what people were working on, how much time is was taking them, and how many bugs were raised against their code. This system was used by the software developers and testers both onshore and offshore, and after a year the statistics were available to enable us to make an educated analysis of the success of our offshoring strategy.
Understanding the Challenges
The first step I took when performing the review after a year of offshore analysis was to identify the efficiency issues that existed due to the remote teams. The employees we had working for us in India were absolutely love people and tried very hard, but it became apparent that with their remote location there were challenges that no amount of dedication and good intentions could overcome.
Challenges:
- High Staff Turnover – In emerging markets, the fast-growing job market means that as staff are trained on new technologies, they can use those new skills to get a higher-paying job in another company. The trend in many offshoring centres such as India is a new title being awarded each year, and employees generally leaving their company after three years (on average) to pursue a new role. What this means for a company is that there is a risk to training up employees or in relying on offshore engineers for long-term specialist knowledge. Essentially it becomes a risk to train your teams to perform the work you need them to do.
- Remote teams make reactive testing difficult – For offshore testing of projects that are developed onshore, there becomes a need for detailed test plans to be written covering every feature, environment and user scenario. The training of the testers becomes an additional burden as does the management of priority of testing efforts and recognising what has been tested and what hasn’t.
- Agile development requires geographically close teams – ?With Agile development, the potential for faster turnaround of higher quality code can be achieved, but only with highly integrated development and test teams. ?The personalities that can make Agile work must be highly independent developers and testers who do not need complete documentation prior to doing their work. With the requirement for detailed documentation for making offshoring work, there is an immediate roadblock to making Agile work.
Understanding the Team
In a report titled “Rebalancing Your Organization’s Agility and Discipline” [PDF] by Barry Boehm and Richard Turner, there is an efficiency grading metric that helps to identify how adaptable team members will be to an Agile environment. The Manager making these decisions needs to take the time to get to know the developers and testers as well as becoming very familiar with the work performed by each employee.
Table 2. Levels of Software Method Understanding and Use
Level | Characteristics |
3 | Able to revise a method (break its rules) to fit an unprecedented new situation |
2 | Able to tailor a method to fit a precedented new situation |
1A | With training, able to perform discretionary method steps (e.g., sizing stories to fit increments, composing patterns, compound refactoring, complex COTS integration). With experience can become Level 2. |
1B | With training, able to perform procedural method steps (e.g. coding a simple method, simple refactoring, following coding standards and CM procedures, running tests). With experience can master some Level 1A skills. |
-1 | May have technical skills, but unable or unwilling to collaborate or follow shared methods. |
(copied from “Rebalancing Your Organization’s Agility and Discipline” [PDF] by Barry Boehm and Richard Turner)
After getting to know my team and the work they each performed, I was able to apply these efficiency levels to each of them. The team members working onshore were mostly level 3 with a few level 2s which menat that they were able to work independently and without strict direction whereas the offshore team was averaging around a level 1B or -1 which required a bit more direct management.
Cost of Doing Business Overseas
The next step in determining if offshoring is costing the company more than the savings in salary costs is to identify the additional costs of doing business overseas. In order to make an offshoring strategy successful, a company needs to send the highly-skilled onshore engineers and testers with specialist domain knowledge down to teh offshore location for training at least twice a year. Reviewing the travel costs as well as the cost of these specialised team members not performing their own work is critical. Next, an onshore and an offshore manager need to manage the relationships, ensure that the necessary documentation is being written, the training requirements are understood and addressed, and the knowledge transfers are taking place. Other costs to review are redundant systems such as hardware for test labs, automation testing equipment, software licenses, and test suites. Finally, calculate the amount of time that the onshore team members lose from their own work by needing to mentor the offshore team. This mentoring overhead usually requires between 10% – 20% of the onshore and offshore team’s time which can become quite expensive.
The argument for offshoring almost always stems from teh argument that salaries are lower in the emerging markets, however the rapidly increasing job markets in these offshore hubs are driving the salaries higher at an alarming rate. Many companies have been transitioning their offshore efforts from India to China, but according to GIS Jobs Survey 2010 and Hayes Salary Guide 2010 the costs of doing business in China are on par with doing business in India.
Making the Tough Decisions
After a year of looking at this question objectively, my company came to the conclusion that the practice of offshoring our development and testing efforts were costing us for more than we were saving. We made the controversial decision to close down our India office and spend the measurable costs on hiring fewer developers and testers into our onshore location. This decision was taken over a year ago now, we’ve had the team working in our UK office for one year, and the difference in our products has been truly spectacular. Our developers and quality assurance engineers work very well together as a team, they respond to customer requests quickly, and the feedback we are getting on our products from the past year has been very exciting. We are now creating really ground-breaking products with very fast turnaround, rapid adoption of new technologies, lower support costs due to improved testing and usability, and higher sales due to very satisfied customers.