“Testing is harder than Development” : Gerald Weinberg 1933-2018

“Testing is harder than Development” : Gerald Weinberg 1933-2018

This entry is part 4 of 4 in the series Building a career in test as a developer

I won’t pretend that I knew Gerald Weinberg, and to be honest I am not sure that I had heard of him before his passing last week. However, the tributes paid to him, especially by Joe Colantanio, awakened me to one of those people who any tester really should know more about. I encourage you to go and read some of them, (There is a listing of a few here) but learning a little about him has reminded me of one of the most obvious things that our industry often seems to miss.

 

Testing is harder than Development

Testing is harder than developing. If you want to have good testing you need to put your best people in testing. Your smartest people and maybe a little different type of person, someone as we said who listens better, talks better, so it’s a very exceptional kind of person that makes a great tester.

If you believe in that kind of thing then you should reward them better than you reward the developers. Instead, I go around and I find that people habitually pay their testers less than they pay their developers. That’s the number one thing that is not understood.

Gerald Weinberg

 

It is simple to see why good SDETs are in short supply.

Some companies (generally the smaller ones) have the ability to negotiate pay according to your ability and worth to the company. Others have to work within a pay scale that has been researched and agreed by people who seem to have no understanding of the industry and the current job market.

After some time in a previous role I was moved onto a pay scale where the progression for SDETs required me to demonstrate that I made the same increase in skill:

  • in testing of a (non coding) tester

and

  • in coding skill of a developer

making the same step up the payscale.

In return I was to be paid at the same rate as the (non coding) testers which was considerably lower than that of the developers of the same seniority. In case that wasn’t enough I was also informed that technically I was currently being overpaid (even at the next grade) at the salary that I had initially been employed at.

At the same time we were recruiting for additional SDETs to work with me. (Recruiting on the new pay scale of course.) We interviewed a number of candidates, but none came close to matching even my level of coding skill, and we were looking for someone more senior. Conscious of the fact that there was far more test automation work to do than I could possibly achieve myself this left me in an impossible situation. After a number of discussions expressing my dissatisfaction at this state of affairs I did the only thing that I could: Click that button in LinkedIn that says to recruiters that I am open to new opportunties. My inbox exploded overnight and within a couple of months was able to chose between roles at two of the most exciting young companies in the UK for a very significant pay rise.

So instead of a team of SDETs working within the team, they were left with the problem of having none.

Am I exceptional? No I don’t think so. But I am a capable coder with a passion for writing quality, well architected code as well as a passion for testing and a thorough understanding of the test process. I was not looking to move, and I was learning fast, but with a young family I couldn’t afford to sit around and hope that they came to their senses. I reckoned at the time that it was costing me nearly £200 a week to stay working for them. Is being happy and comfortable in your job worth that much to you?

 

Typical SDET / Developer in Test job description

Taken from a role that I was contacted about recently:

Key qualifications
Minimum 3 years of software development experience before moving to testing and automation
Working knowledge of a programming language
Experience in developing and running a Continuous Integration system

The italics are mine. The number of advertisements that include statements like this is high in my (admittedly limited) experience.

 

Consider this scenario:

If you are responsible for hiring and maintaining a team:

You have a talented young SDET: They work hard and learn the ropes, quickly progressing through your pay scale all the time adding value to your business as their tests and risk assessment allows your high cadence of releases. Sooner or later however they are going to reach that point where it plateaus. I’m guessing that this is either as they achieve the title ‘Senior’ or possibly just before.

If your company pays them less than a developer, you are now in trouble. If they have any ambition, they will soon realise that making the switch to development is the key to better pay. Of course, if you don’t want to risk losing them, you may well agree and allow the change. Now all that training and those specialist skills are gently being forgotten as they get to grips solving problems in your release code base.

Of course Test Development is not glamourous and it may well be that this was their ambition all along, but you may just have wasted years of training up a specialist and then end up employing them in a general development role.

 

So what’s my point?

If you are an employer:

Filling SDET roles is hard. Be prepared to pay for it. If you don’t others will. Its called to job market for a reason. A good SDET can become a good developer, but many developers have neither the skills nor the motivation to become good at test automation.

Make sure that you have the ability to offer what is needed. Recruiters have a finite pool of SDETs to recruit from. If your pay is not comparable to developers, you will not get the best candidates: If they are looking, others are offering more. Oh and it’s not just about the offer you can make on the day to the right person. If the initial offering is too low, the good candidates probably didn’t even reply to the recruiter reaching out to them.

Of course if you have a good SDET in your team, look after them: Recruiting a replacement will cost you far more than a pay rise! This is one of those things you should be tackling the execs about if it is beyond your pay grade.

 

If you are an SDET / Developer in Test / Test Automation Engineer (or other magician):

You are a specialist developer with unusual skills that are in high demand:

Even if you are not actively looking, a well written and up to date profile on LinkedIn will ensure that you will never be short of recruiters tapping you up for new roles. Politely decline until something comes along that piques your interest, but build up that network; They have a list of clients looking for someone just like you, so keep them up to date on when you might be looking, where and how much would turn your head.

if (2018)

If you can keep your head when all about you
Are losing theirs and blaming it on you;
If you can trust your tests when all devs doubt you,
But make allowance for their doubting too;
If you can wait for green and not be tempted to ignore,
Or, asked about coverage, don’t deal in lies.
When scope creeps, you go write more,
And yet don’t look too good, nor talk too wise;

If you can review – and not make pulll requests your master;
If you can comment – and not make criticism your aim;
If you can meet with triumph and disaster
And treat those two imposters just the same;
If you apply that analyser of which we’ve spoken,
To catch those mistakes that make traps for fools,
Or watch the tests you gave your life to broken,
And stoop and build ’em up with open source tools;

If you can make one heap of all your test
And risk it on one u-turn from the boss,
And lose, and start again with your best
And never breath a word about your loss;
If you can calm the heart beating in your chest,
To build a test framework up in Git.
If you can fix that flaky UI test,
Soon the complaints everyone will forget.

If you can talk with devs and keep your virtue,
Or walk with founders – nor lose the common touch;
If neither bugs nor broken builds can hurt you;
If all devs count with you, but not too much;
If you can fill the unforgiving build
With integration tests, you oughta –
Own the code base for you are skilled,
And – which is more – you’ll be an SDET my daughter!

 

If you are a recruiter:

Build that network:

It seems that just having the word ‘Selenium’ on your LinkedIn skills list is enough to keep your mail box busy. Please don’t be offended that you may not always get a reply. Don’t spam, but a couple of genuine, non form emails over a period might just get my attention and a chance to connect.

Keep in touch:

Get a feel for when someone might be ready for a move, or when that perfect fit job does come along. I owe my software career to date to recruiters who found my profile and felt that I could fill a vacancy for their clients. Recruiters who had read my details enough to be able to explain to me why I was exactly what they were looking for. Each time I have put myself out there I have been found and persuaded to apply for roles that I never thought would even consider me. Given that on each occassion I had multiple offers within a short period the window is short so you had better bring your A game.

 

TLDR:

If you are an SDET

  • Do not settle for earning less than an equally skilled coder working in the production code. Know your worth!
  • If you are ambitious, don’t let yourself get too comfortable: If you are not progressing in both pay and challenge in your current role be prepared to move.
  • Follow me on Twitter (@AlexanderTDunn) or keep checking here for my next few posts on ways to accelerate your career.

 

Series Navigation<< Opinion: Automated testing is not testing.
Comments are closed.