Brief history of Software Quality Assurance
Years ago, software testing was viewed by businesses as an overhead. There was little justification to invest when limited availability of software meant little choice to move elsewhere. You had to tolerate and work around the problems until an update became available, often years away.
Originally testing was part of the development role, often squeezed into the end of the delivery lifecycle. Little value was associated with it, something to pay lip service to rather than a core function.
What has changed?
The evolution of the internet over the last twenty years has seen an explosion in the use and availability of software across the whole of society. We have gone from using a spreadsheet at work on a large desk bound isolated computer, to carrying small pocket-sized computers linked to millions of others with us everywhere we go. With this explosion in connectivity and software availability people simply won’t tolerate dysfunctional software – they’ll move to the next app that will do the job for them.
Software failures don’t just mean loss of business through loss of custom. Software failures can lead to staggering, potentially business ending financial losses. In 2012 the Knight Capital Group lost a colossal $440 million in just 45 minutes due to a fault in stock trading software. The system rapidly bought and sold substantial amounts of stock which artificially inflated the value of those stocks. When Knight Capital then had to sell these stocks back to the market at realistic prices the losses were huge.
These negative business impacts drove home the reality of software failures and lead to a new mindset where the quality of software was an integral part of the development lifecycle.
Software Quality Assurance Today
With the acceptance that QA was an essential element of the development lifecycle, QA has evolved from a purely technical role that says a product is ready to go, to one that encompasses the entire project from start to finish. It helps organisations understand the potential problems and to plan to mitigate them. With this new all-encompassing role leaders in software quality assurance don’t just lead test teams, they need to integrate across the business. So how do we lead in this new world of pan organisational integration?
How do we lead?
Quality should be embraced by everyone in an organisation. For far too long quality was as the sole purview of the test or development teams. But everyone in a company has to contribute to quality, it’s far too important to be left to one team or function.
How do we do this? Everyone in a business organisation has different motivations. For the experienced leader in Software Quality Assurance we need to highlight the benefits in the context of those motivations: for managers and business owners we could highlight financial savings or the reduced risk of adverse publicity in the event of a public software failure; for product and marketing teams we could highlight product feature gains or improved time to market of new features; and for engineering teams we can highlight technical process improvements, better test coverage and career improving work experiences.
We may need to present evidence to justify these claims, and these can come from both internal metrics and verified external research.
Every organisation is different, and every project within an organisation is different. As a leader in Software Quality Assurance, we should avoid a “one size fits all” policy and expect to repeat the same processes or use the same tools across different projects and replicate benefits like for like.
You should draw upon your experiences across your career and use a context sensitive blend of processes and tools to generate bespoke and broad coverage of test results that can be analysed to build a better quality end product.
Project maturity, current infrastructure, third party vendors, staffing and budget are all key factors to consider when determining your approach to a project.
All too often company leaders must be persuaded of the value of investing in Software Quality Assurance. It is not always easy to demonstrate a tangible return on the funds invested.
There are three key areas a leader in Software Quality Assurance can use to talk about the benefits of investing quality brings:
Improved testing reduces errors in software. Errors are expensive. Reduced errors mean reduced fixes and reduced costs. Errors caught before release are far quicker to fix than those found in production software.
Software that has a reputation for being error prone reduces customer confidence in a business. Consumers will naturally gravitate to companies that are known for producing high quality reliable applications.
A critical issue in production software can be a public relations disaster. Beyond the long-lasting reputational damage there can be both direct and indirect financial impacts. As we have seen above faulty stock trading software can lose millions in minutes and a loss of customer confidence can lead to long term decrease in business and revenues.
When tackling a leadership role in Software Quality Assurance it’s important to be clear that it is a fundamental of the software development lifecycle. Not to be dismissed or minimised. The benefits are well established and well documented. Analyse each new project and look to deploy a bespoke test strategy to fit and finally look to get top to bottom organisational buy in. Quality is the job of the whole organisation.