Steve Dower | Musings and Mutterings

On Becoming a Curmudgeon

At work, I often joke that I’ve reached the point where I get to be a curmudgeon – that cranky old person who brings up rose-tinted stories from their past. And while I make it sound like a joke, when I then go on to share lessons learned from the Windows Phone developer experience or early HPC Server, there’s certainly some truth to it.


Usually where this comes up is during mentoring sessions.

On one hand, I don’t do a lot of mentoring. On the other hand, it’s what I’m doing all the time with virtually everyone I work with.

For a few years now, I haven’t been assigned to one single project, which would be normal for an engineer at Microsoft. Instead, my focus is on ensuring that we are making the best use of Python throughout the company, and preparing our products and services for best use by outside Python developers. This is a broad mandate, and while it’s certainly interesting, it has a major downside.

Without spending a lot of time on each project, there’s very little I can publicly claim credit for. My next serious job interview (if there is one) is going to involve a lot of stories that can’t be verified, wherein I claim to have helped guide or design a product, but never actually worked on it. In some cases, there’s Git history that proves I started something that eventually became a big deal, but mostly I have only curmudgeonly stories.

Even within CPython, I somehow managed to be the longest-serving core developer out of six on 2022’s panel at EuroPython. I primarily focus on Windows and security, which really means I don’t have much of a focus in this group either. There’s a huge range of areas where I could (but don’t always) meaningfully contribute, and so I try to pay attention to it all. While I’m far from the biggest curmudgeon in that group (and we love them all), I’ve been there long enough to see decisions be forgotten, or worse, repeated.

It’s enough to drive any old person to become cranky!

Maybe you find yourself feeling the same way? Your colleagues keep trying bad ideas over and over, just in case they work this time? No matter how many past failures you can show? Congratulations, you’re becoming a curmudgeon too.

Now, how do we use this power for good?

The answer I’ve gone for is mentoring.

I said earlier that I don’t do a lot, but I’m also doing it all the time. Because I define it as training people to be able to decide what you can decide, without you. It’s about making yourself redundant from the decision-making process. This isn’t the same as making yourself replaceable, with clean code and good docs or a mapped out decision tree, in the hope that one day you can retire (or get hit by a bus if that’s your thing). It’s giving other people the ability to replace you immediately, by sharing the values, techniques and insights you’ve accumulated.

If you aren’t a curmudgeon yet, you’ve got more accumulating to do before you need to be replaced. But I’d argue that once you’re frustrated by everyone else’s poor analytical skills, you’re just about ready to figure out why and share it with those who are not yet frustrated enough.

One of my “superpowers” seems to be explaining things. I generally do pretty well at explaining complex concepts at a level appropriate to the audience, regardless of who the audience is. One day I’ll do a whole post on this with some great stories (including when I once helped another company’s exec explain his own product to his own lawyer, or more recently, explaining why Python broke numbers). But the critical piece is that I spend the effort to figure out why, and use that to focus on what’s important.

Being a mentor isn’t about getting to rant or boast to a junior or another team. It isn’t about telling them what to do when they don’t know. It’s certainly not about telling stories from the “good old days” where you were the hero and everything would be fine now if they’d only put you in charge.

Mentoring is being able to take all of these things and ask why. Why did an old project succeed while the current one is failing? Why did that person believe in your idea while this other one won’t? Why is this team choosing that path when it’s been chosen before?

And once you’ve asked why, you can draw on all the curmudgeonly experience you’ve got to find an answer. Validate it against every past story you’ve got - including the ones that your confimation bias tells you to ignore. Tweak it until the world makes sense, and then find the point where your logic breaks down and do it again. Share it with your rubber duck, with a trusted friend, or like most of us, with the internet.

Eventually, when you’ve done the time, and you’ve done the work, you’ll be ready to share it with someone who needs to hear it. Someone who will grow from it. Someone who will find their mind expanded, and will see the world differently because you made an effort to show up for them. Someone who will learn how to make good decisions without needing a decade of experiences. Someone who soon won’t need you to be their mentor anymore.

It’s not an easy job, but it’s an important job. It will make you redundant for that person, but there are plenty more who are still trying to survive on their own. It’s a job that will influence hundreds of projects, but the gratitude will be all in private.

Sounds like the perfect job for a curmudgeon.

Comments and discussion on Twitter

(Image blatantly stolen from this post about teaching kids about curmudgeons, though I’m betting the image was stolen by them, too.)