The great thing about software is that you can teach yourself everything you need to know to become a moderately competent application developer. The problem is that once you get to around five years of experience, you’ve gotten about as far as you’re going to get on your own. You are probably the best person on your team and your productivity is very high. And yet, you still have not reached mastery.
You know a great deal of the code you write is absolute garbage, but your bosses probably love it anyways because your garbage is still better than most people’s garbage (at least yours works most of the time). You spend a lot of time wandering the internet looking for a book or something that will tell you what you should be learning next.
When that doesn’t work you’ll start hunting for a new job where you get to work with a master level engineer who can mentor you. Except those people either don’t exist or they’re so rare you can’t find one. So your only options are all places where you’re not learning or growing anymore, so you might as well go full on mercenary and job hop for a few years to whomever is paying the highest bounty.
It’s a real shame that the attrition rate is so high in software because the solution is very straight forward. Harvard Business Review figured out a long time ago that what people really value in a job more than cool office furniture, great team members, sexy and fulfilling work, or all-you-can-drink red bull—is a competent supervisor. We want to work for someone who can do our job better than we can because that is someone we can learn from.
I’ve worked with teams who were having the time of their life building the most boring and banal systems I can think of. No little boy ever laid awake at night in his race car bed dreaming that some day he could build web forms for paying your car loan. And yet, engineers from other teams wanted to get onto our project so badly they were threatening to quit if they didn’t get a chance to rotate in. Maybe it was the lime green and magenta colored walls, but probably it was the high quality work we were doing. That system we built has been in production since 2017 and has never failed or gone down.