Despite its reputation for innovative technology, India struggles to find a sufficient pool of talent to fill the tens of thousands of software engineering and IT services jobs created by companies like Wipro, Infosys and others. In addition, wages in the country have been rising rapidly while Western demand has been cooling in response to gathering economic headwinds.

All this indicates that India’s rate of growth for IT services in the next five years is likely to slow in relation to other emerging economies, which means more sourcing options are entering the frame.

In the quest for the optimum low cost/best practice centre of production excellence, who are the emerging candidates? One of these is China, which has a flourishing IT outsourcing industry available to both domestic and foreign clients, which has grown in parallel with the country’s exponential industrial and corporate expansion.

And ironically, given the current weakness of the dollar, the US may itself become a low-cost/high expertise outsourcing centre for software development and other IT services to today’s emerging economies.

How to source a project

Wherever in the world they are sourced, purchasers are increasingly reluctant leave their software development projects to chance. Many having been burned in the past and now they want to know before they begin A) what they are paying for and B) what they are going to get.

For a European CIO faced with the decision of whether to buy a customised application project from India, China or anywhere else – they want to be able to apply a set of guidelines in order to make the right choice. But given the intangible nature of software, this is not straightforward to achieve.

Fortunately, the Software Engineering Institute (SEI) has created a framework for evaluating and rating IT development organisations called the Capability Maturity Model (CMMI), which provides international best practice standards against which to measure the main elements of an effective development process - from initial project planning to software testing and validation.

These standards and measurements can also be used at the planning stage of a project to get an accurate estimate of how well the end results will meet expectations and how fast the software can be produced.

Productivity vs Quality

In development, two of the most crucial things to consider are: Productivity per unit of paid programmer time and the Quality of the finished product relative to the rate of productivity. Unless both of these components are benchmarked against universal best-practice industry guidelines it is hard to make an apples-to-apples comparison or to judge whether a particular outsourcing centre represents fair value or has adequate skills for the job.

Planning the project

Measuring productivity must be relative to something else. A programmer may produce 1,000 lines of code in a given timeframe, but this doesn’t necessarily mean it is accurate to requirement. To get a true assessment, we must focus on the number of function points that can be produced per hour or per month.

What is a function point? It is a standard unit for measuring the size of a software application project. Once this function point size has been established, the number may be used to derive the anticipated effort required and the quality of the project through all the defined phases of the production lifecycle.

Results according to function

Focusing on these function points takes into account the most challenging part of a project, which isn’t the coding process itself (in which some international development centres excel) it’s about the way an application is built, designed and tested and how well this reflects the actual business needs of the customer.

In fact, the programming component accounts for about 10 percent of the job, while the other 90 percent should be spent in mapping the project’s lifecycle to allow for all of these stages, allowing for adequate testing cycles to ensure a bug-free delivery.

The degree to which this is achieved is a measure of its quality. Therefore, benchmarking productivity is about far more than comparing the technical aspects of code output – it is also about measuring what is delivered in terms of its functionality.

So, when next faced with the challenge of sourcing a major software project, these are a few of the factors which, if taken into account, can reduce the pain, cost, risk and uncertainty of result. And as with most things, determining best-price and best-practice production is never simply about lowest cost or the highest volume of output.

It is a matrix of considerations which, although perhaps not simple to apply, provides universally applicable guidelines to ensure a satisfactory outcome.