Reactions Reveal Our Expectations for Software Quality
Truth and quality share an interesting characteristic. Both become known through reactions more than by descriptions or definitions.
An illustration is in order: Imagine a person says, “Morality is relative. What is right for one person may not be right for another.” Now imagine that same person's wallet is stolen. How should he react if he truly believes morality is relative? Not angrily—his belief prohibits him from judging someone else’s definition of right and wrong. Yet, how does he actually react?
His reaction is more telling of what he truly believes than what he says or even what he does. Often, our actions themselves aren’t even reliable indicators of how we feel about truth. After all, we all lie, but we are offended when others lie to us. Our reactions speak loudest.
How does this relate to software quality? Quality, too, is easier to recognize by our reactions than by what metrics, tools, or automation results tell us—no matter how much stock we put in their reliability.
Just as the self-contradicting relativist has real subconscious beliefs about absolute truths, so do we have subconscious models for quality in those beautiful minds of ours. We cannot fool these embedded models; we don’t even realize they are there until our reactions reveal them.
This implies that we have our “eyes on” our applications, watching them perform. This is the only way to induce a reaction, just as the relativist must have his wallet stolen in order to reveal his true expectations about the way others should behave.
We must not just programmatically check that our applications are “working,” because we don’t know what we don’t know. Programmatic checks will only reveal what we, at some point in the past, anticipated might happen; they cannot reveal what we never thought might happen, because we never thought of those things.
It is only through our reactions—from watching our applications run, playing in the GUI, picking out details in the logs, etc.—that we learn what expectations for quality our minds have given us. This goes beyond saying that automation can only catch what we coded it to catch. This stretches into what know and how we know it.
We may be fully aware that the automation we coded cannot catch performance or security issues, but that belongs to the realm of what we already know. Our reactions, on the other hand, are teachers that, like the Socratic method, stimulate critical thinking in order to challenge our assumptions and everything we “think” we know, ultimately revealing real truth.
Reactions make that little “what we really, actually, truly know” piece of the Venn diagram that is our application knowledge spread, because they teach us something completely new. Reactions also combat the tendency of our motivations to influence how we see reality.
Want to grow your application quality? Your brain already knows how—trust it.