No. I am not talking about philosophy here but as a software developer, I am asking this question to myself. Who am I? Am I a software developer or a tester?
In software development process, quite often we hear such things as application works on my machine but I don’t know why it’s not working on testing machine? Or this requirement was not mentioned in the specification? Or the testing team is not providing correct values or it works with my data etc…
I bet as a project manager you would have come across these issues within your team or as a developer you would have said such things.
How do we minimize these kind of issues? The quest to find the answer to this question gave me the answer to my original question: Who Am I? I realized that no matter how strong your software development process is, no matter how good your agile QA process is, these issues will crop up unless the developer changes his mind set and realizes that he is a tester first than a developer. So the answer to the question “Who Am I?” is: you are neither a developer nor a tester but a combination of both. I would say you should be more of a tester than a developer. You are a “Test-O-Developer”.
Now the developer ego in me is yelling at me what the heck? I am a developer. My job is to write code. I am not a tester. There is a testing team and let them do bug fixes. I will fix it. I don’t have time to code & test. –
Hey! You are writing the code. That’s cool but think about this. If you don’t act as a tester in finding out the ways of breaking your own code, if you don’t wear the tester hat & understand all the boundary conditions of your code then what happens. Well somebody will break your code. I am emphasizing: somebody will break your code.
In real life, we all don’t want somebody to point finger at us. Why the same can’t be applied when I am writing my code. It’s my code. Why do I want some 3rd person to find bugs in my code? Why should I just write code (with a minimal level of my so-called unit testing) & leave it to the testing team to do bug fixes? Why can’t I be a tester myself & find bugs in my code before I write it? Only then I can safe-guard my code from failing.
I don’t want somebody to say the tab order on the page is not working. I don’t want any specification to say the field length is 10 characters & users should not be able to enter more than that. I don’t want somebody to say my code fails when tested with production data or in testing environment etc…
These things are possible only when you think & realize that you should be a tester first then a developer.
No. I am not telling the testing team is not required. They are very much required. All I am advocating is as a developer bring in the acumen of the tester, cultivate the habit of finding issues with your code, think of ways to break the code before you code. As a developer aims for zero bugs in your code, as a tester aims to find more & more bugs. All I am conveying is to be a true developer or a “Test-O-Developer”.