How can you ensure quality in offshore software development?
Frequently, I hear people mention that ‘the quality’ of the software that is produced offshore is bad. Or people say ‘Indians produce bad quality’. Or they say ‘outsourcing doesn’t work, because the quality is too low’. Such conclusions sound like generalizations and it always produces one question for me: how did you organize?
In most cases, people speak about India and not about other countries. I believe the reason for this is the dominant position of India in the offshoring world. Most work is moved to India, so the chances are big that experiences are from working with Indian people. It is unfortunate that experiences are sometimes negative, but unavoidable. Offshoring is a complex form of organization, people have to manage across borders and cultures and many companies having no prior experience.
It is within the question ‘how do you organize’ that we can find both the problem and the solution. In many cases, companies start with offshoring a project or a business process. The leading idea is to take a project that can be clearly described in a requirements document. A supplier on the other side of the world is searched and the project is subcontracted to that supplier. What happens on the supplier side is a black box. The project is sent into the black box, some idea is formed about what ideally should come out of the black box and when it should come out. And then we wait till the black box pops out the project. In many cases, the thing coming out is not what we had in mind.
Companies focused on the short term (we wanted to get this project done because we couldn’t do it ourselves or we didn’t have the people) will easily conclude ‘offshoring doesn’t work’. There was the expectation that this one project would produce positive results and there is no stamina to invest time to make offshoring work. Companies focused on the longer term (they envision a strategic advantage by engaging offshore resources to produce value on the long term) might be willing to question themselves ‘what went wrong and what can we change to make it work better the next time?’. I believe that many of the conclusions described above are caused by companies focused on the short term.
Quality (in a service context) is the result of two ingredients: people and process. The problem in the traditional form of ‘outsourcing’ is the black box: the outsourcer has no insight nor influence on which people are involved in a project and how those people work. Obviously, when you engage a quality service provider, you just want to get the result and you don’t want to mingle in the black box. The reality is that many offshore service providers cannot produce the expected quality on its own and a close interaction with the outsourcer is needed. Close cooperation, communication should lead to opening up the black box to produce the expected outcome.
The key to producing high quality is getting the two ingredients right. Firstly, you want to engage the right people in your project or business process. Instead of relying on the people hiring skills of the service provider, it is advisable to have an influence on the hiring decision. The steps taken in hiring employees in the outsourcer’s company can be applied equally to the hiring of offshore staff. Second, the major question to be asked before the actual work starts is ‘how will we work?’. The black box approach relies on the (lack of) processes of the offshore service provider. The outsourcer has its own processes, but the project goes into the black box. The problem is that the provider can never produce the results alone using only his own way of working. Close communication and agreement is required on requirements gathering, how to deal with unclarities, how to stay aligned, progress and many more factors. The processes in the black box and on the outsourcer side should be opened up. Before the real work starts, developing a common process gives both ‘sides’ insight into who does what in each stage of the cooperation.
People + Process = Quality. Get the right people in the right position, clearly document how the work is done and what is expected and the result will be the quality you expected.