It’s winter season and am getting close to a year of full-time engineering management. So, I’m listening to some jazz house music and reflecting on what I have learned.
While I have done tech lead roles before, this is the first role I’ve been doing people management full time, i.e. not doing the tech myself.
Every now and then in my career, I have experienced badly planned projects and, worse, disoriented teams, and I wanted to see if I could do it better. It was time for new kind of challenges.
From The Tao of Programming :
A novice asked the Master: “In the East, there is a great tree-structure that men call ‘Corporate Headquarters’. It is bloated out of shape with vice presidents and accountants. It issues a multitude of memos, each saying ‘Go Hence!’ or ‘Go Hither!’ and nobody knows what is meant. Every year new names are put onto the branches, but all to no avail. How can such an unnatural entity exist?” The Master replied: “You perceive this immense structure and are disturbed that it has no rational purpose. Can you not take amusement from its endless gyrations? Do you not enjoy the untroubled ease of programming beneath its sheltering branches? Why are you bothered by its uselessness?”
I was starting to wonder if my number of years of experience would start becoming a liability in my role as a developer, so I wanted to have experience in a different role where my impact and contribution can continue to grow.
Once I became a parent, my people perspective changed so much, that I felt I can finally do a management role. As Jennifer Dary says:
Fundamentally I believe managing is like parenting. You never graduate. You will continue to hone these skills for your entire career — delegation, patience, managing UP, building trust, etc. Even if you get decent at one in Q1, you may struggle in Q3 because the humans you are working with and for will evolve! They’re like moving targets. But with awareness and intention, commitment and a peer group of folks who are also managing alongside you, managing is incredibly rewarding and growing and the years of experiments and anecdotes they build up will make really fascinating and stretching careers for them all.
I wanted to work on longer-term initiatives (as compared to individual projects). As the Ancient African saying goes:
If you want to go fast, go alone. If you want to go far, go together.
This role is not about the tech. It is also about the tech. It is primarily about the people.
I used to remind myself of this everyday, first thing in the morning, for the first six months. I took it so much to heart that I actively avoided any coding, which was a stark contrast to me writing Erlang/Elixir code a few days before I started at my current job. I was actively avoiding doing the thing that I’ve been doing full-time for the past 13 years.
I was fighting my instincts. But I wanted to learn how to do this thing right. My puzzle was no longer technology. My puzzle was humans. I had to switch from “ignore-the-human, solve-the-problem” approach to “solve-the-human, ignore-the-problem” approach. So I reminded myself to trust my reports that they will solve the tech, the tech is not my job any more.
Caveat is that I reserved the right to veto anything or mandate anything that I felt was necessary. For example, yes, we are going to spend the time to upgrade our Python codebases to Python 3, it is necessary. But how are we going to architect this new microservice? That’s the teammate’s job. My job is to ensure they are unblocked in every step. My job is to combine my engineering experience with people-oriented focus to make the team more effective and productive, not do the engineering itself.
Remember, remember, management is not a promotion, it is a career change.
These are the fundamentals. Everything else is a distraction.
Results means ensuring projects are delivered on time and deliver the desired results, e.g. increased revenue for the company.
Retention means ensuring that teammates are engaged in their jobs, are unblocked in performing their tasks, and that they have challenging projects and career growth.
Retention also means hiring and expanding the team. What I wish I knew much earlier was that this should take up a lot of my time. This includes so many things such as capacity planning for next year’s projects, getting approvals for additional roles, actively reaching out to prospective candidates (not always possible), following up with internal recruitment team to make sure we are moving fast and discussing salary ranges and compensation, ensuring candidates are engaged during the interview process, if a good fit was found, ensuring candidates are engaged after the interview process, and so on.