“You want to know how to paint a perfect painting? It’s easy. Make yourself perfect and then just paint naturally.”

―Robert M. Pirsig, Zen and the Art of Motorcycle Maintenance

Quality? Sure, but what is quality?

In software testing, it is relatively easy to get the metrics of unit test coverage, automation coverage, performance benchmark, etc, but even with all those combined, quality could not be guaranteed.

Born and grew up in China, no matter how materialistic the party claims it is, everybody cares about Feng Shui. If we bring Feng Shui down to earth, from my perspective, it is a system based on years of experience of how to judge whether a place is comfortable, both consciously and subconsciously for humans to live in or not.

For example, it would be considered taboo in Feng Shui, if a house was facing direct traffic.

How to resolve it? Add Shishi (stone lion) in front of the house!

Why? Many analyses could be found in traditional Feng Shui books. But for myself, I highly doubt the taboo was started as a few houses were damaged by the horse carriages with bad brake mechanisms. Then the solution is kind of self-explanatory enough.

Good Feng Shui means people can feel safe subconsciously. It would be nice to have several cute stone lions sitting in front of your house, but much better to avoid building a house facing incoming traffic in the first place. In the scope of tech, good Feng Shui, on the code level, means a reader-focused development style, and on the software development life cycle level, means fast flow and a healthy working environment where quick feedback happens naturally.

Good QA could be the heavy, trustworthy stone lions, but wouldn’t it be much cooler to become the invisible Feng Shui master?

“Battle not with monsters, lest ye become a monster, and if you gaze into the abyss, the abyss gazes also into you.”

―Nietzsche

The more I think about the role of the Quality Assurance engineer the stranger it seems. The best, if not the only thing that could be assured is a quality report. Quality itself cannot simply be “assured” - it must be built, cultivated, and nurtured throughout the entire development process.

The Philosophy of Quality

Quality in software development is not unlike the ancient Chinese concept of Feng Shui. Both deal with creating environments where things flow naturally and harmoniously. When we think about quality in software, we’re not just talking about bug-free code or high test coverage - we’re talking about creating systems that feel right, that work intuitively, and that serve their users well.

A Quality Assurance engineer, in this light, becomes more than someone who finds bugs. They become architects of experience, guardians of user satisfaction, and advocates for excellence in every aspect of the software development lifecycle.

The Reader-Focused Approach

Good quality means developing with the reader in mind - whether that reader is a user interacting with the interface, a developer maintaining the code, or a stakeholder reviewing the product. This reader-focused development style ensures that quality is baked into every decision, not just tested for at the end.

The Future of QA

In an age of generative AI and rapidly evolving technology, the role of Quality Assurance continues to evolve. We must be proactive and innovative, not just reactive. We must learn to work with new tools, understand new challenges, and continue to advocate for quality in all its forms.

Conclusion

The path to quality is not through metrics alone, but through understanding, empathy, and continuous improvement. As QA professionals, we must strive to be more than guardians of quality - we must be its creators.

Fake it, till we make it.


Originally published on LinkedIn, November 2, 2023