Software development is always, without any exceptions, a process with bugs. Many people will say the opposite, and this people are not to be trusted as developers. In all development companies their development process (mostly the maintenance part after the app lunch) can be simplified with this:
This article will try to blame a single person for a bug found in a production environment. We will have some people as the actors on this case:
It’s the coders fault
- The coder
- The reviewer
- The tester
- The release manager
Is it really? The coder actually wrote the lines of code that created the bug but they also wrote another couple of hundreds lines of code that day; who wouldn’t be confused?
It’s the reviewers fault
Nop – I would never blame a code reviewer for bugs in the code. I would congratulate them to find one but never blaming for not seeing something that won’t run. They are human beings, not compilers (or interpreters).
It’s the testers fault
As a programmer, I would really like to say yes here but unfortunately it’s a bad thing to write articles without even trying to be subjective. A tester should find bugs and this is a part of their job definition but this doesn’t mean they are able to find all bugs. Theoretically speaking an application has an infinite amount of bugs so when bugs are not countable how is it possible to ask a person to find all of them?
It’s the release managers fault
It might be, it might not be. Having a really crappy release manager might create a lot of problems – especially if he doesn’t test the release previously. So when the tip of the code branch is with a major extremely important bug that takes the application down without any kind of life then it is probably the release managers mistake. But from the other side you should also think that the release manager gets an executable – which already contains the bug, it’s been developed and tested and the release manager only needs to copy-paste it. Well the release manager should copy-paste it somewhere, load it, make sure it works, then copy-paste it in the production again and if they do this small process then no one can say it was their fault.
Bugs exist, it’s no ones fault, this is how life is. We can make then smaller, we can also hide them, we can try to fix as many as possible – but never, not even for one second, may we think they are not there.