The quality of a product or service is of greatest importance for any business. It is quality that enables companies to earn a good reputation, keep existing clients, and increase a customer base. To ensure high product quality, businesses need a thoughtful quality assurance plan. Good quality assurance systems are not always expensive. For example, successful technology start-ups have found that most quality objectives can be met with efficient automated testing systems integrated into the deployment pipeline. This article seeks to discuss the topic of quality assurance for small organizations, and point out the areas of high leverage.
Small businesses and start-ups often find it hard to put quality assurance into action well. However, it is the small companies that will face the most serious problems if a mistake is made - these small companies rarely have a varied project portfolio and could be forced to end their business due to a single product problem. Small businesses may not spend time on quality assurance systems due to:
- Not having enough staff
- A budget which does not allow for much money to be spent
- Too much confidence in development staff
- Not having enough time
Good quality assurance systems, actions, and staffing reduce the risk exposure for software projects, improve the chance of earning money in the future, and can actually reduce cost (e.g. through spending less on customer service and expensive fixing of problems after the software is released). Do the financial calculations for your team, and seek neutral opinions for how effective quality assurance systems can have an effect on software project risks, expected revenue, and costs.
In doing the financial calculations, you may find out that the return on investment isn’t as much as you had hoped. Or perhaps the cash flow situation makes projects with high starting costs difficult to finance. Yet another option is that using good quality assurance systems looks likely to turn out well. In any of these cases, small businesses should be giving extra attention to their quality assurance activities. Where can costs be less and what parts of a quality assurance system offer the greatest return on investment? Are there immediate benefits or easy targets that present great opportunity?
Distributed testing is a strong possibility for quality assurance on a budget. This could take many forms, including hiring an external organization, using quality assurance contractors/consultants, or crowdtesting. A big advantage of the first two is that an external organization may be able to provide better service at a lower cost due to environmental factors (e.g. local labor costs), specialization, and economies of scale. Crowdtesting is the newest idea among these, and generally involves an open call for testing to a wide-ranging, large number of people. Crowdtesting differs from beta testing in that the testers may not be existing users of the system. For organizations with a great reputation and good connections to the open source community, people may be willing to freely offer their time in testing the system. Benefits of crowdtesting include:
- The testing is user-centric and holistic
- Testers from outside the company means a new opinion of the system from someone who has a neutral view
- Crowdtesting often needs very few company resources (staff, computing, etc.)
Automated testing is at the core of effective quality assurance systems, and these systems don’t have to be expensive. For those who know little about automated testing, the list below details some basic advantages.
- Consistent testing rigor and reliability, because there is no chance for human error
- Money saved for repeated tests and performance testing
- Better use of manual testing staff on higher-value work
- Easier to measure test coverage
Automated testing is not guaranteed to be successful, and the quality assurance community has many stories of automated testing plans that were just cancelled after continued budget/schedule overruns and not enough traction. Bring in some expertise through consultants and contractors - there are just too many ways to develop a weak automated testing system which you can’t keep going, and too few ways to develop a clean, changeable, and supportable system. For organizations with little budget to spend, think about hiring a smart, motivated intern, then give the intern lots of time and space to learn best practices before getting started on the system. Once the continuous testing system is worked into a continuous integration or continuous delivery pipeline, the maintenance costs will typically go down and it will be more natural for developers to take some ownership of the system.
Distributed testing and efficient automated testing are good approaches for small organizations to greatly improve quality without requiring a large budget. As an organization grows, the quality assurance systems will of course grow with it. There is no answer that works for all in quality assurance. Get started, try some things out, learn, and change as you need to. Soon enough, you’ll have systems that produce a level of product quality that your organization can be proud of.