The Moment I Stopped Coding
When as a manager I realized it was time to step away
It was overwhelming.
I was running a project where all the engineers were located in another office with very different working hours from my own. Our overlap was still about 4 hours of working time a day, but the rest of my time was spent working through internal logistics or with client communications.
I was and had always been an active coder on projects and this was no different though now at most I was spending about 10% of my time on feature development. There was also one feature that I was particularly excited to work on and was confident that I could get it into code review with just a solid day of effort.
I came into the office pumped to work on it, and dialed into our team’s daily sync.
The Software Architect working with me informed me that they had pulled an all-nighter and finished the feature I had set my eyes on.
"We didn't want you to have to worry about it, so we talked and decided to get it out of your way." he explained.
Its been just 3 years since that happened. At first I thought that the team was simply super motivated. They had different cultural values. I knew that office was very concerned with "impressing their boss" too, so it all made sense.
What he really meant was "We built the feature because you were in our way."
— — —
As a manager you don't have time to do everything, and often as you move through the ranks the least valuable thing you can do for teams is code.
An engineer (regardless of title) who is in the codebase infrequently and working on features only in small bursts is just holding those features up. For me that one day of code would’ve been spaced across 3 weeks, meaning slow value delivery into the end product. The team I was on then was also SERIOUS about tracking velocity in Jira, and I was messing up their numbers and boards.
A couple of days after that event my manager at the time gave me headcount for one more senior engineer and asked that I put the keyboard down and step away from the codebase.
— — —
This goes against a now common idea that managers need to stay hands on. I was a damned good developer, but my team needed my other skills and between client relations, contract negotiations, planning meetings, 1:1s with that team and reports on others, leadership was a full time job. We had great talent, and coders across the board were senior. My pretending to play along was ego driven and did nothing but slow the project down.
— — —
In the three years since I've stopped coding at work, I've learned a lot, and have been able to focus on more abstract and larger goals, most importantly though Ive been able to focus increasingly on helping teams to succeed at what they do. An added bonus has been learning how to trust others to do their jobs.
As a hands-on coder while managing I would be inclined to take things over or jump in myself. Without that as an option the tools at hand are dedicated towards coaching for growth and removing impediments. I also no longer deliver features. I help teams deliver products.
So when should one step away from the codebase? The best indicator is when a feature has become a pet project, when you have pushed the deadline on your coding work a few times and moved it to low priority, but still insist you will get it done.
At this point you can be pretty certain that its not that important to the product. Most likely its greatest value is making you feel like you are still in the code.