Many moons ago, in a galaxy very close by, I was promoted from Senior Engineer to Junior Manager. I reflect on this now as members of my team grow into Tech Leads and Managers. Here is part of my story.
One of the hardest parts for me in transitioning from a developer to a new manager was letting go.
Cool widget? I wanna build it!
New Framework? I wanna try it!
New language feature? I wanna learn it!
I, I, I
Like most new managers, no context was given when I started the position. I went from productive coder to manager in a seamless transition that didn’t have any official pomp and circumstance nor ceremony or celebration. No horns, no champagne bottles, no title change. No training. Small company. Just me, a couple developers and maybe an intern.
So, awesome. I’m “promoted”. But, ummm, what am I supposed to do? What is my focus? My goals? My individual tasks? Should I still write code? What should I be doing now?
What about the team?
As an individual contributor, my primary thought on the team was “what are we building together” and more specifically, “what is the part of the thing that we are building, which I am responsible for?”. Was I selfish? No. Self-centered? Maybe a bit.
When you are early in your career it always feels like you have to prove yourself. I always felt like I had to be the best, the smartest, the brightest. Work harder (and longer) than everyone else. Be that ninja, that samurai, that wizard. It took you 15 lines? Nah, I wrote it one.
Aren’t we almost bred to be competitive?
As an individual contributor, it was easy to measure my impact. Lines of code, tickets resolved, bugs fixed. I could measure that, I had ownership, I could control it. If there was something new I wanted to learn, I could just put my head down, put my headphones on, vacate the world, and code until the end of days (or ‘til the office got too cold because the building turned the heat off).
So when I first transitioned to a junior management position it was hard because…well because…because do I still get to do the cool things? Do I still code? Is the new person going to do all that cool JQuery stuff (I told you this was years ago), will they learn all the new Flash animation techniques? What about me?
Me, me, me
What is that feeling? That creeping, sinking feeling? That flare I just felt. Is that…jealousy? No, no way. That’s just my competitive nature. Hardened over years of being expected to be the best in the room. I want to be good, get better, push myself. Right? I’m not upset that I won’t get a chance to work on any of this stuff personally, right? Right? Well…
So I sat with that feeling. And sat and sat some more.
Then I got up. I worked. I read. I failed. I reflected. I asked for help. I pushed. I grew.
The first rule (in my book) of being a good manager is caring.
As a manager, you don’t have to be perfect. You don’t have to be an automaton that robotically solves every issue and never gets tired. You don’t (should not!) write all the code. You don’t have to be the best technical mind, the best coder, or the smartest in the room (frankly, imo you probably shouldn’t be).
But you do have to give a damn.
You have to care, you have to be present, and you have to put people first.
Can you let go?
Can you care about the technical (and personal!) growth of others the same way or even (GASP) more than your own?
Do you care about the overall team and what you collectively deliver over what you individually achieve?
Are you OK with ambiguity? Of not being able to judge your personal success by lines of code, but rather by the blossoming of your mentees? The growth of your direct reports? The products shipped by your team? The promotion of someone you manage? Of leading with passion and enthusiasm?
Do you give a damn? Do you care? I mean really truly and utterly care?
If the answer is yes, you have the potential to be a good manager.
Early on in my management career I had to learn to let go. So what if it wasn’t me who literally wrote all of the source code? Isn’t the goal to help the business, create an engaging experience for the user, and build/ship great products? Isn’t the goal to see everyone grow?
Isn’t the best way to become a 10x developer by empowering 5 developers to be 2x better?
The first rule (in my book) of being a good manager is caring. Care about your people. Care about their success, their growth, their likes and dislikes. Get to know them. Support them. Help them succeed. Be their advocate, their coach, develop them and empower them to achieve their goals!
So when I said I had to let go, it wasn’t (just) the jealousy or my immaturity. Nah.
I had to let go of my ego.
I had to put our collective goals first. The team first.