Software testing is gradually coming off age and with every new day everyone is starting to realize the importance of having a dedicated testing effort for any software project. In a company like Adobe where I manage small to medium sized test teams, there is now a much greater focus towards testing. Most of the times we have a 1:1 ratio between developer and testers which is very good but still as the project starts to wind and testing team has to test almost all the s/w every day, it starts to get tight and amid this one big question which every tester keeps asking is that
“why the hell developers can’t write a new piece of code without bugs”
which in itself is a very un-reasonable query but a more reasonable one is
“when a developer fixes a bug, why can’t he ensure that there is no side effect.”
Why ? why and more whys ??
Well, a good concise answer to first query is that , its not possible to write a new piece of code w/o bugs and that’s why Mr. Tester is hired (and paid handsomely). Fearing that my statement might lead to real deep heart-burns to software developers since there would always be a lot who would always like to think that a new piece of code can be written w/o bugs, let me put it more succinctly, a complex large commercial software product program can not be written w/o any bugs.
And the answer to second query is that ‘no one wants to write a buggy code’. As simple as that. Would you ever fix a bug with an intent of introducing a side effect, which in any case is also to be fixed by you later, why would any reasonable person would ever do that.
If you are a software tester and if you agree with me on these two things then you don’t need to read any further and my advise would to be use that time to test and find some more bugs. But if you are the one of those sort who would want to clear this forever then read on.
Why there are bugs in a software ?
Because Rome was not built in a day and you would need to live in a being-built Rome to make it the way you would want to see it. Because it took civilization as many as tons of years to develop a language or to develop communities or to know on how to live well and we are still learning. Because you still get a new version of a Honda Civic which was done such a while back. Because, software development is not about making a new baby (which mostly gets done in 9 months) but is about making a human being out of that baby.
C’mon, you are trying to mix science, or rather maths, with philosophy. If I have to write a simple program like ‘Calculator’ or a ‘notepad’ why it would have bugs. Well, yes you are right but we are not talking about 100 or 2000 or even 20K line code which does few things, we are not talking about school-projects, we are talking about something which sells for few hundred dollars, has millions of lines of code, utilizes libraries or standards or techniques which are time tested and can actually make or break someone’s day. If you have to make that kind of software, then its indeed more then maths.
While I write this, I feel all the more charged but to save the original subject from the temptation of my exciting key punching fingers, I would conclude that there are bugs in a software because that’s the process the whole software development has to do with it. Its like marriage where there is always one day where the man sleeps on couch and many days where woman fails to understand that why the hell he is excited about a Romania-Bulgaria soccer match.
To keep the discussion complete, the answer to second query is that all of us make mistakes without every intending to make one. Most of us are programmed to goof up all the while and much more when we are in duress. So take it, assume it and move on. And if it starts to kill you again then remember that ‘No one wants to write a buggy code’.
Tell this when you meet your developer next morning and believe me it would be worth it.