Why did I become a manager after being a principal engineer?
Sun 25 September 2022So I'm a manager now
Yup, I became a manager. Those that knew me as a software engineer may be surprised at that. I have been serving in senior roles for more than 5 years now. I've help my teams understand their requirements, refine them with stakeholders, and mentored young engineers just starting their journey. Placing quality and robust execution at the forefront of our day, instead of an afterthought.
Its important to understand that being a senior and a technical lead is a very important job. In fact, I would argue it is crucial to the success as an engineering team. It doesn't matter what you are building, or if you have the best stakeholders in the world. Having a tech lead that can identify weak points in new requirements, and actually work through those in a way that the stakeholders don't hate you in the end, is important.
Its also rewarding. I recently had the chance to be a tech lead at a large managed services provider. My team was staffed with incredible people, and I had the chance to come in and develop a couple of new systems, but the issue was that when I started with my teams, the trust with their primary stakeholders were broken. Their old systems worked, but they were slow, and somewhat error prone at times.
This isn't a reflection on the team, they were doing jaw dropping things with the tech stack they were forced into, but they couldn't communicate with their stakeholders. Why, that's a topic for another post, but suffice to say the stakeholders were on high alert when any change went in, and was very unforgiving of anything less than perfection.
This is a bad state to be in. Not only was the tech stack starting to fail the team, the stakeholders weren't at the table. Throughout my time we were able to rebuild the trust. We didn't deliver perfection (although we had to at first). Instead, we delivered flexibility. Those were some stressful, and great days. In fact, I still play D&D with many teammates every other week!
So why, if we were successful and I was feeling rewarded, did I go make the jump into management?
First, its a new career
Let me say this up front. Management is NOT a promotion. It isn't. If you think that because it might pay more (usually it doesn't), or because you have a fancy title, get that out of your head. When you jump to the new career, its a different job. You are a junior again, and you are going to suck. Some may be savants, and not suck out of the gate, but I wasn't one of those.
Second, what does a manager do?
Next, let me ask you, what does a manager do? The easy answer is HR stuff. Approving/Denying vacation requests, making sure people are progressing, and handling problems in the team. More than that, managers are responsible for getting things done with quality. Its the tech team that designs that quality, but the manager is the one who holds the team accountable.
You can say you have robust code, but if your ops area is woken up every night at 3am, you don't. The manager's job is, in part, to stand in that gap. Help the team understand where that quality is lacking, and developing a plan to get back on the road to success.
Managers also mentor, which I love doing. The best manager's I've ever had (I'm looking at you Matt), are the ones where I learned what they did to some extent. While a manager may not be technical, they are the bridge between technology and the rest of the company.
How does your tool/project/program/app move the needle? The manager knows, and the manager helps tell that story to everyone. They are the team's evangelist.
They also keep the team protected from crap work. You know the kind. The 4pm on a Friday ask for a "Quick report" that would take hours to generate... yeah, that kind. The manager is the shield for the team, and that is a role to be proud of.
Why I jumped
To put it succinctly, while I had a couple great managers, I've had more bad managers. Managers that demand quality, but then walk away from the table and expect a team of rag tag, beaten down engineers to deliver. That kind of manager comes back and is surprised the team is floundering and problems never go away.
I've had managers who thought they were experts, and walked my team down bad paths, only for the company to follow up and the manager throw the team under the bus.
Bad managers are everywhere.
Why is that?
Let me put it this way. I can read a tutorial on how to create a React.js context, or understand how others have built data pipelines using Hadoop and pySpark. Ever search for a tutorial on how to tell your director their pet project isn't important enough to get onto the build schedule?
Even if you found one, are you brave enough to try it?
Managing is an art form, more than slinging code or crafting new technology. Its something that is learned over time. It is both something that is passed down and something that requires failure to learn from. Bad managers often fail, and then ball up, passing blame instead of absorbing it, and the absorbing success instead of passing it on.
It isn't hard to see why. After so many times being told calmly your team is failing, and you can't make them change, you disassociate with the team. This is the path to the dark side of management.
I wanted to be a good manager. The type of manager that cleared roadblocks instead of becoming one. A manager that leads with transparency and integrity. I could have stayed in my role and complained about bad management, but decided to take a chance and solve the problem myself.
So, how did it go?
It is a struggle some days. The teams I have worked with since being a manager have had a bevy of problems. Some had clear paths to success, but couldn't seem to find the rhythm. Others had no clear shot at success, and needed help defining their path. Some were left to stakeholders without that shield of management, and while successful, were locked in a dead end job because no one was watching out for them.
Highs and lows
My first team was a group of talented contractors building a piece of software to accelerate different business units by democratizing data and insights produced by other tech teams. This was a clear mission, a mission I could actually write down within the first two weeks on that team. Their problem? They were left to determine how to do that on their own. Not just technically, but what data needed democratized and who should use it.
Around the time I came aboard, so did a product owner, and the two of us wrangled our stakeholders, asked what their problems were, and helped solve them. The team had built a fantastic proof of concept, but were having troubles with adoption and productionalization.
I was able to step in, introduce Agile Scrum, and get the team on a schedule. That was the first big thing I did for them. Take them from working massive tickets with indeterminate length and content, and got them working well defined user stories and releasing every two weeks! They had the talent, I was able to help them put that talent to use. It was great! We went from 10 users a day to over 130, all organic adoption (no management saying our customers had to use our tool). We drove errors for our stakeholders down, saved money, and got some pretty cool accolades.
The second team I took on was a team of one. They were working on a chatbot that had troubles with scale and meeting needs. It was a marvel of architecture. When it came to me, that chatbot could take 1M requests a minute and not break a sweat, but the issue was that it was getting tens of requests a day. The architecture didn't jive with the need. The engineer I took on was also pretty young, and didn't know how to bridge the gap to meet the need. Moreover, while it was architected like a beast, it wasn't productionalized well.
So, what did we do? We buckled down. I showed that engineer that operations is just as important as development, and being able to deploy and rollback changes in minutes would help him iterate and become better. We spent the better part of 6 weeks doing that and fine tuning the scaling issues. The day of the debut of the next version that gave human readable content (not just tables dumped to a screen), at the speed our customers needed, we got the order to decommission the project.
This was a very important lesson in sunk costs. The chatbot had been in development for over a year, and had delivered very little. The company (rightly so), re-evaluated the need space, and decided that having no chatbot was more cost effective, as there were other ways people could execute their business functions. It was sad. I know my engineer was crushed, and so was I. Business is about the needs of business, and sometimes it just doesn't seem fair.
The next team I took on was a team left to their stakeholders. I mean completely left, no one standing between request and fulfillment except them. The stakeholders were nice people, but the issue was they would come with whatever request came into their minds. The team (originally two small teams) didn't have anyone to say to the stakeholders "No" in a way that everyone could agree to.
What's worse, is that the team was left without a spokesperson. The team served stakeholders who made real revenue. However, no one was there to tell their story of success. No one was there to manage career progression. It meant that the team, even though they were successful, would never move up. The definition of dead end.
I had a good director I reported to, and we went straight to work correcting that. The rest of that story is left unwritten, but the stakeholders and my teammates are already have better morale.
For me personally, it's been hard. Not only are there days I leave work and ask "Just what did I do today?", but other factors like complete ambiguity in mission and role really increased my stress.
You see, as an individual contributor (IC), if you made a mistake, you could screw yourself up, or even your app. You could even screw your team over, but as a manager, mistakes are always felt by your team. Its a massive difference. Even as a tech lead, I had someone else above me that was help more responsible than me, but as a manager, the buck stops here.
I have also had to move to manage teams completely foreign to me and my experiences. Not just a different tech stack, but a different technical role. It was a different kind of engineering, and was hard to wrap my head around.
Was it worth it?
That is a good question. One I don't have an answer to just yet. I'll be honest, management is much harder than being an IC on me. My communication skills are exercised daily, and my skills at having crucial conversations is also constantly tested. Its a different world, and while some days I feel like I'm making a difference, I can't measure it by lines of code or bug severity reduction. A manager's success is measured over much longer periods.
Did my team make their goals? Are they happy and engaged? Did they leave the company? Did I give the value to the business it needed? Where did we fail and why?
You can measure that, but numbers just don't feel right to measure those questions.
It's also harder to impress. Sure, my stakeholders have said that I have been helpful, but how do I impress those who control my promotions?
Is it worth it? I was told by the first team I managed that I was good. You see, the application we built was put into maintenance due to company constraints. That means my original team of contractors was let go. I met with them after their company spoke with them...
It was going to be a sad conversation, I prepared myself for it. We started it out by me telling the team their quality and contributions were appreciated. That the app they built turned heads, and is something the company would love to pursue, but couldn't. It was like saying goodbye to a friend (even though I worked for another 30 days to spin everything down with them).
What was surprising is that the conversation took a turn to the positive. I was floored. Everyone was complimenting each other on their job, and everyone felt fulfilled about the work. I had a junior engineer on the team. This app was her first app, her first post in engineering. She said it was sad that it was going, but that she was happy she had the experience. People were actually smiling. So was I!
They then told me that the application would have been pulled if I hadn't come along and helped out. They said they learned a lot about project management from me and how to have hard conversations, and that they grew as part of the whole experience.
It was uplifting to be sure. I connected with all of them on my LinkedIn. I wished them luck in their next endeavor, and they did the same for me.
So, was the jump worth it? For that moment, even in the midst of a good decision with a crappy outcome, it was. Are there more good days than bad? Not yet.
I'm still a junior at this. I'm still learning, but I'm doing everything I can to learn more.
I'll let everyone here know about my journey as it unfolds. I may go back to being an IC, take what I've learned during my time in management and apply it as a technical leader instead. I may stay the course and try to grow into a director... who knows?
Right now, I am just hoping if you found this, that you got something positive from it. Just like I hope each of my teams also got something positive from me.
Management is a crazier road made out of ambiguity instead of concrete technology. Stay tuned to see if I can keep my footing!