As a developer there seems to be a theme of switching jobs every 1-2 years. I personally hate switching jobs. I hate all the hassle of interviews, paperwork, forms, moving your stuff, learning new systems and people. It all just sucks.
I think most developers given the choice would like to stay put. The problem is that most employers dont realize the need to retain talent. I have seen this a million times so far in my short career.
What happens is that after a year any given developer has gained so much knowledge and experience they would need a 25% raise just to be able to get what they could get to switch jobs.
Here is an example:
A Junior Developer gets a job making $60,000. Over the next year he learns how to build RestAPIs, he learns in depth T-SQL, and really becomes an expert in Source Control. At his annual review his employer offers him a very generous 10% raise because he has become very valuable to the company.
The problem is, He has become even MORE valuable to another company. With his 10% raise he now makes 66,000 per year which isn’t very much for his new and improved skill set. The other company that is looking for someone with these new skills is willing to pay $75,000. What do you think the developer in this example would do?
All things being equal or “nearly equal” she will probably take the job with the higher salary. (I switched pronouns 😉 )
The impetus to break ties with a current employer has to exceed a certain amount. I have begun calling this the “nudge” factor. Basically if I am making $75,000 and I am offered another job for $76,000, unless there is some other factor at play like the new place being closer to home, or having a cereal bar in the break room, I am not going to switch for $1,000. This has a lot to do with the opening paragraph of the post.
$1,000 isn’t enough “nudge” to get me to switch jobs. I have found that the number is usually around $5,000. For me the extra $600 or so per month is worth the move. Anything less than that and I am staying put.
Hopefully, there are some HR people reading this and they try and realize that they need to pay their developers a decent wage. Offering a couple of thousand dollars to a developer will ensure that you can retain her for longer.
This trap doesn’t just happen to Junior Developers but Junior Devs are more likely to accept a job at a lower payrate than a Senior Dev. For most of us this is our first or second professional gig so most of us will take whatever we can get. Companies use this to their advantage by offering a Junior Dev the lower end of their budget.
A company might have a budget for a Junior Developer of $80,000. They lowball the offer they extend to their best Junior Developer candidate and he accepts the job for $60,000. The company thinks that they have saved a great deal of money but what they have done is just gotten an employee at a discount because that employee is going to get a ton of training for free.
After a year on the job they are going to have to offer this employee a $10,000 – 15,000 raise or risk them moving on to greener pastures. Most companies need to realize that if they don’t pay well then they need to keep developers around by some other means. Computer purchase program, healthcare, gym membership, mass transit passes, location, flex time, WFH, etc. are all things that I consider when balancing two jobs.
Keep your employees, especially Developers, happy and it will end up costing you much less in the long run.