Subscribe
About

Outsource software development at your peril

When outsourcing software development, a lot more is needed than a promise of quality.
By Thomas Cronje, Application software quality manager, Middle East and Africa, Compuware South Africa.
Johannesburg, 24 Jan 2007

A commercial contract is not a strong enough basis for commissioning software development from a third party. It is imperative to ensure the contract is all-inclusive, and the outsourcer has excellent quality processes in place to manage software development properly. Mere lip service to quality is not enough.

Companies must check that outsourcers follow a systematic testing approach, adhere to a consistent quality assurance process, deliver the quality metrics required to make a sound 'go/no go' decision and ensure critical business requirements are met.

Make certain the outsourcer has an effective approach that includes good methodology and certified quality assurance expertise to instil a consistent discipline across development, quality assurance and operations.

Companies outsource software application development for a number of reasons, including the skills shortage and to save costs. However, outsourcing of software development poses its own problems, and it really is a case of 'buyer beware'.

Meeting requirements

There is definitely room for improvement in the market when it comes to quality governance and testing in outsourcing environments.

Thomas Cronje, Application software quality manager, Middle East and Africa, Compuware South Africa.

Too often, the resulting software does not meet the client's requirements. There is often little recourse, because the initial contract was not thoroughly and properly set out to cover all the important areas of the project.

The commercial contract usually focuses mainly on payment terms, delivery times and number of resources. It tends to omit the most important aspect - detail of the actual software delivery. This information is usually contained in separate documents, which often do not contain enough of the necessary detail, and are not even tied to the main contract.

When entering into a contract with an outsourcer to develop software, all potentially grey areas must be ironed out right at the onset, before any agreement is entered into.

Thorough specifications of what must be delivered, exact timelines and detailed costing must be thrashed out, and then detailed in the contract. It is not good enough for the contract just to specify a final global amount for the development. The entire project must be broken down into smaller phases, and each one properly priced. All this needs to be included in the overall contract, and be binding.

The same applies to the service contract. The outsourcer must specify exactly what it will provide, including how many resources, at what level of expertise and at what price.

Too often a company realises the problems with its outsource contract only once the first invoice is received. Only when it wants to challenge the outsourcer, believing promises have not been fulfilled, is the parlous state of the original contract realised.

A good contract protects both the customer and supplier against comebacks. It also ensures good quality.

Quality measures

Even more important to ensure good quality are proper metrics and measurements around process, project and product. Companies must check that the outsourcer employs stringent, best practice metrics.

When measuring the project, the company should use metrics related to the use of resources. How many software developers have been assigned over what period? When were they utilised? The same measurements should be made of testers.

The use of wrong measurements such as lines of code per developer to measure productivity is a common error. All this does is encourage developers to include a whole lot of redundant code!

Quality measures include mean time to failure, mean time to repair, customer problems and customer satisfaction.

Software should also be tested against requirements. However, this becomes meaningless if the requirements were never properly captured to begin with.

Best practice

Organisations that adhere to best practice are more likely to succeed in outsourcing endeavours. There is definitely room for improvement in the market when it comes to quality governance and testing in outsourcing environments.

While many organisations are quick to turn to an outsourced solution in order to cut costs and streamline overheads, this can result in quality procedures going out the window, placing significant to the success of the project.

Should the outsourced project fail, it results in substantial loss of face along with wasted resources. Furthermore, the failure of the project could result in significant down time, damage to the organisation's reputation and a loss in confidence in the company from key stakeholders. This could even affect the company's share price and the organisation's financial performance.

Adhering to best practice will therefore give organisations the framework they need to manage risk and maximise the chances of the outsourced project succeeding through improvement of quality governance and testing procedures.

Share