It’s a tale too often told. A young developer shows up bright eyed and bushy tailed to start a new career in software development. There’s code to create, documentation to write, and problems to solve. The world is a never-ending adventure.
Before you know it, twenty years go by. By then, just about all of the developer’s colleagues have moved into management.
Hands-on work is for the young. They can do the all-nighters. Their energy is boundless. The aging contributor who just wants to create has become the oldest person on the team. She wonders if it was a mistake to stick with the code. Maybe it was better to just go into management.
The story’s not unusual. In fact, I wrote about it in a previous article in which I made the argument that software development is no country for old men …. or old women, for that matter.
But there are exceptions to the conventional thinking. There are people out there who’ve made the conscious decision to stay close to the code and not to go into management. They’ve created lives that are satisfying and prosperous. And they continue to create and contribute. Their stories are worth knowing. So, I’ll share. The first person that comes to mind is Charles Petzold.
If you’ve programmed Windows, chances are you’ve used one Charles Petzold’s books. He’s written various definitive guides for programming Windows. In addition, he’s written other books about software and the history of computer programming. His book, Code, The Hidden Language of Computer Hardware and Software is an engaging read.
Recently, I had the opportunity to I ask Charles why he stayed with code and never went into management. His response was thought-provoking:
Between 1985 and 2014 — when I joined Xamarin as a full time employee — I was a freelancer, and I thought of myself more of a writer than a programmer — except when I needed to do consulting — so the idea of management never occurred to me.
I guess the equivalent of management for a freelancer would be starting my own consulting firm, and hiring employees. Or even starting a software company and trying to market something. But I simply don’t have the entrepreneurial gene.
My brief experience as a manager (when I worked for NY Life between ’75 and ’85) made me uncomfortable. The interpersonal relationship was awkward.
I like working. I don’t like “managing” others. It seems like a strange word to use when referring to other human beings.
Wow! You’ve got to admire the unfettered honesty. It is indeed thought-provoking.
Another person who made the conscious decision to stay close to the code is noted technology writer, Steven J. Vaughan-Nichols.
Steven J. Vaughan-Nichols, aka sjvn, is an internationally known technology writer and industry analyst. He’s been writing about technology and the business of technology for a long time, since CP/M-80, one of the early operating systems for the personal computer. Sjvn is considered a trusted authority by many because he stays close to tech. He too has steered clear of the management track. He elaborated:
In my case, I went from being an OK programmer to being a decent sysadmin and finally to being a pretty good, if I say so myself, technology journalist. I tried management every step of the way, but the bottom line is, I’m a mediocre manager. I could have faked it — I fear many IT managers do just that — but I knew I wasn’t good at it. I have zero interest in doing lousy work.
Again, another instance of unfettered honesty. The same can be said of dotNetDave.
David McCarter is a noted developer and Microsoft MVP (Most Valuable Professional). Dave has written a number of books and published many videos about computer programming. His YouTube series, dotNetDave Explains, is a hit among .NET developers. Dave has been coding for a long time and has no intention of doing anything else. For him, it’s the challenge of continuous learning. He explained:
In any career I’ve done, I’ve always wanted to progress. If I’m not progressing, I’m not growing. The natural progression of a developer is beginner, intermediate, senior, and then maybe a lead and then maybe into management. Since the early 2000s I’ve known this, but have purposely avoided going into management. I like coding too much. As soon as you go into management, you stop coding. The reason I like coding — and I’ve talked about this in my books and conference sessions — is that it’s like guitar playing. I can never learn every song. There’s always something new I can learn. Programming is the same way. This world changes everyday. Coding is a way for me to learn. And, as I’ve said many times, the day I stop learning is probably the day I die.
Dave is a example of a life lived in the pursuit of continuous learning. He’s influenced many over the years. Younger developers are following his lead. Take 32-year-old developer and architect, Derek Zott, for example,
Derek Zott is a programmer who has been at it since he was 15 years old. He works at a well-known software company. I met him through my wandering about the Internet. As I talked to Derek, I was taken back to a time when the code was everything, when the principal ambition was to make good stuff. Derek said:
Yes, I plan on staying in development doing hands-on coding. To me, that means at least 1x a week, I’m in code. My guiding principle is that if I’m doing good work — quality of design and its impact to the customer/business/organization — my career path will work out for the best. Moving to management doesn’t give me the perspective, freedom or creativity I need to make an impact.
Derek sees a very viable career path staying close to the code. His response is refreshing. Given his dedication, it’s fair to imagine that he’s going to make some significant contribution to the profession.
There’s an old joke in coding circles that goes like this: One of the biggest fears of a true software developer is not getting old, it’s waking up one day and finding out that there’s no more code left to write.
Software development is both an art and a science. It requires a unique type of creativity. The truly gifted developers — from coders to SDETs, system architects and product designers — are rare. They’re also driven. They create because they have to. It can take a lifetime to achieve greatness.
Yet sadly for many, software development is perceived as a career with an expiration date. The conventional wisdom is that you spend your younger years slinging code and then move onto other things, maybe management, maybe even becoming a CEO. I call it the Bill Gates path to glory.
But, there is another path forward that is just as challenging, lucrative and prestigious. It’s the path taken by the likes of Steve Wozniak, Martin Fowler and Grady Booch. You stay close to the code and do the work that needs to be done in the pursuit of excellence. You spend a lifetime in the creative endeavor. But just as importantly, your contributions will serve as stepping stones that allow others to do work that matters. For those who have stayed close to the code, such reward is worth the endeavor.