For the past three years I am working in development teams that don’t employ a professional tester. Even though there are skills I miss working without testers, still these teams manage to deliver software in good quality. Nudged by a Twitter conversation, I started thinking what were the things that needed to be in place to make teams without testers, performant.
Quality-minded senior developers
The most knowledgeable developers in the teams were interested not only in the quality of their code but in the quality of the overall solution. They introduced test automation in areas that were risky, they paired to test their code and that of their colleagues, were keen to ask “what would happen if…?” for any new user story. More junior developers followed their lead so good testing before releasing was not just part of the “done criteria”, but everyone considered it part of their job.
Small number of dependencies
The more isolated your part of the product is, the easier it is to test it (don’t know if this is proven, just my feeling). I consider this to be true not only for the technical dependencies but also for the conceptual ones. In all cases I have seen, we had limited integration points that needed to be considered so it was relatively easy to understand the impact of your change to the overall system. Working on a well-defined value stream is a really a good way to reduce testing efforts.
Having the ability to deploy on demand and actively monitoring our productive environments, was also crucial in reducing the risk of bugs affecting our users. That didn’t mean that it was ok to let a major bug slip through because we could provide a fix fast. Nevertheless, for minor things that would not hinder the end-user experience we had the ability to react in a timely manner without any real impact.
I am pretty sure that there are more prerequisites for teams to deliver good software without testers – these are just the ones that come first to mind. Organizations that decide that they don’t need testers in their development teams without having a good foundation as the one described here, will probably have a pretty hard time.
My prediction is that adopting DevOps and creating “stream-aligned teams” will probably reduce the need for dedicated testers in development teams in the future. On the other hand, there is probably a long road ahead until that happens. Only time will tell.