Maker to Manager
Tales of transitioning from an engineer to a manager
When you start your career as a software engineer your path is pretty straightforward. You put your head down and focus on absorbing as much technical knowledge as you can. You try to execute bigger projects as you climb the career ladder. Later you become a “tech lead” and be charged with delivering a feature. Then comes the decision point. To go further in the ladder you have to make a choice — “technical” or “management” track.
Recently a lot of software companies started supporting the “dual” track in the engineering career ladder. You no longer have to go in to management to climb the ladder. You can continue to be a technical contributor and still grow in the organization. But when I was given the choice, I picked management. It has been an interesting experience so far.
I highly recommend reading Paul Graham’s essay on Maker’s schedule and Manager’s schedule. He talks about how an engineer needs a significant chunk of time (at least half day blocks) to get any thing done.
… there’s another way of using time that’s common among people who make things, like programmers and writers. They generally prefer to use time in units of half a day at least. You can’t write or program well in units of an hour. That’s barely enough time to get started.
This was the first thing I struggled when I transitioned to a manager. My calendar got filled up with half hour meetings wherever some one can find a slot. In addition I was also adding many weekly 1:1 meetings to my calendar. I found it very difficult to get any thing done.
Stop writing code
Then I realized something — I should stop writing code. This was very difficult to fathom at the beginning. I was telling myself that I would want to write code to be in touch with the code. I wanted to feel productive and contributing to the projects. Then I learned what managers eventually learn: “Managers are multipliers”. As a manager my job is not be contributing directly but instead empower the team to work effectively. My job is remove road blocks for the team. My job is to ensure we have the right processes in place so that the team can ship features fast. My job is to seek and provide feedback to the people in the team. If I’m effective in my job the productivity of the entire team increases and that is definitely more useful than just me writing a little bit more code.
Having said I occasionally pick up a small task from the team’s backlog. I ensure that these tasks do not block any one else. These are things that are not in any one’s radar at the moment. I feel like every manager should get some maker time — after all being a great engineer is what brings us here in the first place and we should set some time aside to do what we love.