RSSSubscribe now to receive the latest on Application Release Automation, DevOps and more.

Quality Assurance: The Most Undervalued Piece of DevOps

The importance of investing in QA and high quality automated testing in DevOps is greatly undervalued, according to technology entrepreneur Vu Lam. In this insightful article he explains why cutting corners on QA will cost you more in the long run.

Software works the way it was designed because of a group of downtrodden, undervalued and unsung heroes.

Often dismissively described as testers, these champions of 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’s 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 $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’s 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 study, the cost of fixing a bug post-release can be 100 times 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 their focus. The best possible software should evolve from this process but it simply can’t 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 the 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.

Decline in QA Clout
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?

True Cost Is Hidden
The truth is that proper testing takes time and it costs money. What many companies are missing is the fact that proper quality assurance now 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 using 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.

This article, Quality Assurance: The Most Undervalued Piece of DevOps, was re-published from SYS-Con Media.