Hacker News new | ask | show | jobs
by 3am 5470 days ago
I wouldn't advertise you don't have a QA team.
2 comments

I agree, and I disagree with their rationale. IMHO, just because every line of code is covered by a unit test doesn't imply that the product is adequately tested. Errors can occur at more systemic levels via integration of well tested components. Furthermore, developers have blind spots and hidden biases and can't fully compensate for the lack of an aggressive QA person who is trying to break your code.

On the other hand, they're clearly doing something right, so far.

I agree with you so much that I wrote a substantially identical response to a sibling comment, with the exception being that I neglected to congratulate them on their success. Clearly what they are doing is working for them right now. I have spent years testing payment systems, and it isn't easy. They must have an exceptional group of developers.

I wish them continued success, but I encourage them to start looking for a rockstar QA/release engineer.

They didn't say that they ONLY write unit tests. They possess an automated test suite that covers multiple levels of application integration and acceptance checking, in which "unit" is only the first line of defense.
Why shouldn't they? With TDD and pairing, I'd say that their developers are the QA team.
Well.. I disagree, but I wouldn't have downvoted you because it's a fair point.

It's a bad idea for developers to QA their own code for a number of reasons. 1) Developers have cognitive blinders, like everyone else. They might not test for something that they is unlikely 2) Some errors can be impractical to catch outside of top level integration testing (getting into unexpected states in state machines or race conditions) 3) There is a conflict of interest between deadlines and meeting requirements.

I have seen companies reach 100+ developers using this approach, conclude it's unsustainable, and be forced to make exceptional efforts to build a QA team. I believe reason 3 is the biggest risk.

Eek. I believe in TDD, but a QA team adds a whole other layer of checks, that you cannot automate. Especially, when developing any kind of UI, there is no substitute for a grumpy QA with a detailed test plan.
Developers by definition are not QA. And TDD and paring is very poor substitution for the proper QA.