What CIOs Should Know About Outsourcing Enterprise Java
— Your manager Frank started the meeting by saying that the budget for the new project had been approved, but half of the project will be outsourced to a great team from overseas. Can you imagine, their rates for Java programmers can go as low as $15 an hour!
First, there are some legitimate reasons why a CIO chooses to outsource a software development project. If a software project needs more resources than what is available in house, or if it requires skill sets that are not available in house, then outsourcing it may be a good option. Even if there are resources in house, a CIO has to consider outsourcing if it can shorten the development cycle or if it can complete the job at lower costs. This is all part of the CIOs responsibilities.
The CIO also must consider and present the risks in areas of security, IP protection, and yes, software quality. In addition, there are different project risks for outsourced projects vs. inhouse ones. The problem with these risk areas is that they are very difficult to quantify and even more difficult is the task of comparing the risks of an inhouse vs outsourced implementation. Bottom line is, senior management expects that the CIO can mitigate risks w/ whatever direction he/she sponsors for a project. Very often, the choices come down to successes and failures of previous projects. If the in house team is largely successfuly, then the CIO won't have to look outside. If the team is very strong at managing outsourced projects, then the CIO will lean in that direction.
In terms of project costs, CIOs typically leave these calculations to the project managers that will lead the project. The CIO is ultimately responsible for the business deliverable and for the full cost of the project including the 'hidden' costs that Mr. Fain lists in his article and many other costs. So, it's their job to review these costs and make sure (sometimes with the help of others....) accuracy and integrity. If a CIO represented a project's cost/timeline as 'the cost/time it takes for the offshore team to develop and deliver the code', he/she is going to have a lot of angry business managers.
If your Manager or CIO decides to outsource a project, my suggestion to Developers is to be a team player and do your best to make the project succeed. If you're a team player, your managers are going to give you more responsibilities and challenges. In Mr. Fain's article 'John' reports that there are significant code issues. The problem is - this issue surfaces at month 6 which is way too late. Why hasn't John reported this earlier? Why didn't Frank present coding standards to the outside team and institute regular code reviews earlier in the process? While the outside team may have bad coding practices, these examples also point to problems with the inhouse team's ability to manage outsourced projects and possibly other collaboration and communication issues.
I've managed several offshore projects. There are definitely challenges involved. It's not smart for all organizations or all types of projects, but it is something that businesses need to consider. So are software developers going to adapt to this type of globalization? More on this in future blog entries!