A quick note in response to an email my friend Brent sent today:
I recall an earlier conversation about your position on QA – and how you were adamantly against it. Do you have any blog posts / articles that elaborate on your position? I wanted to circulate it here at [my current employer] – the devs and I have been having some lively discussion.
I wouldn’t say I’m “adamantly against it”, but I don’t think the ROI is high, and for most situations they’re not worth it. Why?
- If you’re running a web site, your users are going to find bugs faster than your testers. They run more configurations and use cases than you ever will. Use split tests, monitoring and continuous deployment to find the problems and fix them.
- If you’re using TDD, then what will testers do?
- Manual testing doesn’t scale. Think about it logically: the quality of manual testing gets worse as a product grows.
- Using testers lengthens your feedback loop, yet short feedback loops are critical for quality software development, so how does that make sense?
- Using testers promotes a waterfall mentality, and doesn’t promote code ownership.
- From a psychological perspective, as a developer, knowing that you’re “flying without a safety net” is a giant motivator for encouraging thoroughness and attention to detail.
And, beyond that, there’s evidence that automated testing will make you happier.