On-site or offshore? The resource allocation debate goes on
Yesterday: a rather frustrating meeting with a potential customer. He has made the decision to near-shore an application development project. However what he is looking for is to have some of the development team on site for the duration of the project.
Yesterday: a rather frustrating meeting with a potential customer. He has made the decision to near-shore an application development project. However what he is looking for is to have some of the development team on site for the duration of the project. While I’m not one to turn away business, especially in a recession, there is no point in starting on something that you know will only end up with both the customer and my team dissatisfied. One of the main benefits of outsourcing is the cost saving, and this, along with the skills, is the main reason for this could-be customer to outsource.
However, having team members on site everyday of the project will virtually negate this cost saving. Hotel bills, food and flights all mount up and the developers on site will not be able to see their families during the week for several months – certainly not something they signed up for. I’m not, however, advocating a totally face-time free approach either. Regular IM, emails, calls and video conferences may provide vital communications, but we all know they cannot completely replace face-to-face human interaction. It seems that the ideal situation is to have a project manager, who is also a member of the development team, from the outsourcer. This person then acts as the interface between customer and supplier and communication is channelled through him or her and they spend around xx% of their time just communicating. This project manager should kick off the project by visiting the customer’s offices to discuss the project requirements. Not only does it ensure that the outsourcer’s team has a better understanding of the project but it also helps the outsourcer to figure out, depending on the customer’s culture, how best to work with them. The project manager should then explain the requirements and working arrangements to his team members and relay additional questions and concerns.
For the duration of the project he should have should have specific responsibility for communication and knowledge transfer between the teams. I would expect that at crucial times, such as testing and integration, the project manager would visit the customer’s offices again and depending on the scope of the project should even schedule fortnightly visits to check that both sides are happy the project is running smoothly.
Of course, this isn’t to say that other team members can’t visit the customer when their skills are require but it makes sense for them to visit on an ‘as and when’ the need arises basis. Quintessentially, the issue is this: if you have made the decision to offshore your software development, you have to (1) trust your supplier to deliver quality software on time and (2) accept that the development will be done offshore. Sadly, I don’t think the man I met yesterday is quite ready to offshore yet.