It was 14 years ago, I was in the second year at college.
A group of students organized a trip in the Romanian mountains, in the heart of Transylvania. After we got there, being young and restless, we all ordered some beers and started chatting about various topics, some geekier than the others, as we were all being studying computer science. It was not very clear the moment when two groups have been created and a polemic started between those two groups. You would never guess the topic they have picked to argue on.
"Which one is better, Java or C#?"
Well, by that time, few of us could give a proper answer to this question as we were slightly introduced to these programming languages - we were still in the Pascal and C++ era. And let's be honest, how would you answer to it in 2020 (without being subjective, of course)?
And the argument took hours and each group had its own justice. The Java lovers were still convinced that Java is the best and the C# lovers still convinced that there's nothing better than C#. Fair.
But why did I remember such an old and insignificant story? Well, because as I'm regularly talking to groups of people about software testing basics, trying to prepare them to become software testers, I'm constantly getting the following question:
"Which one is better, a tester or a developer?"
I totally get the importance of this question as these people are preparing to join the IT industry and they want me to help them pick the best career. But usually, the story kinda ends (at least in my mind) when I'm trying to get more information from them about "what do you mean by which one is better?" and I usually get two answers:
a) "which one earns more money?" and
b) "aren't developers superior to testers?"
So, silence (in my head). Again.
Before going to give you the answer to the above question (spoiler alert! I won't give you the answer, because there is no answer to it) let me address some of the questions which might be helpful in getting an idea about which one is better - the tester or the developer.
- Which one is part of the product development team?
- Which one benefits of better career growth?
- Which one is responsible for the quality of the product and which one takes the credits for success?
- Which one is more important inside of a team?
- Which one has technical skills?
As you might guess, the answer to all the above questions is BOTH.
In the following lines, I'm going to explain why "both" is the answer to the above questions.
Usually, nowadays the development teams are following certain methodologies in the way they're organizing their work such as Agile, Kanban and so on, and almost every team has in its composition at least a developer and a tester.
With regard to career growth, it much depends on every person's objectives and how can these objectives be accomplished in the business context s/he works. So that's why it does not have much to do with the role - of being a tester or a developer. Either as a tester or as a developer, you can always grow your skills or you can make the transition to other roles (such as Business Analyst, User Experience or even as architect).
Before going forward, it's important for me to mention the following: I'm reading quite often the following syntagm "developer creates the code, tester breaks it" with which I totally disagree. Because in my opinion, both the tester and the developer work together to assure and improve the quality of a product. So yes, both are responsible for the quality of the product and both take the credits for the product's success.
I truly believe that both the tester and the developer are equally important inside of a team. There is a "but" though, you might find companies who decided to give up on testers and have only developers to code and to write the automated tests too. But such a decision depends on the company's vision and business.
With regard to the technical skills involved, it is not a rule that only the developers are having them. If you are a tester involved in writing automated tests, it is mandatory to have technical skills in order to do the work.
What to consider when choosing your career?
First of all, I would suggest you make an informed decision by having a good understanding of a tester's and a developer's job description. After this, pick the one you consider suits you best as a human and as a professional, by objectively evaluating your skills and objectives for the future. You might have good and bad moments as both working as a tester or as a developer.
With respect to the financial part which is so important for all of us, keep in mind that there is no rule. It depends much on how you negotiate, depends on the moment the company hired you and how much they needed to fill the role, depends on your skills and career level.