Contact Us


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Thank you for your interest in Cognizant.

We’ll be in touch soon.

We are sorry. Unable to submit your request.

Please try again or post your inquiry to inquiry@cognizant.com.

To boost software quality, embed it from the start

November 12, 2021 - 100 views

|
To boost software quality, embed it from the start

To achieve higher software quality levels — and achieve greater business value from it — we need to rethink how it’s produced.

Software quality is a strange animal — nobody really cares about it until it’s missing. But as soon as there’s an incident that can be traced back to a software malfunction, it suddenly becomes everyone’s focus.

What needs to happen, though, is for the focus on software quality to be there from the start. As digital technology and connectedness accelerate in the pandemic age, the challenge of inferior software affects an increasing number of industries and end users. The mechanics of software development are increasingly merging with the extended business value of what software enables. Improving software quality is thus one of the biggest and best ways companies can save money, improve their brand and generate more business.

To achieve higher quality levels for software, we need to rethink how software is produced. As in manufacturing, quality assurance activities need to be built in and monitored at every stage of the lifecycle, from the first idea through development and into production support. Doing so will ensure a market-ready, industrial-strength solution emerges at the end of the software development lifecycle.

Aligning hardware and software quality

This is particularly true for industrial manufacturers of physical products that include software, because the quality of most software is not close to the maturity and quality of most hardware.

Consider the huge strides made in hardware product quality in recent decades. Back in the 1980s, we accepted that on a long-distance car trip, something would go wrong, and we’d need to call AAA to help us get moving again. Today, though, cars require almost nothing but routine maintenance. They rarely break down, because their mechanical engineering is top quality.

When Henry Ford built his Model T, quality was not much of a consideration. But as the auto industry matured, a major opportunity to differentiate with quality emerged. And then a small player, Toyota, shifted the paradigm of mass production to “stop building if the quality isn’t right,” rather than fixing problems at the end.

The result was a dramatic reduction in costs on a cost-per-unit basis, improved brand recognition and a complete rethinking of quality in a mass production context. Toyota eventually grew to become the world’s largest car maker. “The Toyota Way” was eventually applied across industries.

No more ‘weakest link’

Today, we’re at a similar inflection point with IT. As software becomes more and more integrated with hardware, the quality of both components has to be at par. If not, the quality of an integrated system will be determined by its weakest component.

The consequences can be dire and expensive. For example, Porsche had to recall its electric car because of an error in the battery management system. Boeing had to ground the 737 MAX after a software problem in the MCAS system led to several disastrous crashes.

Software must meet the quality standards of the mechanical components it gets integrated with. The same rigor applied during the physical assembly process will have to be applied to the software manufacturing process. To get there, we have to roll out best practices that have proved successful in many projects in the past.

Correcting old mistakes

From my many decades of experience working on software quality and testing, I’ve learned how to ensure the highest software quality:

  • Sharpen the requirements stage. I’ve found that the real mistakes typically happen during what we call the requirements phase. The key is to make sure you provide software engineers with complete, consistent and unambiguous requirements before they start coding.

    It’s like building a house. The builders and the architects debate, based on the blueprints, until they are all sure they’re ready. Only then do they get the materials and start building. The same kind of conversation is happening for all products. There will be design reviews, customer workshops and all kinds of well-established reviews driven by the product owner to make sure the final version meets the market’s expectations and thus is likely to sell.

    For most IT solutions, that doesn’t happen. Instead, developers are left with vague requirements and roughly-sketched expectations. When it comes to user acceptance tests, everyone is frustrated when the version delivered does not meet expectations. Then, through many cycles, the system is gradually improved until it can be accepted for production.

  • Make quality a team sport. Building quality software is very much a team sport. It requires the participation of end users of the software, developers with the right skills and quality engineers. Together, they need to set up and maintain continuous automated quality assurance. Modern agile teams are set up exactly like that.

  • Link quality to value. Today, the keyword is “experience” — and quality is essential to exceptional ones that drive up the perceived value of a product. Think of the iPhone. When it entered the market, a typical price for a phone was around $100. Because of the vastly superior customer experience that an iPhone provided, suddenly a price of $600 became acceptable to many consumers. Quality helps to sell more of a product at better price points and lower operating costs.

  • Consider your audience. We recommend that before an organization starts developing a piece of software, it asks what kind of persona it is targeting. An old or young person? Men or women, or both? Will it be a mobile app? Should it be portable to all mobile devices? Does it require internet at all times? Such basic design questions must be answered early in the process.

    A good example is gaming software. A Sony PlayStation or Xbox uses complex and sophisticated software, but works to perfection. That’s because gaming companies have no choice. Why? Because children are very unforgiving. If there’s a problem, they will throw the product away or never use it again.
Making quality an intentional endeavor

Our most successful clients are using software quality as a differentiator and a unique selling point. The return on investment for better quality assurance is surprisingly short — and that only factors in the operating expenses for development and day-one support. Add on accelerated time to market, better customer experience and improved brand recognition, and enhancing software quality becomes the only smart move.

As military hero William A. Foster once said: “Quality is never an accident, it is always the result of high intention, sincere effort, intelligent direction and skillful execution. It represents the wise choice of many alternatives.”

This blog was adapted from a post that originally appeared on Techonomy.

 

Digital Business & Technology QA, quality assurance, software development, software quality

Andreas Golze

Senior Vice President, Cognizant’s Quality Engineering and Assurance Service

Andreas Golze is a Senior Vice President who leads Cognizant’s Quality Engineering and Assurance Service (QE&A)...

READ MORE

Related Posts

bg
Don't Miss Our Next Cognizant Chronicle

Get actionable strategy and tech insights monthly to help your business thrive.

Subscribe now
CONTACT