Comment by tobyjsullivan

Comment by tobyjsullivan 2 days ago

4 replies

It’s possible for a woodworker to build a table which reliably does not collapse, even without having a third party test it.

It’s equally possible for a different woodworker to build a table which will collapse when deployed in a customer’s dining room.

The difference comes down to which woodworker I’ve hired, and how they’ve been trained.

If you can’t trust a woodworker to ship a table that stands under its own weight, layering on third-party QA isn’t really going to fix the underlying problem.

That said, cargo culting the “no QA” model is ill-advised. If a particular dev shop needs QA today, they’ll probably need it tomorrow.

mrcsharp 2 days ago

Bad analogy I think.

A table is a table. It has one core function. An argument can be made that it could be built in a way that a chair can't be pushed against it for example. But the number of such cases for a table are infinitely smaller than the number of edge cases and unexpected interactions a software system can have.

QA is a way to catch those edge cases that a single developer cannot find because of various reasons. One such reason is that devs are very close to their work and they might subconsciously not trigger the unhappy path in their code.

Testing if a table works is vastly different from testing a software system.

  • tobyjsullivan a day ago

    The analogy conveys that QA is not inherently necessary to build and ship things that work.

    It also paints a picture of a scenario where requiring QA would be more of a red flag than a best practice. It seems a tad silly to imagine a woodworker nailing boards together so they look like a table, then passing to QA to determine if the table is “good enough”, then having QA ship it back with defect reports. But this is exactly what many less-mature teams end up looking like.

    You make a good point about unexpected interactions.

    I’d argue the question for software isn’t whether QA Bad or QA Good. It’s at what level of complexity does QA become necessary. Most software teams aren’t dealing with all that much complexity (or, more specifically, inherent complexity that can’t be designed away.)

    • mrcsharp a day ago

      > It’s at what level of complexity does QA become necessary.

      This is a good point. My answer would be that it depends on how many depend on the software and what is the tolerance for unintended interactions that users discover?

      Based on which domain the software is written/deployed in, this answer will be different.

recursive 2 days ago

Third party QA should be able to simulate the customer's dining room. If the table collapses during testing, they will file a bug. It's up to management whether to ship anyway.