Sometimes you have to step back from a situation to see it for what it really is, and I think this is particularly true of the way software developers are labelled as junior, middleweight and senior.
For some reason, it’s become an accepted part of the software development industry that if you’re a junior developer looking to get an junior level job and learn the ropes, you may end up being passed over because you haven’t got — in some cases — up to the necessary three years experience!
Sounds silly right? Junior level jobs that need three years experience?
Well that’s because it is.
Seeing this in a job advert does have its uses however. It serves as a pretty clear warning about the kind of company you’re applying to. There seems to be a growing culture in the software industry of businesses playing the job title game: slap ‘junior’ in front of any job description you publish and you can get away with paying a much lower salary.
The sad truth is that these businesses are going to find it harder to hold on to staff as new starters quickly realise their own worth and spot the gap between the value of what they are doing, and what they are getting paid. In the long run, as word gets around, they’re going to find it more and more difficult to recruit great candidates.
There’s a huge difference between a developer looking for his or her first job and someone who has been working in the industry for three years. You might think I’m advocating a new term for another strata of developer to be introduced, but quite the opposite.
From my own experience I have found it easiest to grow professionally when working within a flat structure where developers are simply called developers. There are no senior developers, no middleweight or junior developers… just developers.
Maybe it’s psychological, but I’ve found that this kind of structure goes a long way to encourage opinions and input from newer coders in meetings, whilst also taking the pressure off those who have been doing it longer who may feel (and this is often unnecessarily) that they need to carry the team and almost take on a managerial role. It means that developers are judged solely on what they know and on their actions.
This is not to say that everyone learns at the same pace. I would encourage people to consider that years aren’t a reliable comparator across developers. Due to the volume of complex technical knowledge that makes up the industry it’s not uncommon to have incredibly intelligent long term coders not know very basic stuff about a rudimentary technology. Similarly there are plenty of very new coders who have abilities far beyond what you would expect based on their time in the industry.
I’m certain that coding abilities across a group of devs after three years in the industry could look very different, based on the relative speeds at which they each pick up new material. In that case, the labels of junior, middleweight and senior are pretty unhelpful when it comes to choosing the best candidate for the job.
The answer? Employers should be gleaning information about skill levels from aptitude and developer tests coupled with interviews, rather than relying on number of years experience. As an industry, we should break free of the labels that plague the developer job search. When time is taken to find out what people are capable of rather than how long they’ve been in the workplace, everyone wins!