As you will have seen from last week’s blog article, we recently went to the TechExeter conference. One of the sessions that I attended that really piqued my interest was a talk on replacing testers with developers by Dave Longman.
This subject, once you get past the contentious session title, is something I’ve been thinking about a lot lately. The premise comes down to modern testing practices, such as automated end-to-end testing, needing development skills to implement.
Is it easier to train testers with development skills, or would it be more effective to train developers with tester skills? Dave felt that it was the latter. Developers already test their code when they write it, so let’s get them thinking more like a tester. Let’s review the traits of a good tester:
- Domain knowledge
- Analytical and logical thinking
- A ‘test to break’ approach
- Great communications skills
- Awareness of the business impact
- Taking the customer’s perspective
Surely, developers need all these skills as well! Dave appeared to be suggesting that with all developers acting as QA, we don’t need a separate dedicated QA team and he gave a couple of examples of larger organisations with this structure. In the end, he was looking for no dedicated testers, a controversial point!
Developing and testing go hand-in-hand
Well, the majority of the logic I agree with: to be a truly successful developer, you need all those tester skills. To deliver modern testing practices, you absolutely need the combination of both skills sets. At the basic level, the sooner you fix a bug, the cheaper it is to fix.
If you consider the feedback loop associated with a developer writing code and addressing a bug, if they spot the bug during development, e.g. during unit testing, they are already in the code and it can often be a quick fix. If the developers are also working on integration tests and end-to-end tests, they are still closer to the code than if a release was handed over to a QA team to manage and then issues were raised later.
Quality Assurance is still essential
However, the true value that a dedicated QA team provides is in their independence. Their way of thinking differently to the developers who wrote the software, to seek out more obscure bugs. They are able to take more of a customer’s perspective. This is harder for a developer when they might also have to be battling with low-level issues deep in the codebase. We should get the developers to do all the modern test practices, which frees up the QA team to really focus on delivering business value, not spending all their time dealing with ‘but it worked on my machine’ type issues.