A few more things to do before making the outsourcing decision:
3. Create a Request for Proposal (RFP) that describes, in great detail, the software you want a supplier to create (the software requirements), anything else you want them to deliver (documentation, testing results), the testing they must do, the processes and tools you expect them to have and use, and all of the project management reporting you expect of them so that you will have insight into their progress and their evolving product. Include your deadline for completion, and if the delivery is to be phased, describe the phasing.
Don’t expect them to evolve their own requirements. This may very well be the number one reason for outsourcing failure and is a combination of vague requirements and scope creep. These are bad enough when you experience it within your own company. But in a company on the other side of the world: ?
4. Ask for bids, and question the supplier to be sure they understand what you’re asking of them. It doesn’t do you any good to try to fool a supplier into bidding low based on a misunderstanding of the scope. A supplier’s failure will be your failure.
If you have a choice of suppliers, don’t necessary use the lowest bidder. Convince yourself that the supplier you choose can actually do the work at the quality and schedule you need, and is not just saying they can. Make them explain to you how they will do that.
5. Analyze your costs to manage the supplier. In addition to the project management tasks (analyzing status, managing progress), don’t forget that you’ll need technical staff to manage technical reviews and assess quality, and you’ll need a testing staff. Ah, you’re going to outsource the testing too? Not a good idea. Rethink that.
And if you’re considering an offshore supplier, make sure you’re ready for language challenges, the time zone shift, and the distance between you and the faces of the development team.
Now that you have bids, and now that you understand the in-house effort that will be needed to manage this work,
redo the cost/benefit analysis and make sure that you still want to outsource the work.
If it still makes sense to outsource, then:
6. Choose a supplier and write a contract that includes everything you put in the RFP. Do you want a progress report every Friday by 5 PM? Then make sure it’s in the contract or Statement of Work. Include language that allows you to see the code while it is being developed and include the requirement for incremental deliveries of the software.
In my next post I’ll discuss what to do once the decision has been made and the outsourced development begins.