Let’s face it, management is not seen by many as a sexy profession. Whether you’re reading Dilbert1 or watching Office Space or enjoying the first act of The Matrix, managers are depicted as universally incompetent, do-nothing overhead that only get in the way of the “real work”. And even if you recognize that this is just a stereotype and that strong management brings real value to the table, anyone paying attention will notice all of the crap they have to deal with, including hiring and firing, handling performance issues, and ultimately being accountable for their team’s effectiveness.
Who would want to be that person?
During the first ten-plus years of my career, certainly not me! Just let me code, maybe lead something with a few other sharp team members. Who would want to do anything else?
But then I was presented with an offer I couldn’t refuse: the opportunity to take the lead in building a new Product Management organization. And, of course, that meant not just managing the product but building a team and managing people.
And I was terrified.
Well, it turns out, for someone like me–and let me be very clear, here, this is not a career path for everyone–it couldn’t have been a better move.
To understand why, though, it’s worth mentioning why I got into software development in the first place.
So, first, make no mistake, I started out writing code because I thought it was super cool that I could make computers, like, do stuff. I mean, come on, it’s pretty amazing! Here is this complex, world-changing machine, and with just a bit of code I could make it sing and dance. That’s pretty incredible!
But when I think back on some of my earliest projects, there’s another throughline that I hadn’t noticed until I had the chance to work with a career coach who made me really think about what motivates me: what fills me with joy isn’t just solving a problem with a computer, it’s solving someone else’s problem, and in that way having some meaningful impact on the lives of others2.
In hindsight this is probably why I never found participating in programming competitions or working on coding challenges very exciting: it wasn’t the solving of the technical problem that was rewarding to me. It was the human impact of my work that mattered most. Everything else was just hammering nails, the dirty and necessary work to get to that outcome.
Once I recognized this in myself I could see that same theme emerge elsewhere in my life. During my post-secondary education years I worked as a teaching assistant, first with the Edmonton Public Schools continuing education program where we taught computer skills to teachers3, and later as a TA at the University of Alberta, running a lab for C201 (basically introduction to C). In these roles I got a little taste of what it’s like to teach, and I have to admit, it is incredibly satisfying work. In fact, as a result of those experiences, I absolutely entertained a pivot into teaching.
Because of that human impact. There is just something so pure and joyful about seeing someone light up as they learn something for the first time or break through some seemingly insurmountable challenge.
When I think about the best managers I’ve worked with, they have a number of key traits:
- They inspire others to be their best by offering a vision and clarity of purpose,
- They set up their staff for success by recognizing their strengths and playing into them,
- They work to advance their staff’s skills and expertise because they care about their people and want to help them grow their career,
- They recognize that a great team is more than the sum of it’s parts, and that building a high-functioning team is about diversity and complementary skill sets,
- When their staff achieve something great, they celebrate the success while taking no credit,
- When a staff member struggles, they absorb any blame while working quietly to help them succeed,
- They get the hell out of the way!
Ultimately, you can summarize this as: a great manager wants to have a positive impact on their people and is invested in their success4.
Of course, management isn’t all about staff management and coaching. In most organizations, a management role is a hybrid delivery-focused and staff-focused role5. As a result, in today’s workplace, the managers often must be that rare unicorn, both deeply familiar with the development and delivery of software products, and deeply invested in staff management and coaching.
That is a rare combination indeed.
Most managers in the software industry, myself included, are typically promoted out of the technical individual contributor path, which is populated with folks whose expertise is in delivery of software, not the management of staff. This is understandable! After all, it’s a lot easier to coach and manage developers if you’ve walked in those shoes. Unfortunately, that means technical managers often have no passion for staff management, coaching, team performance, and so forth, seeing it as just spadework rather than the core of the job. And their staff can’t not know that.
Worse, those individual contributors turned managers may have themselves never had a positive management experience and therefore have few examples after which they might model their behaviour. Consider that companies also frequently fail to invest in management and coaching for their managers (which itself indicates a broader cultural rejection of the value of management), and what a surprise, then, that they, too, become poor managers. And so the cycle repeats itself.
Finally, even for those managers who understand the difference between managing staff and managing delivery, and recognize the value of each role, it’s often extremely difficult to give both the full attention they deserve6. Given that executive management is often primarily focused on bottom-line KPIs that only indirectly measurement management effectiveness–revenue and profitability, NPS, defect rates, etc–and the staff management work can easily take a back seat, which only further cements the idea in the minds of workers that staff management is at best a second class citizen.
All of this adds up to a general disdain for management that understates how incredibly important the job is, and how rewarding it can be for the right person. Unfortunately, that means some of the best and brightest out there might be alienated from switching into what might be an exciting new career path, which only reinforces the cycle that creates a bad management culture within individual organizations and the industry more broadly.
So, you say you don’t want to be a manager? Well, ask yourself: what kind of impact do you want to have in the world? Do you find joy in helping others? Are you that person on your team that loves teaching the junior staff how to improve their skills? Are you often suggesting interesting ways to improve team performance during your team retrospectives? Are you noticing challenges in team dynamics and offering solutions?
Well, maybe, just maybe, you might want to consider a management role.
But the software industry can use a lot more excited, motivated, interested managers. And who knows, you might discover that it’s a lot more rewarding than you would have ever expected.
Well, until Mr. Adams’ mask came off, anyway… ↩
This actually speaks to a broader issue I have with the technology industry, which is that I strongly believe all problems are people problems, and technology is simply a tool in helping us solve those problems. That is, technology is never an end unto itself, it is always a means to an end. But we live in a moment dominated by an obsession over the creation of technologies, first, and understanding their impacts second. The recent wave of large language models is a perfect object lesson in this kind of tech-centric thinking. ↩
One of my fondest memories of this time was using the internet training module to bring up images from the Mars Pathfinder mission, which was, at the time, absolutely mindblowing; not just the mission itself, but the fact that, for the first time, we could all follow the mission in real time right there on the internet. ↩
Which, in my opinion, is a huge, industry-wide mistake. Ultimately, coaching and mentoring staff, and managing delivery of product, are completely different skillsets, and it is and has always been ridiculous to assume the same person can do both things. ↩
I’d argue these two roles are actually frequently at odds with one another, as having delivery responsibilities can make it very easy to fall back into bad habits of micromanagement. ↩
In fact, if an internal transfer becomes available, ask for a commitment that you can return to your previous role so that if it turns out it doesn’t go well, you have a backup plan. ↩