Tech people: Mentoring sucks, it’s sucked for a while, and will probably continue to suck.
First off, let me start with a little story.
i generally start my day early. Back when offices were a thing, i’d often show up early enough that the folk who keep things running would still be there. One morning i’m working away while someone was on a ladder repairing an air-conditioning duct. He’s up there a while, comes down, and walks away. A few minutes later, he comes back with someone who is definitely his senior. Senior goes up the ladder checks a few things and comes down. Senior tells Junior that he did a good job, but there was one tricky thing that he missed, then explained what it was. Junior starts peppering Senior with all sorts of questions like “how do you check for that?” and “is there a tool or technique i can use to spot for that in the future?”. The back and forth go on for a while, before Junior and Senior collect the tools and head off.
Why, yes, that should sound familiar. Basically it was the HVAC equivalent of a code review. It wasn’t judgemental. Nobody yelled or complained. It was clear, focused and deliberate because it was something that industry has built in for decades. Heck, you could argue that it’s something that the other trade industries have had for centuries. It’s also something that Tech just recently figured out was a good idea, and we are still generally terrible at it.
In my professional life of close to 35 years i think i’ve only really had one real mentor. Everywhere else i went through the usual horrible interview process, balanced a binary tree moving at some fraction of the speed of light on a whiteboard, got hired, and was then left to either sink or swim. That’s an absolutely terrible work environment. It’s like being proud of the fact that you work in squalor and know just how to sleep so the rats don’t bite anything critical. i’ve not had a whole lot of great mentoring role models to pick from. Chances are, neither have you.
Granted, i have a theory about that. Companies don’t care. Think about how many engineering managers you know that got to that position because they’d either been around longer than most or because the company was hoping that they would some how magically make mini versions of themselves. Then, either the new manager burns out and leaves, or the people under them burn out and leave. The company doesn’t care because they’ll just repeat the cycle and back-fill with (preferably) cheaper folk. (i also have a theory that companies love Imposter Syndrome because it’s a lovely boat anchor that makes you put up with crap you wouldn’t otherwise, but i’ll leave that for another screed.)
And we engineers put up with it because we have no idea how to change it or that things could be better. Surprise! You can change it. Things could be better.
Your boss doesn’t have to be your mentor. Honestly, your boss probably shouldn’t be your mentor. They sign your paycheck and are judged on your performance. They have a bias and it’s probably not in your favor.
A good mentor not only provides good technical insight, but also improves you, the holistic you. Hell, it’s why i’m writing this up. If you’re a better person, i don’t have to clean up the damage you did to the person i hire which lets me spend more time on things that matter, like making that new hire more effective and productive so that we can get more done. Likewise, i can start learning new things from that person since mentoring is a two way thing.
Awesome! So what’s the solution? Hell if i know.
i just told you that i’m a product of terrible or non-existent mentoring. i have spent the past year or so trying to work out what might work. i plan on sharing what works and what doesn’t here because this is also my mental dumping ground.
i will say that not everyone is cut out to be a mentor, but that just means that you’re missing a required skill. Senior+ devs need to be mentoring younger devs. This means having regular discussions with them where your compassionate and empathetic. You were also dumb and ignorant, so it’s not their fault. If you struggled with something, it’s not a badge of honor, it’s a system failure. Fix it. Part of your job is making junior devs into peers. If you’re not doing that, you’re a crap engineer. You’re basically a glorified calculator and can be replaced just as easily.
But, yeah, if y’all have ideas, the comments are open.