It’s been a while since I’ve written here. I’ve been meaning to, but things in my life have gotten busy. Maybe that’s not an accurate way of putting it. What really happened is a significant career change, and for me, change requires mind-share and a shift in priorities, at least until I acclimate and then, my mind can rest a bit. That’s the real story. Now that I have my sea legs, it’s time for some catharsis.
The Career Path
There are many stages in the career of a software developer. There’s elation with the first few lines of code and seeing something compile, even run. An entry level position getting paid to do something you would likely do on your own time anyway may soon follow. Finally, leading the development of a fresh project, building it the way you see fit. But, once you have an accomplished career, once you make it to the position of Lead Developer or Architect, where do you go from there? Where does the career ladder for a software developer lead?
Popular wisdom says the ladder leads to management or consulting. Most developers that I know abhor the idea of filling a management role. All that interacting with other humans is messy. But, some do take on the management role. The other route, consulting, doesn’t necessarily mean working for a consulting company, rather, once you accumulate a certain amount of technical know-how, you tend to find yourself in a consulting role, advising and recommending which direction to go, what architecture to use, things like that. But, I don’t think the career ladder is limited to these.
One option that I considered a while back for career growth and a touch of diversity is technical sales. Seems interesting but I never did pursue it. You could always freelance, go rogue, screw The Man! Or try your hand at a startup (if you have the stomach and naivete for it late in your career). But, from what I’ve witnessed over the course of my 14 year career in software is, you’ll wind up in a management or a consulting role most of the time. And, as you might have guessed by the title of this post, I chose management, or, management chose me in this case. I am a Product Development Manager (still sounds strange) and I manage a wonderful team consisting of 11 developers.
So, What’s it Like?
It’s very different. As a software developer, I had a task, well, mostly many tasks, but a single project to complete. Once I had a firm understanding of what was to be built, I sat in front of my screen and went into my own little world, coding away. That was enjoyable. But now, I rarely write any code because going into my own head-space with a code editor isn’t possible. It’s not possible because a management role is filled with constant interruption. In fact, it’s safe to say that this role is just that, the constant interruption role. I don’t mean that in a negative way, it’s just my new reality and it took some getting used to.
Why so much interruption? Because that’s what you do as a manager. It’s all about making sure your team has everything they need to get their work done. It’s about updating upper-management and keeping them aware of what’s going on. It’s about putting out fires. And it’s about constant communication with many people who have different interests and priorities. Compare that to the solitude of software development and you’ve got yourself a striking contrast.
Management really is all about “soft skills”. I don’t consider that a bad thing, but there is certainly a learning curve. Understanding what motivates people, what kills their drive and what makes them tick is tricky business but it’s all necessary. I spend a lot of time in meetings and in one-on-one discussions about projects, status and whatever else comes up. Much like software development, it’s a constant learning experience and I feel like a rookie, but I’m learning more every day.
What About Code? Your Skillset’s Rotting!
This was a concern I had and one that I’ve been asked about a few times. I’m not coding anymore so I’m sure to fall behind on technology, right? Not at all. I may not be writing code at work, but I have plenty of time to do that at home. Frankly, I’m looking forward to doing more personal projects to try out some different technologies (React.js for sure). My new role still requires that I keep up on current software trends and developments, so in a way, I spend more time looking into various tech that my team can use for our products.
Overall, this has been a great experience so far. It’s not for everyone. The learning curve is steep and screw ups are inevitable, but going from software developer to manager was the right move for me.