I may be presented with the opportunity to be a part of an engineering-intensive QA team (unit/scenario test automation) for more pay. Currently, however, I am a software engineer, which sounds more prestigious to me. More money also sounds nice, though, but at what point is it worth it?
I don't think you need to worry about your designations too much. Do what you like the most and enjoy working on and yes money does matter sometimes :-)
Prestige is irrelevant, in my opinion. I suggest you do a cost benefit analysis of doing the work you enjoy against earning more money.
It may be you don't mind QA that much is which case go for the extra money. If you think it would be horrible, don't do it (unless there's absolute bucket-loads of money changing hands).
I took a role as a PM for about 18 months for extra pay and hated it after about 6 months.
I'm now back in a tech role and enjoying it a lot. I wouldn't do PM work now unless they doubled my salary (and even then, I'd think twice about it).
My advice is to do what you enjoy first and foremost. You only get one shot at life and, even if you make a fortune, you'll still be dead in 100 years. One of my favorite quotes is: "the trouble with the rat race is, even if you win, you're still a rat".
I was in the same situation as Pax and my advise is the very same: don't do anything you expect you don't like, or rather, love doing. People who can do what they love doing for a living are priviledged. That privilege should not be easily discarded.
Sometimes you need to do sacrifices though. You may need the extra cash for something that brings you more pleasure or comfort in the long run that the sacrifice you make by taking the "wrong" job, ie. you get your luxury car, downpayment to your new house or the wedding of the dreams.
You need to weigh in the pros and cons carefully. Usually the money choice isn't worth it.
Working in QA doesn't stop you being a software engineer. Or, more precisely, it darn well ought not to! If it does stop you being a software engineer, then there is something seriously amiss; writing good unit tests will require good software engineering skills.
Don't get hung up on job titles - there's a process I call 'job title inflation' which means that increasingly grandiose job titles are provided to or used by individuals for the same work that previously had a less grandiose name. 'Software Architects' are two-a-penny these days, for example, so I don't use the term in my job title. Also, job titles don't translate reliably across different companies.
I don't think doing QA engineering (writing tests or frameworks for testing) is worse than doing development. When I was younger, I thought QA is more boring. But from practice, it isn't. When writing the real program (the product), you often need to be more careful about the coding conventions, security, error handling and documentation. That can make very simple tasks complex and boring. On the other hand, if you are writing for QA, you can just forget all that and cowboy-code everything, because it's all just a scaffolding to get the testing done. This can be very refreshing.
Also, if your job is boring and you are a programmer using computer, then you are doing something wrong. Leave the boring part to the computers, that's the point! And if you don't know how, start inventing how just now, and suddenly it all will be much less boring.
Some questions you should think about in deciding about this opportunity are:
- Are you motivated just by the pay rise, and is the rise significant?
- Can you see any interesting challenges in the new position?
- Will you be the guru that mentors the developers into better quality, or the monkey that just does repetitive testing for them?
- How easy would it be to reverse and go back to your old job? What is the risk?
- What do you fear, and does this decision steer you into or away from it?
You're still very young, and you seem to work in a C++ shop. I'm guessing that you are working with people that are a bit older and more experienced than you. Maybe some time in QA would give you valuable experience. Career advancement is not often linear. Would you just be setting up and running tests, or would you also do code reviewing?
Don't worry so much about prestige. There's plenty of life left in you. Albert Einstein did his best work when he was a patent clerk.
Also, money is not a great motivator in the long run. If you can't make ends meet on your current salary, a raise will make life more comfortable, but you won't get filthy rich as an employee anyway. You need to be happy with what you do.
My experience is that we decide unconsciously very early in the decision process and then spend most of our energy rationalizing the choice. So you probably already know what you're going to do anyway. Why let an old fart like me tell you what to do? It's your life anyway.
I sincerely wish you good luck whatever direction you have chosen.
My 2 cents:
- Don't pay attention to the title that goes with the job.
- Look at the work that comes with it. Would you like it?
- Ask yourself: Could working in QA help you become a better software engineer?
- If you like what you are doing now, think twice before giving it up for a higher salary. Yes, money does matter. But not as much as being able to do what you like.
Do you enjoy figuring out how to break things? Are you good at it? Being good at QA and good at software development is an excellent niche - being able to think like a programmer makes your testing more comprehensive and your debugging more productive, while being able to think like a tester makes your code more reliable.
Regarding prestige: The fact that this job pays better than dev is one indication that the company values QA, which is excellent. Additionally, there are several advantages to being a programmer in QA rather than a straight software developer that you might not have considered. One is that QA engineers tend to have a wider scope than developers. Rather than spending all your time on one narrow area, you can be a little more high level and look at how the different components fit together and how small pieces of code fit into the larger picture. Another is that QA engineers - in a company that values them - have more power to get things fixed than almost anyone else in the company. As a QA programmer you write code to test code; doing so often reveals that the specifications are unclear. You will often find yourself effectively defining what the proper behavior should be because the definition of proper behavior is essentially whatever passes your test code.
So you have the power to fix things by declaring broken behavior "a bug", you have a wide scope, and you have the ability to become a true expert in how the software as a whole is supposed to work, even more so than the developers who understand in depth only their tiny piece of it. And it's more of a "people" job - you get to work closely with the developers and project managers rather than having your head down in code quite so much..while still being technical and producing technical products. Lastly, the work tends to be less stressful than software development. When horrible bugs crop up you find them but get to pass the work of actually fixing them to somebody else. The more problems there are in the code, the better you look and the more it feels like you're making progress at the same time the developers are all tearing their hair out.
In sum, there's quite a lot to like about a QA/Dev role and getting some QA experience.
If you do so, you can call yourself a Software Developer in Test or a QA Software Tools Engineer and think of yourself as producing testware - code and documents that make the code better - in lieu of software.
I know you may have made your decisions by now but for anyone who finds themselves in a similar situation:
Consider the long term affect on your career. The position you hold right now, changes your career path.
So, what the heck do you want to do?
My wife told me she liked me better when I was doing QA instead of software development. I'd be more relaxed.
There were advantages. I found a frightening bug one Friday afternoon, and went home immediately after documenting it and had a very nice, relaxed, weekend. The same was not true for the woman who had to fix it.
You have quoted straight and right;Appreciate your crisp and clear communication in sharing this thought;