Why no one is solely responsible for testing...

For a long time, at least over the last decades, testers have been implicitly considered to be responsible for testing the service that is developed. After each development cycle, which lasted many weeks and months, followed a cycle of testing, which lasted for some weeks, and then the service was released to production to the end-users. If the version happened to contain any serious bugs, testers were usually "blamed" for not discovering this during the test phases. But why was this a common (mis)understanding for a long time, and perhaps still is in some companies? Why are not developers blamed for introducing the bug in the first place, product owner for not being specific enough when explaining what the end-user wanted, or was it the end-user that was unclear in his or her description of the feature? Why do we even bother pointing fingers on a specific role?

At the end, the end-user or the customer is always right. If they experience an issue with the service that you create, he or she will not say, "ah, the damn testers, why couldn't they have caught this when testing". They see the service that you create as a product that spring out from your company, not even from the team that created it, especially not segmented on who did what or was responsible for which part. What matters in the end is that the most critical bugs and issues are caught before they reach the end-user, and to be able to do that, we in the team need to collaborate on all aspects of software delivery. That is why everyone is responsible for their contributions and everyone is responsible for the service as a whole.

Consider the following software delivery team;


  • Batman, the product owner
  • Aquaman, the developer
  • Superman, the tester
  • Wonder Woman, the team manager
  • Flash, the business analyst
  • Cyborg, the operations engineer

All in isolation, (we?) they are great super heroes, each with unique super powers, like programming, testing, protecting and guiding the team, etc. Each of them performing tasks within their own domain, without help of others. But when it comes to looking at the service or product as a whole, in this parallel perhaps the entire world, none of them are able to save the world, or manage the constant invasion of bugs on their own, if the others do not chip in. To be able to do this, all of them need to continuously collaborate. They need to keep their home area as free of bugs and misconceptions as possible. Batman needs to keep the order and bugs in Gotham city to a minimum, otherwise they will infest the area and spread out to nearby areas, so he is continuously flying over his area to assure that this is kept to a minimum. Aquaman, Superman, Wonder Woman, Cyborg and Flash are doing the same in their areas. In addition Superman has the overall responsibility to help and coach the others so that the bugs are caught early, and help to reveal hidden assumptions as soon as possible. Being from another planet, he sometimes sees the world and service from a different point of view. The team regularly meet, at least once a day, in order to discuss bigger problems or invasions, and hopefully keep the world safe. Same goes for our service that we create. The only thing the end-users care about is that the service is stable, usable, and not infested with bugs (these can range everything from security issues to bugs in functionality). Same way as the people only care about that the world is safe. Only together they (and we) can achieve this, if separated it will only be a matter of time before the world go under, or our service is no longer used.

Individually, we are still able to keep our expertise, or super powers, even though everyone is constantly testing and verifying their parts and the service as a whole. If successful in this, they/we will be able to keep the world and the service in a good shape. Not bug-free, but free of critical bugs and major threats.

If the world goes under, no one will remember that it was Superman who did not manage to save the world, or missed the bug when testing late in the development cycle. No one will remember that the threat could have been caught early, only if Aquaman swam an extra kilometer to check what danger was lurking behind the rock, or failed to add a unit or integration test... When the world is gone, or the service has no users, it will be too late, and you will have no one to blame...

Comments

Post a Comment

Popular posts from this blog

How do I stay "up to date" on software testing related stuff?

Remove the automated tests that do not provide any value

Does the language we speak shape the way we think?