The reason your software works the way it was designed to is because of a group of downtrodden, undervalued and unsung heroes.
They are often dismissively described as testers, but these champions of exactitude and precision can be more accurately termed “Quality Assurance.” They set the bar high and work hard to ensure that the software you buy is easy to use and efficient. Without their expertise, you would encounter a lot of inaccessible, bug-ridden releases.
QA is frequently undervalued by software developers. It is often seen as an unnecessary expense, a drain on time and resources. The truth is that finding and fixing bugs is an unrewarding task that demands a great deal of effort for very little palpable return. It is tough to calculate the cost of bugs in your finished product, and even tougher to take your eye off spiraling costs and a slipping deadline.
It’s been 10 years since the U.S. Department of Commerce’s National Institute of Standards and Technology released an RTI study that estimated software bugs were costing the U.S. economy US$59.5 billion a year. Much has changed in the last decade. Automated testing is more common, new development methodologies encourage a different approach, and tools for recording bugs have improved dramatically. Despite all that, the cost of software bugs remains high.
Don’t cut corners
It is understandable, especially in the current economic climate, that companies are increasingly outsourcing QA and even cutting corners in order to rush their software out the door to consumers. After all, we can always let the consumer do the testing and then patch after release, right? Wrong!
The cost of fixing bugs increases dramatically after release, and the damage you can do to your brand by releasing unpolished software is frightening. Rushing to market is a false economy, and expecting consumers to be happy about serving as unpaid beta testers is an overused ploy that can easily backfire.
According to an IBM and Rockwell Automation study, the cost of fixing a bug post-release can be 100x higher than if you discover it early. Many developers are seduced by the ease with which software can be patched nowadays. The growth of the cloud, improvements in application deployment and the always-connected nature of the average user combine to give the false impression that bug fixes and improvements can be delayed until after release.
While the ideal might be to frontload your schedule and spend enough time on design to avoid creating any bugs in the first place, that’s an ambitious aim. QA represents a more realistic middle ground between excessive planning at the start and burying your head in the sand until the negative feedback starts to pour in.
Get them involved early and listen
It used to be the case that software was fully developed before QA was called in: the waterfall approach. QA teams testing software would use the original design as the basis for a set of test plans. If the original design was perfect, and it didn’t change during development, then this approach would work. In practice, that’s an extremely rare occurrence. An old rigid approach of design from the top also doesn’t allow QA, or anyone else for that matter, to suggest improvements and tweaks.
Most software development nowadays allows for changes on the fly. If someone suggests a great way to simplify the user interface or even a new feature that would improve the software, then there’s a good chance it will be accommodated. Some methodologies even rely on this approach.
Agile development and extreme programming are focused on an iterative approach. Each new build is analyzed and assessed before the next iteration is fully planned. This is a highly flexible approach that allows the development team to prioritize its focus. The best possible software should evolve from this process, but it simply cannot work without a good QA team. Instead of postponing bug fixes and extensive testing and evaluation to the end of the process, agile development requires developers to make it a part of each iteration. Every build should be as bug-free as possible.
While testing software and entering any defects found into a database for the developers to review is still a big part of QA, it’s not the whole picture. A good QA team will approach a new software build like an end user would. They will try to evaluate it with end-user expectations, and this can throw up some invaluable information for developers.
Insightful suggestions for new features, user interface tweaks, and feedback on overall usability can prove to be the deciding factors between success and failure for a development team that is too close to the product to truly assess it.
QA’s clout decline
Life can be tough for QA teams. It is their job to argue with software developers and project managers under serious pressure to ship. In theory, the software should not go until QA says it is fit for release. In practice, it often ships without QA approval.
Internal QA departments are often lambasted for the delays they cause. If you don’t have a steady stream of software to release, then a dedicated QA department may be a luxury you can’t afford. QA is increasingly outsourced to third-party companies with no real clout when it comes to delaying a release. They can offer cost-effective, round-the-clock testing, but without the power to insist on fixes and changes, is the quality really assured?
The truth is that proper testing takes time and costs money. What many companies are missing is the fact that proper quality assurance before release is far better than disgruntled customers and repeated post-release patching. The true cost of bypassing QA or hobbling them is tough to calculate, but it could be a lot higher than you think.
To recognize the value of QA means to use it as a measuring stick on the true progress of releasing a quality product. While development can tell you how much of a product is developed, QA can tell you how ready your software is for prime time. Understand the importance of their input in the process, and you will reap the rewards.
Vu Lam is CEO and founder of QASymphony, a developer of defect capture tools that track user interactions with apps. He was previously with First Consulting Group and was an early pioneer in Vietnam’s offshore IT services industry since 1995. He holds an MS degree in electrical engineering from Purdue University. You can reach him at email@example.com.