Today...I finished two things
Tags: sre, productivity
Published: 2019-11-05 03:59:33

Today I finished two things. The first thing I finished was being the tech-lead of a project I had worked on for several years. And the second...was a book.

**The Journey So Far**

I'd been a tech lead for 2, almost 3 years working on a business system my (SRE) team developed long before I got involved. The team was only recently formed after a bunch of Network Engineers made the jump to SRE. Naturally, our first stab at the system worked just well enough to solve our problems. Naturally, we shipped it and that's when our problems changed.


Since then, I've spent my time evolving the system to solve the new problems (err...meet the new requirements). I methodically documented all requirements I could think of, collaborated to discover and refine others, and won agreement on both requirements and a new architecture/design. I lobbied for and built a team of SRE and SWE to help execute the overhaul (5 others in total).

**Systems Analysis**

With the project well underway with healthy contribution and progress, I decided to do a little refactoring. The system I was refactoring was the team and, more importantly, myself. I began to notice a decrease in my productivity the cause of which are structural/organizational and personal. 

Firstly, I noticed the system had a bottle neck whose root cause was me. As, TL I am the keeper of the history... I know where all the bodies are buried (because typically I had the shovel). Point to any line of code and I can tell you why we did it that way and why it's broken. During code reviews, I can point to all the bugs the new code would introduce and map to a specific issue we had in the past. I was decent in that regard. But I was a bottle-neck. All the designs needed my opinion, all the changes needed my review, all the bugs needed my triage. (At least it felt that way).

Secondly, I noticed the decline in my productivity was accompanied by an increase in stress, frustration, and general feeling of being overloaded. My interest in learning decreased as well--I couldn't remember the last time I reviewed a design, read a paper, or watched a technical video just for the fun of it-- which made me sad inside because I love learning just for the heck of it.

The root causes, I decided were structural and related to the organization the job role. The role-related issues arise from the fact that, at my company, SRE time is a 50/50 split between operations and projects. Organizationally, SREs on my team often carry 2+ projects. With two projects myself, that meant I actually only had 25% of my time to be a tech lead (technically I was also tech-lead of the other project too 😏). So as an SRE in this org I was subject to constant interrupts coming from within the team ("Hey, you got a sec, quick *question*"), from stakeholders ("Hey, you got a sec...quick **escalation**), and from the org ("Hey you got a sec, quick **random mandate of dubious import**). Combine the walk up conversations (25% of my day), meetings (50% of my day most days), and oncall (50% of my overall time) and the distractions are endless. I'd start a bug fix and almost immediately be interrupted either by a person or an oncall shift...super unproductive. I started to work from home twice a week just to get any real work done or had to hide out at work in some random place. Yet curiously, I was able to amplify overall team productivity, at the cost of my own.

**Burn Out**

I noticed there was a never ending stream of unfinished things. Escalations to write, questions to answer, bugs to triage, cls to review, features to write, things to learn etc. A standard 8 hour day wasn't enough so I made my days 10 hours, 12 hours, 14 hours...weekends none of which made my home life easier or made me happier.


**Refactoring**

Naturally, when we see a problem we get some data, do some analysis, and start to fixing right? Right!

I stopped working from home on *work* stuff. I reasoned that off-work hours are my time, and I should spend my time doing things that make *me* happy. And that's what I did...I learned frontend development. It felt good to be learning something again. But that made the days longer and me unhappier as it took it's toll. I learned a lot and can say I know enough about JavaScript to complain about JavaScript (looking at you variable hoisting).

I also consolidated my project portfolio at work. I reasoned that if I am effective as the TL of two projects I should be 2x more effective as the TL of just one. So I stepped down as the TL of the other project (8 months back) and got a modest productivity bump. But I hadn't *really* stopped being the TL of that other project, I just stopped being 100% accountable for it. On paper someone else was the TL, but I was still very very active in leading the project.

But today, I finished with all that. I stepped down as TL from both projects.

**I Finished**

I finished being a TL today. Really finished. As of today, I'm just a plain old contributer. The project is still underway and I am looking forward to help push us through to landing. In a way I feel hopeful and optimistic. I can learn to be an IC again. I'll have far fewer meetings which means more time to focus and learn. I can attend tech talks again. I can give them. I can document the things I've learned, mentor, think, design, engineer. I'm glad I'm finished with all that. I have a lot of other stuff to start 😏.

If *you* finished this post, then congrats. I'll tell you the book I finally finished and the ones I'll be starting next:

I finished "The Joy of X" by Steven Strogatz, a wonderful overview of math complete with history and contemporary applications. I plan on starting "How to" and "What if?" both by Randall Munroe (author of the venerable XKCD comics).