Why it’s difficult to teach Quality to Developers

Jeremie Fleurant
3 min readApr 15, 2024

Quality Assurance (QA) is critical for software reliability, but teaching developers its nuances isn’t easy. Quality isn’t just a checkbox; it’s fundamental for product success. Let’s explore key challenges: redefining completion criteria, reshaping ticket handling, and addressing bug concerns beyond current tasks.

Photo by DISRUPTIVO on Unsplash

Redefining When a Development Task Is Complete:

I found that many developers assume that once the last line of code is written and the program functions on their computer, the job is done.

However, a done job extends beyond mere coding usually! It involves meticulously testing both positive and negative scenarios, refactoring code for efficiency and maintainability, and automating tests (unit tests and/or end-to-end tests) to ensure consistent performance.

This aspect of the job is often lacking because it is not considered the responsibility of the developer, especially true for junior developers. In my opinion, development is finished when it can go live, and it can go live only after enough testing and if it leaves the code cleaner.

Redefining How to Approach a New Ticket:

Some developers start a new task in a wrong way, I think. It’s not merely about picking up a ticket in the backlog, changing the status to “In progress”, and adding the new component or fixing the broken page.

Instead of passively adhering to the provided description, developers must actively engage with it, questioning its purpose and relevance.
It’s about anticipating the necessary tests to validate the development.
It’s not limiting your scope to the provided example page (if given) but exploring other potential areas of impact.
It’s about testing on various browsers and resolutions for front-end development, ensuring comprehensive coverage.

It saddens me to see developers rushing to do the work as written in the description, only to realize later that use cases were missing or, worse, that the functionality will not work for some reasons.
As a QA, when asked to validate a new development, it’s so easy to find a bug to report; it’s not fun anymore.
Just take a few minutes to go beyond your chrome on desktop!

Being concern by all bugs found:

Another concerning issue is the tendency for developers to overlook or dismiss bugs and unexpected behaviors within the application, even when they encounter them. They may feel that addressing issues outside of their current scope is not their responsibility.

However, whether it’s a minor bug like adjusting a component’s margin or a behavioral anomaly noticed while testing another feature, it’s imperative to bring such matters to light, especially if they warrant further investigation. Or just fix them!

It’s crucial for developers to adopt a proactive stance towards quality, whether it directly relates to their current tasks or not.

But does this mean teaching QA to developers is impossible?

Not necessarily. While it undoubtedly presents challenges, it’s essential to recognize that with the right approach and dedication, it is achievable. It requires a blend of technical expertise, critical thinking skills, and a willingness to embrace continuous learning and improvement.

I find that an interesting approach to this challenge is Quality Assistance, as it fosters a culture of proactive quality consciousness among developers, integrating testing throughout the development process and empowering them to take ownership of QA..

In conclusion, teaching QA isn’t impossible but requires acknowledging challenges and fostering a quality-driven culture. Let’s embrace the challenge and strive for a future where QA is integral to development.

A post about Quality Assistance (web archive, as links are broken on Atlassian website): https://web.archive.org/web/20221202105542/https://www.atlassian.com/inside-atlassian/quality-assurance-vs-quality-assistance

--

--

Jeremie Fleurant

QA Engineer. Writing about test automation, mostly. Exaprint.fr. All opinions are my own.