The "How To Bible" for a Non Tech Person How To Supervise Outsourced Software Development

The decision to outsource a new application development often times seems like a rather daunting tasks for a business executive who has never supervised outsourced application development.

The simple truth is that not all companies have the In House tech staff who is experienced in organizing and supervising outsourced software development.

Fortunately the proper way to be successful when outsourcing software development is really not that complicated. Below is a 6 step list which, when followed, should ensure that your outsourced software development will no go off the rail.

Please note that the steps below are only applicable once you have selected the right outsourcing provider. Obviously, if your selected outsourcing partner does not deliver on the technology it can get rather tricky.


Step 1:  Requirements Management and Audit
You start with the most important item first. A detailed analysis of the requirements is key. Each capability of what the software needs to do has to be properly documented. Additionally you have to assign the proper permissions, (edit, read, modify, delete and so on) to each user level which is authorized to access the data relevant to that function and or feature. There is a good chance that your Outsourcing Provider will have a Requirement Manager on staff who will guide you through the process. If not...assign a member of your team that responsibility. Once you have the requirements down schedule meetings with the Lead Developer or Team Leader and run through all the requirements to clarify any misconceptions which might arise. A well thought out requirement list will ensure that your application has all the features you need while avoiding excess development time which might arise due to changes and/or additions which become otherwise necessary.

Step 2: Testing Tools
Once the outsourced software development team starts working testing of what is produced becomes the most important task. The Quality Assurance needs to stay on top of the development process to make sure that the development is correctly aligned with the requirements. Gantt and/or waterfall charts should be used to structure the development process into easy to follow steps. (the sprints). Your outsourcing partner will have a dedicated QA team (Quality Assurance). However, you or the person tasked with supervising the development will need to make sure that testing is done in accordance with the progress the developers make. It goes without saying, testing should never be done on the live app...a dedicated testing environment is something your outsourcing partner should have set up for the entire development process.

Step 3: Timelines
Besides the quality of the product timeliness of the development effort should be your second most important priority. You want your development effort to stay on track. As such it is vital that prior to development the estimated time and allocation of resources is done. Reputable outsourcers will provide detailed estimates as to how long the development of certain milestones (broken into sprints) will take. By tracking actual hours spent versus the estimate you will be able to easily ascertain  if the project is on schedule. Reputable software development firms will have that process down by using specific project management software which makes them accountable based upon the  hours pent versus a prior estimate.

Step 4: Consistent Feedback
It goes without saying...your outsourcing partner needs to know what you think. You need to regularly review how the software works and test it. Based upon your testing you need to provide feedback as to what features are to be amended and changed. It is much easier to change requirements early on while the particular feature is still under development. If you do not have the time to engage in regular testing assign the task to someone else and make them responsible to provide the needed feedback.

Step 5: Solicit Advise From Your Outsourcing Partner
You might have very specific ideas as to what the software needs to do. However, often times the outsourcing provider might have some very valuable ideas as to how to build a "better mousetrap". Technology moves at rapid speeds and there is a pretty good chance that your outsourcing provider has a good idea of how to improve upon desired functionality without adding much to the development effort. By cooperating and soliciting feedback throughout the process  you will end up with a better product; without necessarily making it more expensive.

Step 6: Test After It Is All Done
There is nothing more disruptive then having a new software release out with your customers and/or staff and then realizing that there is a problem. It is never good to roll back a software release. The problem might be with the functionality or feature or with platform compatibility. Therefor you will need to make sure that once you have the final product ready to go that it is performing as required and that it works on the platforms your business needs to support. (various browsers and operating systems, desktops, tablets and phones). The above might seem trivial...but I have personally encountered software releases where quite a few remote team members of a customer were still working on XP and Vista  even though the requirements were to be compatible with Windows 7 and up. Proper beta testing  can avoid disruption in business processes prior to making the software operational.


Supervising outsourced software development is easier than people often times think. By following the steps outlined above there is a pretty good chance that your project will go off without a hitch.