Comment by collegeman

7 hours ago

I think you've done a good job of articulating why AI-assisted coding doesn't feel as satisfying—I agree with this sentiment and have shared it. Several ideas and experiences are keeping me afloat and making steady progress; I share them with you in case any of them resonate with you and the other commenters. TL;DR: The big shift in my mindset is from solving every coding problem myself to solving problems through a scalable collaboration—especially valuable to my startup right now because growth has been slow and we can't afford more engineers. In effect, I'm micromanaging at a certain scale that gets more work done and probably wouldn't feel good if my collaborators were human beings (who likes being micromanaged?).

I want to say up front that as a CTO, I think "the pressure to skip understanding and just ship" is a cultural failure somewhere that should be addressed by you if not by the people you work for and with. As others have pointed out here, that sort of approach to software engineering is guaranteed to create technical debt. This idea is corroborated by several articles I've read recently about the "slop" that is flowing downstream to QA teams and customers. I think as software engineers and professional people, we owe it to our colleagues and our customers to not replace working understandable software with broken black boxes.

The problem with the agile manifesto was never its mission and values. The problem with agile is the glut of terrible practices that do not scale. The problem with AI assisted coding isn't that it automates some large and tedious amount of syntax creation—it does that well. The problem with AI assisted coding is that we're trying to use it to do things that it shouldn't be doing. Almost none of the "good" work product I have seen come out of AI assisted engineering as been "one shot" solutions: planning is still a huge part of my process, and with AI assistance, I can do more planning!

The current phase of my personal development is to move from using AI assistance in one codebase on one task at a time, to using it across multiple tasks in multiple codebases. As I am writing this response to you, I have Claude working on two different problems: a complex redesign of our asset processing pipeline with backward compatibility for the thousands of assets that have already been added to our system, and debugging a stubborn defect in authentication in our Unity codebase. My approach to this is to treat these tasks like two collaborations with two other developers—my role is to guide and review their implementation, not do their work for them.

On that note, I would love to create a cultural shift here soon and start using more test-driven development in our projects. I have always loved this approach to software engineering, but I have seldom had the opportunity to put it into practice. TDD is time consuming in a way that I have found difficult to justify at the beginning of projects. But the longer a team waits to start implementing good test code, the harder the task becomes. I want to stress that it should be professional malpractice to automate TDD script design without systematic code review.

I just got back from a well-earned vacation, and the jet lag is really painful. I am looking forward to feeling better. Then, the next phase of doing more through collaboration is going to be leveraging git worktrees. I started doing this just before my break, and I have a couple of different trees ready to start building some much needed features. The worktrees and some wonderful features in Laravel make having completely separate local dev environments fast and simple, with no virtual containers needed (fast and scalable!). I am very happy with how quickly the workspaces can be created—I am to be as pleased with the work that can get done inside them.

Absolutely all of this effort is aimed squarely at the problem of creating more value for my customers and our company's founders with less time and cost. But once I have the process up and running, I intend to reap some personal gains from all of this new found productivity. I want to create games, and I want to create experiences that leverage generative AI for creating novelty and story. With the support of AI coding assistants, I feel like I'll be able to start exploring those personal goals soon. In this way, I get to unlock new avenues for personal growth in entrepreneurism and product design without taking an outsized risk or dramatically changing the course of my career.

It has taken months of experimentation and painful personal growth to get to this mental space. I hope sharing these experiences is useful to you and to others.