Thoughts On Developer Longevity
How many developers over 40 do you know? For quite a few of you, the answer will be 0. For those of you who do know of one or more developers over 40: how many of them are good? If you know any good developers over 40, then do yourself a favor: start picking their brain and figure out how they keep their skills sharp. Once you've done that, do us all a favor and publish it somewhere because there really aren't that many older developers that are any good in this industry.
There are 2 big reasons for this. The first is that too many developers move into management after a few years, either because that was their goal from the outset (and like it or not, many people still think that's what developers ought to strive for) or because they sorta got into management by accident. In the latter case, we're talking about good developers that kept performing well whenever they were given extra responsibilities. Before they know it, they're locked in meeting rooms the majority of their time and hardly have any time left for coding, even though some of them would probably prefer to be able to focus on coding more often. In both cases, these people cease to be active developers sooner, rather than later.
The second big reason is that a lot of long-term developers kinda start thinking they pretty much know all there is to know and stop learning new ways of solving problems, or keeping up with what the rest of the developer community is learning. They carry themselves as if they've seen it all and solved pretty much every kind of development challenge already. They keep using the same techniques and approaches for years and years, thinking "why change a winning team?". And while their solutions might work and might even work great, the implementations might be outdated and/or wasteful. At this point, the developer's value starts decreasing and will keep on decreasing for as long as the developer remains unable (for whatever reason) to keep his skills up to date.
I don't know about you, but I'm not exactly interested in either of those paths for the rest of my career. I want to keep coding for as long as I find it interesting and fun, and more importantly, I want to make sure that my skills don't become outdated. I believe I bring a lot of value to the table as a developer, and as I get older I'd like to make sure that I keep increasing the value that I bring to my customers. Not only through experience, but also by staying up to date with how the rest of the industry is developing software. The question is: how do you do that? How do you prevent becoming one of those "trust me kiddo, I've been writing code this way for 20 years and dag nabbit, it works"-veterans?
Obviously, I don't have a definitive answer because I've only been working as a developer for 8 years. But I do have a simple plan that I hope will enable me to continuously increase my value as a developer:
Keep feeling stupid
Once you think you know it all, you're pretty much done and are only harming yourself, your customers and the poor people who have the misfortune to work with you. Instead, keep reading blogs and books by people who are smarter than you, who are talking about things you don't understand. When you're reading their material and their code, you'll probably feel stupid. Which is great because those are the times when you are most open to learning new things. Keep reading until you get it, and then, start experimenting with what you've just learned. Keep doing this over and over again. In short: Keep feeling stupid, it's the only way to keep learning.
Question what you know and think, all the time
When it comes to software development, pretty much all knowledge has a limited shelf life. Everything you know right now about building software might be completely irrelevant 10 years from now. You probably don't even need half the things you know now 5 years from now. Allow me to go even further: half the things you know now might actually hurt your ability to build good software 5 years from now. Who the hell knows, right? Make sure you frequently question what you know. Every approach, pattern, practice or whatever that you like right now, needs to be revisited from time to time. Does it still make sense now? Are there any new factors in play that change the situation or the context that led me to think or feel this way? It's OK to change your mind, you know. Be especially wary if you feel the same about something for more than a year or two... you might have stopped feeling stupid, which isn't exactly a smart thing to do.
Again, I can't definitively say that this is the best approach to achieving longevity as a valuable developer, but I think I'm gonna take my chances on this.comments powered by Disqus