Insights from Our Experts
Assuring software quality is not an option!
Imagine you are an airline company and are obliged to fly passengers for a round trip from the US to India for the princely sum of 15 dollars. Such an embarrassment befell a leading American airline several years ago. Around that time I got a frantic call late one night from a friend who lived in the Bay Area as I did then. He called to inform me about a major retailer’s website from where I could purchase a fully loaded Sony music system for as low as 40 dollars. By the time I had pinched myself awake and logged into my laptop, the site had crashed, inundated as it was by a deluge of disbelieving customers.
You get the message, don’t you? Production errors costing customers tops dollars is the name of the game here. 1500 became 15 and 400 casually dropped one zero!
Omission of a single hyphen in the instruction code is said to have caused NASA’s inter-planetary probe Mariner I to explode in 1962, causing an instant loss of 80 million dollars. Science fiction writer Arthur C. Clarke called it the most expensive hyphen in history. Then there is the 500 million dollar fine imposed on a leading drug manufacturer by FDA for want of clinical trials compliance that I read about in the early ‘00s. On a minor scale perhaps, the billing department of a utility company that I worked for in upstate New York sent erroneous rates for printing its customer bills and ended up with 30,000 printed bills that just had to be shredded. Assuming a bill cost 50 cents to print that amounted to 15,000 dollars down the drain. It made more sense for the suffering company to employ 5 QA engineers at $ 3000 a month and preempt such errors than incur the wastage.
Ah, QA engineers, did I say!
Well, the term should not be new to any responsible industry client. Mission critical applications like in NASA employ 1 QA engineer for 1 developer. Healthcare applications handling life support systems might have more QA engineers than developers. Still human fallacies tend to happen, in magnitudes big and small. And the problem is compounded by inadequate testing and uninformed testing.
Most customers are happy to live without insisting on rigorous Quality Assurance, as long as the going is good. They might insist on coding standards and a presentable ‘look and feel’ for the design, especially when it comes to web and mobile applications. Smoke tests whereby business users at the customers’ end ensure that nothing ‘catches fire’ when moved to production has become de rigueur.
Test Plans map to Requirements Specification. The latter is a rare entity as many QA Managers painfully realize. As a fellow member of the QA trade once told me in conspiratorial tones, Requirements document is a double edged sword. One could always place the blame for delays in test execution on the lack of availability of the said artifact. Major lesson in here for the thinking customer!
A paradigm shift has happened from the era of Spiral and Waterfall project management models to today’s level playing field of Agile projects. The team members are more empowered and hierarchy is fast disappearing. In this scenario the onus of quality is even more distributed among all the team members.
Independent QA, call it testing or validation or what you like, has its role to play even in the renewed scheme of things. The Quality Assurance person is psychologically attuned to break everything. I mean she destroys to create. That is just a means to an end – the end being a clean project delivery of course. Defect slippage for her is anathema; rework and patches are grave evils to be warded off. She can bring about the necessary objectivity in assuring quality by 1) never losing sight of the big picture of what is being delivered 2) not clouding her vision with code, pseudo-code and other brick and mortar that go into building the application and 3) sticking to the end-user perspective. In short the QA is the client’s ‘our person in the project’, so to say. Nobody knows the pulse of the business better than your friendly neighborhood QA engineer. Quality Assurance is about not only knowing the syntax of the application but also its semantics. If you doubt it ask this beleaguered video rental company (yes such businesses existed!) in North America that was once slapped with a 42 million dollar lawsuit. Reason was that its website projected the misleading image of a defaulters’ paradise through its ad (for a particular seasonal product, an information the ad inadvertently left out) which grandly proclaimed ‘the end of late fees’.