ferroman@systems: ~ — fish 3.7
← ~/blog

QA is supposed to annoy

A steady team has a steady flow of bugs. When the flow stops, it is not quality — it is a filter that runs before the ticket exists. QA should file everything, including 'this looks wrong': triage is cheap, and the observation is not recoverable.

The thing that has always surprised me is that there is no constant flow of bugs. Even in software this size, there should be a constant flow of bugs. Its absence is not a sign of quality; it is a sign that something is filtering.

They are not reporting everything. They report what they think is real, and they do it carefully: go and ask a developer, is this okay? this seems not right. And the developer says yeah, that’s not okay. And only then do they file a bug.

Every step of that is well-intentioned and every step of it destroys the signal. The filter runs before the record exists, so nobody can see what was filtered, and the filter is a developer’s opinion about their own work.

QA should be looking for understanding. Which is why bugs like “I don’t think this looks right” are very good bugs — they are the ones that capture the moment a person with fresh eyes could not make sense of the product.

Yes, it might end up as a hundred bugs of varying severity. Some small, some typos, some that turn out not to be bugs at all. That does not really matter for QA. Triage is cheap; the observation is not recoverable once the tester has moved on and rationalised it.

I would create a hundred issues a day and nobody could stop me. So I genuinely don’t understand why they aren’t doing it — they are asking permission to create a ticket.

Nobody wants the bureaucracy. I was exactly like that myself. Do you want to do the job, or do you want it documented?

The answer is simple: I want both. Because while you are doing the job, you are seeing things, and nobody else knows about them.

And this is the part that gets the direction wrong. Filing everything is less annoying for developers, not more — because the alternative is a tap on the shoulder for every observation, an interruption each time, and a conversation that leaves no record. A ticket is asynchronous, triageable, and closeable. The informal check is the expensive one.

And the volume of reported observations is one of the few honest signals about how the team is doing. If people are only reporting what is certain, you find out things are bad when someone burns out.