Excerpt from Chapter 9: Outsourcing Your Quality Assurance
Quality ... You know what it is, yet you don’t know what it is. But that’s self-contradictory. But some things are better than others, that is, they have more quality. But when you try to say what quality is, apart from the things that have it, it all goes poof! - Robert M. Pirsig, in Zen and the Art of Motorcycle Maintenance, 1974
It is common for quality assurance, or QA, to be given short shrift in a software development organization, especially when budgets are tight. Or as one cynical software manager told me once, “QA? Isn’t that what beta customers are for!?” (More about alpha and beta releases later.)
Sometimes QA seems like a luxury. When debating the software development budget at one of my startups, the CEO finally asked, “Well, do you want to hire a programmer to add features to the software, or do you want to hire a QA guy?” At the time, I had to hire the programmer because we had a huge list of features to implement. It was a tough choice. But we could not afford to implement a QA process without hiring a significant staff of QA engineers and someone to manage them.
In another example, a company had developed software and was getting ready for a beta release with their first customers. But the company had neglected QA. Although the work of their individual programmers was good, the entire system needed testing after the work of their individual engineers was integrated together.
The VP of engineering realized that going to market without a comprehensive test of the system would be a major disaster. An obvious indicator of the impending doom was the missing data on different screens of the application whenever he tried to use the software. Their target market consisted of average consumers who would be confused and frustrated by any missing data, odd behavior, or unexpected error messages.
How could such good engineers create such lousy software!? It is often because QA is the ugly stepsister of software development. Your software development team does not want to be bothered with testing the entire application. It is not considered a creative or “fun” part of the process. Consequently, QA is often neglected, causing mediocre software and unhappy users.
Another reason is the complexity of testing a large software application. If there are many different ways to use the software, you can find yourself without the people and time required to do a thorough job.
Perfect for Outsourcing
Outsourcing is an excellent solution to the problem of nonexistent or incomplete QA. Sometimes people are surprised to learn that QA can be outsourced. But it absolutely can, and outsourcing your QA is a terrific first step to taking advantage of low-cost offshore outsourcing.
One reason QA is such a good place to start your outsourcing is that you do not necessarily need to divulge your source code. You can deliver a binary version of your software for installation and testing by your outsourced QA team.