WavebreakmediaMicro - Fotolia


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