I was (and still consider myself to be) a professional software engineer for 12 years before deciding to take on the “exciting” new role of Engineering Manager. Management was always a big source of frustration for me as a SWE, and I came into the role with grand plans to ensure that I didn’t repeat the same “mistakes” that I saw over and over again in my management teams throughout my career. Now, I’ve learned some things.
I always thought managing my actual team would be the hardest part. How much do I involve myself in the work? How do I build a healthy team culture that encourages productivity without burnout? How do I ensure good processes are set up to deliver good software? What do I do when somebody isn’t performing to my expectations?
These things aren’t trivial, but after 2.5 years in the role I think I’ve mostly got those figured out. The far harder part has been figuring out how to manage everybody outside of my team.
A big misconception I always had was that being in management would mean I have some sort of power over how things work at the company as a whole. It turns out, at least when you’re one of 100 other low-level managers at a place, very few people care about your opinions. You are just another cog in the wheel. Other people will tell you what you need to say, what you need to do, how you should manage your team’s work. And when you say, “Hey…. Hold on a minute,” they respond with: “This is how things are, deal with it.”
And I deal with it. But this is my blog, and you know what is costing so many companies out there so much wasted money? Me, and those in my same position at low-level management, dealing with it. I spend much of my time in meetings repeating the same things I’ve said in the last 10 meetings, that are also articulated in Slack and in JIRA and Confluence and wherever else the “Business” requires them to be.
Communicate with People
I wouldn’t think at the start of my Management career that this would be so hard, but holy hell. One of the first things I attempted to instill into my team of engineers was a culture of communication. Every single person on my team knows the right places and the right channels of communication to get what they need and what they are looking for. Sometimes that’s a meeting, most of the time it isn’t.
The external Management, Product, and “Leadership” teams do not come anywhere close to operating with that same level of efficiency. Everything is bureaucracy. We need meetings to plan meetings. We need tracking to track tracking. Literally, millions of dollars are being wasted every week on 10’s of hours of meetings for things that could be a 5 minute conversation. That’s frustrating.
Software Process Isn’t Hard
Look… We’re not running a 100’s or 1,000’s person Dev team. I’m sure that comes with it’s own problems. We’ve got like maybe 25 over the entire org, if that. There’s no reason things should be so complicated and convoluted.
Here’s the roadmap for how I think we do that successfully:
- Get us Requirements: Weird that we would need to know what we need to build, I know. But this is the first step. Do we need 6 meetings for this? No, we need a Slack channel for it.
- Let us Build. Software development takes some time. Sometimes we need to give updates. We don’t need 4 hours of weekly update meetings for that. You can literally check the aforementioned Slack channel where all updates will be.
- We release the Software. Is it on time? Is is late? We’ve set up previous communication channels, and all of that will be there.
Will The “Business” Understand That
No.
My Apologies to Former Managers
The most frustrating thing about being in management, is that the general course of business doesn’t accommodate the realities of software engineering very well, despite the million’s we are making them every day. I understand the pressures and the frustrations from former manager’s of mine much better after my experience.
At the end of the day, we don’t have much power. Our status revolves around making an arbitrary spreadsheet or chart look good. That inevitably trickles down to the team of engineers working on something. And that’s what ultimately leads to the horrific micro-mangy situations that I’ve always hated as a SWE. It was never the fault of my direct managers. It was usually the fault of people outside that.