Previously published on DZone
At this year’s Antwerp edition of the Devox Java conference (12-14 October 2022), I attended some talks that managed to really inspire me, which is a rare gift. It made me think of my own 20+ year career as a developer and how I want/expect to spend the remainder. I like to share these thoughts here, giving credit to the excellent speakers where credit is due. Here are my three conclusions for the impatient:
- Been there, done that? I don’t buy it. You can never have been everywhere or done everything. The Javauniverse expands faster than anyone can keep up with, so don’t burn yourself out.
- The world needs excellent craftspeople more than it needs people to manage them. Don’t become a victim of the Peter Principle.
- If you aspire to a different job only for its status and are incompetent at it, you make more than one life miserable.
Focus on Skills That Age Like Wine
The biggest challenge is to stay relevant and sane in an ever-changing ecosystem. Choose your battles wisely, I say. Software products age like milk, not like wine or a Stradivarius violin. Language mastery gets rusty, however sharp your long-term memory. Your favorite JavaScript test framework has sprouted green hairs by the time you’re back from holidays. The half-life of technical relevancy is to two to five years (Learning through tinkering by Tom Cools). Is it any wonder some throw in the towel from pure frustration in trying to keep up? Apparently, the average developer is 28 and leaves the trade after 8 years, according to a statistic quoted by Tobias Modig (Get old, go slow, write code). Standard deviation is likely to be high, judging from the more senior attendees in the audience. So, take it with a pinch of salt.
Yet whatever the exact numbers of this supposed exodus, burnout is a likely reason. For boredom, there is far less of an excuse. If you boast that the Java language has no more secrets, I dare you to take the latest OCP-17 exam unprepared. You will fail.
It’s even worse when you try to take in the entire Java ecosystem. Have a look at the Developer Roadmap and try to stay optimistic. It’s obvious that you need a strategy of radical prioritization that respects work/life balance if you want to succeed at lifelong learning. I’m a fan of what I like to call just-in-time learning. I don’t go deep with a tool or technique until I can use it in a non-trivial project. And I don’t waste precious time mastering competing frameworks that are 90% complementary in features and purpose. Instead, I invest in the soft skills that do age like wine and are sorely underrated.
Coding itself is only the tip of the creative iceberg. Coding is to development as inventing dialogue is to writing a play. The playwright needs to know the big picture and her target audience before she can let her fictional characters talk. Software is no different. There never existed any team where programmers were handed watertight specifications and turned it into flawless lines of code. It’s a Platonic ideal. Building software is a chaotic creative process where human language, not source code, turns out to be the biggest disruptor. It can take a decade on the job to get comfortable with that messy reality.
Don’t Play the Status Game
My second claim is that if tinkering with source code makes you happiest, you probably should not look for another job. Great employers value hard-earned technical experience from the trenches. They will not convince top developers to trade in a life of writing code for one sitting in meetings unless they really want it. Companies that have no enticing career path to offer their top technical talent other than management are gravely mistaken. They treat programming as an entry-level function that becomes unworthy of your experience after a while. They believe development is a young person’s game (like professional tennis), but they could not be more wrong. William Shakespeare wrote 37 plays over 25 years. Imagine he had been told after his first few successes: “Right, you’ve taken this as far as you can, time to move up the career ladder.”
There is no logical progression from coding to management any more than there is from playing the violin to conducting the orchestra. It’s a different profession, a different degree course, and even takes a different personality. Steve Jobs saw himself as the conductor of the Apple orchestra, an excellent analogy. If Apple were the New York Philharmonic, Jobs was like its legendary conductor Leonard Bernstein in temperament: a highly public, larger-than-life personality. Meanwhile, the musicians may not be recognized in the street, but each is at the top of their profession. Like Google, Apple, and Facebook, prestigious orchestras attract only top talent, and positions are highly sought after.
But in the end, money and prestige don’t matter much if you like what you do and are respected for your skills. Excellent plumbers or plasterers delight their customers, coworkers, bosses, and not least themselves. So don’t conflate excellence with popularity or fame. Do you know Jony Ive? Probably not, as he cared more about his company’s brand than his own brand, but as chief designer his influence over the look and feel of Apple products was huge. If optimal visibility in the community is what you aim for, just realize that self-promoting your unique brand is a job in itself. With 10 million Java developers, that’s a lot of unique selling points to compete with.
Tobias Modig was unhappy as a development manager. He had fallen victim to the Peter Principle and opted out. If your ambition drives you toward a career goal whose only appeal is its perceived status, it can happen to you too. You are promoted to your level of incompetence, constantly out of your depth, making more than one life miserable. This brings me to the last topic: you can’t excel at work that you hate, and you can’t enjoy work when you can’t do it well.
Hitting the Sweet Spot of Your Career
A satisfying career pays a decent wage and hits the ideal mix between what you like and what you’re good at. It’s an HR cliché, but no less true. Just realize that love doesn’t guarantee skill. I love playing the piano, but I’m still not great at it, even after many years. However, I see enough tangible progress to stay motivated. I couldn’t love something I’m terrible at. The road can be rough, but not getting anywhere is just an act of masochism.
On the other hand, it’s hard to imagine ever being great at something you truly hated doing. If your heart is not in it, you stay mediocre at best, even when you’re capable of more, and that has probably happened to all of us. If you hate your job, for whatever reason (usually because of the people you work with), often the best and only fix is moving on, because you will stay miserable at anything you don’t like doing and therefore can’t do well. You will get no respect from your peers, and certainly not from your superiors for mere staying power.
My conclusions are simple and modest. The happiest moment in any workweek is when I can sink my teeth into a juicy bit of coding or help a junior team member. Other than getting better at what I already do, I have no grander ambitions and if I can keep doing it for the next fifteen years for a paycheck, I’m happy and grateful. We are all a little vain and sensitive to the lure of status, but I will never switch jobs for the wrong reasons. Find out what you like and keep getting better at it. It’s more rewarding in the end.