My new father-in-law looked at me with surprise and concern.
“But you haven’t even been there a year!” he said incredulously.
I couldn’t say I was surprised at his reaction. And he wasn’t the first to lecture me. This was only my second software development job since graduating and I was only at my first job for one year.
To top it off, I had just gotten married – thus the vexation of my father-in-law, who happened to have worked at the same company for over 20 years.
The next day I was confronted by my manager Robert, who put on the hard sell to keep me from leaving.
He started in a bit harsh. “You’re making a huge mistake!”
Then he softened his tone and smiled. “You really did a great job on your last project. What can we do to keep you?”
I was expecting this and told Robert I wasn’t interested in a counter offer because the new job offered me more opportunity to grow my skills.
He countered with words, not money. “But Eric, within a few years you could be a vice president here.”
Robert was obviously trying to feed my ego because that wasn’t exactly something that could be put into writing. Besides, at that time all I wanted was to write great software, not some pie-in-the-sky promise.
Later that day, my older coworker Jerome gave me a hard time as well. He leaned up against my cube wall and lectured me on why leaving was a bad idea.
“This is a good company. I’ve been here ten years and they have always treated me right.” Jerome then gave me his most serious look. “You will likely regret this.”
Looking back on it, I don’t regret it at all.
The Developers’ Job Hopping Habit
You see, I’m on my twelfth job in 22 years and I couldn’t be happier with the trajectory my career has taken in software development. The only reason I hesitate giving the same advice to younger software developers is because hiring manager attitudes’ still haven’t changed.
If a software developer’s resume displays an average of one job every two years, most hiring managers would likely not bring them in for an interview. They would be labeled a “job hopper.”
The underlying negative connotation would be that they are not loyal to a company and would leave at the drop of a hat. What manager would want to risk spending time and money to bring them up to speed and then see them leave for greener pastures?
The paradigm of software developers as long term, loyal employees needs to shift, because the majority of this type of work is project-based with a start and end date. It may turn out that a software developer stays in a job for years, but if it doesn’t turn out that way, their work history shouldn’t be held against them.
I would argue that what is most important is how relevant a software developer’s skillset is to the job opening. For example, if a manager needs someone who knows Scala with experience in coding high volume, concurrent transactions, then that manager should go find the person with the best experience, no matter how many jobs the candidate has had.
A good software developer will do everything in their power to stay current. If their employer isn’t providing them with those opportunities, they will continue to educate themselves and look elsewhere.
Sometimes that means taking a job for less money to increase longer-term prospects. I once took a lower paying job to learn a hot ERP language and it paid off handsomely when I left a couple years later for a much higher salary.
Did this make me a high tech mercenary? Maybe so, but the company I left ended up filing for bankruptcy a few years later.
Would I have been better off staying just to receive a pink slip? Don’t think so!
New Generation Coders
The younger generation of software developers has seen their parents get laid off by corporations after many years of loyal service. Frankly, it has been proven time and again that there is very little loyalty in the corporate world. Executives and managers protect themselves, their friends and the people who are critical to keeping the lights on.
So why should managers expect employees to be loyal?
This is especially true in the world of software development, where having the capability to learn and use the latest technology will drive developers to love their work. They may not love their job, or their manager or even their coworkers – but if they love their work, the company will end up with a quality product and the developer may stick around.
It is true I left the majority of jobs for more money. Call me greedy. But what I was really greedy for was better skills and learning new technology.
The reason why prospective employers kept hiring me was because I had the skills they needed and I always made sure I had the skills in high demand.
Loyalty vs. Commitment
As I moved into management, the dynamic changed because the way I found jobs was through networking with acquaintances, and even friends, who knew and respected my capabilities.
However, these same people who took a chance on me because of the relationships I had built over time would not do the same for a so-called “job hopping” software developer who blindly submits a resume.
The problem is that hiring managers have unrealistic expectations of “loyalty” and should instead focus on “commitment.” Instead of being impressed with someone who stayed with a company for many years, focus in on whether or not a software developer successfully completed a quality job on time.
If their project lasted eight months and they knocked it out of the park, then don’t hesitate to bring that person on board. They’ll likely stay committed to a project until the work is done.
And what if they leave once the project is completed?
So be it!
If a manager can’t offer them something interesting enough to stay, then let them fly and find someone who will be just as committed to the next project. If teams follow a repeatable software development process, a manager can plug in any qualified (and committed) software developer and knock the next project out of the park.
And what happened to Robert and Jerome?
Within two years the company closed the office and let them both go. They were both loyal. But I was committed!