WavebreakmediaMicro - Fotolia

Problem solve Get help with specific problems with your technologies, process and projects.

How to simplify how you outsource software development

Outsourcing software development can stressful. Information system architect Brad Irby provides six steps to approach it.

A way to ease into the outsourcing experience is to outsource just QA. All the outsourced development companies I've worked with offer QA services as well as development. By contracting out the testing you not only get the value of the service rendered, but you also get to try out the company to see if the team hits its deadlines and generally acts in a professional manner.

Step 1. Demo

Before signing the services contract, give the provider you decide to outsource software development to a demo of your application. The team should be eager to impress you, so listen to the questions they ask and their ideas on how to test. Be on guard for formulaic questions or indications they are just reading from a script. If they try to dig into the details during a demo, it's a good sign they will do the same later. You will learn a lot about their competency by listening to what they do, and don't, ask.

Step 2. Ask about automated tools

QA is made up of a combination of the routine and the exploratory. Regression testing tests existing, supposedly unmodified, features and ensures that nothing is broken accidentally while making a change. Regression testing benefits from automation because the same steps and checks need to be done over and over again. Paying a person to do this is wasteful and error prone, so the service provider should have testing automation tools to handle this.

These automated tools should be more than just fast ways of entering data into the bug database. Software packages, such as Selenium, allow the QA team to write code that launches the application and interacts with it just like a user would. The software can click buttons, enter data, choose different options and then read the screen to ensure the proper responses are given. It is important to know what tool the QA team is using because your application developers can slightly modify how they build the software to make the automated testing process easier and more productive.

Step 3. Arrange for a bug database

The company you choose to outsource software development to will probably offer to let you use their bug database, even presenting it as an advantage of doing business with them. This would be a mistake. Information about bugs found and how they are dealt with is vitally important to you, so you should not let someone else control it. Getting your own bug database operational is as easy as typing in your credit card number. Just search for "Bug Database Hosting" and you'll find many options. If you don't have a preference, or don't have time to do the research into which is best, ask your outsource partner which it uses.

Step 4. Training

Don't fall prey to the "curse of knowledge." You've been thinking about and working with your application for a while, so of course it seems obvious how it should and should not work. It won't be so obvious to others. Invest the time to train the outsourcing team properly in how your application should work. Part of this training is telling them what should not happen. Anticipate frequent or common errors and tell the QA team to watch out for them.

Also, don't expect to do this and be done. This is an ongoing process, so allocate the time to do it as necessary.

Step 5. Start testing

It's time to start the testing. Send the QA team login credentials for your bug tracking service and give them some direction. Initially focus their testing on a small area they can finish within a week and then let them work their magic.

As they enter bugs into your bug tracker, you can check their progress to ensure they are focusing on the correct things.

Step 6. Internal parallel testing

It is difficult and dangerous to completely outsource all QA. Some sort of internal control should be kept to ensure nothing slips through the cracks. As you gain confidence in the external team, the parallel testing team can be phased out in favor of a single person, but it is unwise to let the outsourced team be the only QA for the project.

Parallel testing has another benefit -- it brings to light additional training the outsourced team needs. Registering bugs that are not valid (i.e., the app is working correctly) means they don't understand that area of the application.

With this in mind, it's important that the outside team and internal team get along well together. Let your internal team help with choosing the outsourced team to ensure all the personalities combine well.

Next Steps

Learn how to outsource IT support without losing control

Important considerations to keep in mind when you outsource software development

How to find a reliable outsourced testing agency

Better software arises from car engineering principles

Dig Deeper on BPA and BPM

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

What issues have you run into when you outsource software development -- and how did you overcome them?
thanx for the info!
The challenge as could be seen in outsourcing lies in not being able to trust and not having a right feedback for vendors and high turnover rates for employees at the vendor sites.
Unless you are only interested in checking compliance to a specification, outsourcing QA is potentially the biggest mistake that a company looking to outsource software development can make. Not only does it preclude the biggest benefits of using agile development methodologies, there’s also a good probability that the testing service provided by these development companies will provide no more than a commodity test effort, if that.
@mcorum - I don't understand how outsourcing QA can "preclude the biggest benefits of using agile". There's no reason the outsourced provider cannot be just as agile as an internal team. By trying out an external team with the QA duties, a manager is able to judge how they fit into the internal Agile processes, as well as the quality of the service.
I think one needs to identify different platforms to scour for clients. Maybe using different Google search operators could help benefit finding qualified leads.
Here's a radical idea. Instead of outsourcing your work, why not invest in your own business...? By nurturing and training the workers you have, you can build a stronger business with far more loyal employees. Outsourcing saves a few bucks in the short term, but does little to grow your own business or retain your employees.