I'm done writing code
I love writing code. I take pride in the craft of it. I spent years of school studying so I can get a job where I code all day.
I often think about how to write code better. I love reading about coding patterns. I enjoy researching on languages and frameworks that might change the way I think about code. I’m trying to write more about code to learn more about how I think about code. I love code.
But I don’t code everyday.
As a software engineer that doesn’t code every day, is my career a wash?
For all I know, it could be, but not because I find myself writing code less often. In my best estimation, I’m maturing in my career path. I’m finding other ways to be productive outside of coding.
What do you do instead of coding?
Have you ever sat in front of your screen thinking about what you’re about to say at standup? What did you do yesterday? What progress have you made? Are you even productive? Do you have any evidence that work took place?
These thoughts swirl my head on my worst days, like today. In fact, today marks the end of a week where I maybe wrote code only on a single day.
Activities throughout my day vary. I think. I write. I talk to people. I do a bunch of things. Just not code, usually.
I engineer.
I design solutions. I work through problems. I define requirements. I mitigate risks.
I figure out what to build. I just don’t get around to building it myself usually.
Cool, so you just make up work for your team to do, fun.
It is.
And to be fair, it’s not just leaving the grunt work for others to do. I front load the hard work. Not all the hard work. Just the work that’s hard to do when I write code.
Code is complex. Writing tests is draining. Following boolean logic is a chore. It’s tough to know that the code I write is doing what’s expected. The last thing I want to do is make sure what is expected. If I write code, I want to assume I’m writing the right thing.
So that’s what I spend most of my day doing: figure out the right thing to build.
I anticipate questions that might come up when I start developing a feature. I document stakeholders’ expectations of a feature. I use these discussions to fill out detailed tickets. I define success metrics to guide a feature’s development.
It’s hard work. It’s fulfilling work. It’s not a lot of coding.
Maybe you’re overthinking things a bit and should just start coding?
Maybe. But so far in my career, I spend a lot of time debugging code I wrote before. I find that my projects grow and grow indefinitely.
Good software is never finished, so I’m in no rush to deliver it now.
I’ve finished too many features that have been scrapped after code has been completed.
I’d rather spend my time finding the right thing to build.
I’m obsessed with this idea that changing a business process can be just as effective as automating that process with software. But you have less code to maintain with just a process change.
I don’t code. I engineer. I help build processes. And I like it a lot.