Last updated on January 17th, 2023
A couple of months back, Volkswagen CEO Herbert Deiss had to leave the company. One of the reasons leading to his ouster was “poor software quality.” Wouldn’t this reason have been unthinkable a couple of years back?
Incidents like this show that Quality Assurance (QA) is gaining more importance among all organizations as they all become increasingly software-driven. Even as applications become more complex, the need to engender a culture of high quality is growing more pervasive in software organizations.
But software companies are still releasing their products without “testing their code adequately,” Shaju Balakrishnan, Head of Quality Assurance and Testing at Forgeahead, points out. In fact, Forrester Research confirms that “most code makes it into production untested.” Developers are unit testing less than 50% of their application code. According to the Consortium for Information & Software Quality (CISQ), poor code quality causes operational failures that cost businesses up to $1.56 trillion.
So, how can software organizations build a quality culture? Let’s explore it in more detail.
What Is a Quality Culture?
Quality is no longer the responsibility of any software testing or QA team. It’s more of a collective effort. It’s determined and defined by a collection of working behavior where every employee strives to perform at their best. And that’s as good a definition of Quality Culture as you can imagine.
In the realm of software development, a quality culture means adhering to strict methodologies that are known to produce accurate outputs. In this working environment, every team member cares about improving their work quality and makes decisions to achieve that objective.
Quality culture in software development is what differentiates a high-quality app (that customers love) from a bug-ridden app (that no one uses). Companies that foster a quality culture deliver the best product for their customers and achieve their business goals.
But what prevents software companies from achieving this objective? Let’s discuss the challenges.
Challenges to Building a Quality Culture in Software Companies
Software organizations need an integrated approach toward building a quality culture that involves multiple teams and stakeholders. Here are some of the major challenges that hinder a Quality culture in software companies:
Inadequate Product Testing
As Shaju points out, “testing less is obviously due to the pressure to meet release deadlines and overcome go-to-market pressures.” However, he adds that “there’s no real justification for testing less” despite the time pressure.
Like application development, QA and software testing are crucial in any SDLC. Early testing in the software development cycle can detect and resolve quality issues before they cause project delays and higher costs.
Lack of Employee Communication
A lack of two-way employee communication can cause a decline in product quality. Lack of effective communication results in information gaps, impacts the workforce morale, and limits employees from proactive contributions. For a positive quality culture, software companies must communicate with all product teams and gather their feedback.
Unwanted Human Bias
In a report, Google highlights the problem of developers’ “excessive pushback” against code changes suggested by employees from a minority race or ethnicity. The report mentions how human bias costs Google over 1,000 developer hours each day. To resolve this challenge, Google recommends anonymous code reviews.
Additionally, project managers can automate repetitive processes independent of human opinion. Organizations can also modify (or replace) these processes with any change in circumstances.
Next, let us look at how to build a quality culture in software organizations.
How Software Companies Can Create a Quality Culture
Software development companies can build a culture of quality by clearly defining their organizational values and business objectives. For customer-focused values, companies must encourage their employees to adopt a quality-centric approach no matter which product they are working on. This can range across functions like product design & development right up to marketing and customer support.
To realize a quality culture, companies must create alignment between teams based on empathy. Every team needs to define the term “quality” in the same way and not have different definitions. Initiatives such as cross-functional pairing sessions can help different disciplines to work together and share their ideas. For example, product designers and developers can pair to fix any design “tweaks” and build interdepartmental empathy.
For a strong quality culture, organizations must build a clear hierarchal structure with easy-to-understand business processes. For example, a flat hierarchal structure can empower employees and encourage quality initiatives. Using performance analysis, software companies can identify their strengths and weaknesses and leverage data to improve their system.
As product quality gains more importance, QA teams need to test for an even more bewildering array of technology factors and conditions. This is why quality teams must define a new agenda and use their influence as decision-makers to establish processes, policies, and best practices that ensure the creation of high-quality software.
Additionally, software companies can build a Quality culture among employees by:
- Striving for continuous development that is adaptable to changes and market dynamics.
- Training employees on the relevance of a quality culture and initiate activities that reinforce these values.
- Speaking to employees about what a “culture of quality” means for their aspirations.
- Promoting quality ownership where every employee is responsible for developing a Quality culture.
To summarize, software development firms can achieve a Quality culture that promotes collaboration among various teams. The end objective is to deliver high-quality products to the end-user.
As the head of Quality Assurance at Forgeahead, Shaju Balakrishnan emphasizes the importance of software testing before releasing products to the market.
At Forgeahead, we offer quality assurance services that go beyond simply software testing. With over 22 years of industry experience in QA, we can maximize your test coverage and evaluate any existing gaps or inefficiencies in your software products.