I still read the code

Lots of chatter on outrage-driven algorithm based platforms (ahem… X) about the role and purpose of software engineering recently, unsurprisingly at times driven by those selling you their agent. For years we’ve been told our role is becoming redundant, that we’re 6-12 months away from extinction and that even though you still have a job, that reading, reviewing and understanding the code is a waste of your time.

I work on WooCommerce core in my full time role, and on the side I still tinker with tools and codebases of my own, just like I’ve always done. And I still read the code. Pretty much every line of it. It’s a good job I do as well, because working on a serious open source project I am able to see first hand how many PRs get rejected, or changes get requested because the proposed code is simply not good enough, breaks the product or takes the completely wrong direction. This is not to say this didn’t happen pre-AI but AI alone does not solve this problem.

I’ve tried taking my hands of the wheel on less important projects, they end up a mess (skill issue, I hear you say). I’ve also tried undertaking more narrower scoped tasks and just trusting the test suite, sure tests pass (sometimes, because the agent just rewrites them) but the solution is full of holes and is (mostly) sub-optimal. I also don’t feel comfortable not understanding the risks of future pieces of work, because I have no understanding of the ground upon which they are getting build.

That’s not to say I don’t find AI useful. I find it extremely useful, and productive. I can investigate issues faster, understand complex logic quicker, query documentation and APIs in an (almost) instant, and drive solutions more efficiently. But I work on software that businesses around the world rely on, it’s hugely important to me that what gets released is reliable, stable and performant for both them and us. Trust is built in drops and lost in buckets.

I also read the code because I love learning and thinking about solutions, I love understanding the nuances between programming languages and how they work differently. I still love elegant, easy solutions to complicated problems. I love understanding how things work, what the quirks or ‘gotchas’ are around certain features or logic and how each of the pieces fit together. I love going into a meeting or a discussion knowing whether something is technically feasible because I understand that area of the domain. Because I read it, and on occasion I wrote it with my own hands.

Subscribe to my newsletter!

Sending out weekly newsletters about things I come across on the web, my thoughts and latest posts.

Leave a Reply