Thursday, June 5, 2008

Does Outsourcing Software Migration Projects make sense?

Software Migration projects are well suited for outsourcing. Why? Here are three simple reasons.

First, software migration is not your core business. You are migrating software due to some business reasons – maybe customers want your product on a modern platform, or maybe your older solution has outgrown its purpose and no longer meets your requirements and you desire to migrate to a more suitable platform. Whatever your reason to migrate, this is not something that you should be spending your engineers’ time or hiring staff. Your engineers should be spending their time on core aspects of your business and working on adding features that will keep you ahead of competition. You don’t want to hire new staff because you will need to worry about what to do with them once the migration project.

Second, it is cost effective. Software migration is an engineering disciple by itself. There are tailored software processes and best practices that have evolved a period of time. It is not practical and not sensible for you to invest in learning these methodologies as it is not your core business. This is the job of companies that specialize in Software migrations. They can provide value to you based on their expertise and experience. Outsourcing to qualified companies can lead to considerable cost reductions.

Third, the scope is defined in a much better way. Unlike new software development, the requirements are much better defined in a migration project. In regular software development projects, it is very common for requirements to evolve as the product is getting built. This is due to a variety of reasons – the end user starts realizing the requirements after seeing something. It is well known in the Software industry that a majority of software development projects are over-budget and over-schedule primarily because the requirements are not captured and managed properly. This is an inherent feature of new software development. Hence, people undertake working prototypes, create a version to throw it away so they can then develop the ‘real’ version etc. In the case of Software Migration projects, you are in a much better position to crisply define the requirements as you already have an industrial-strength version already up and running. You probably have a good handle on the performance numbers to expect and use cases for all different scenarios. Given this, it is very convenient to define the requirements and the acceptance criteria, a key aspect of outsourcing any project.

There are several more reasons why outsourcing migration projects makes sense – might be the subject for blogging some other day…