Our Goal Was Never To Write Code
Kevin Smith
VP of Engineering
A memo I sent to the product development team earlier today:
It’s now abundantly clear that we’re living through a step change in software development thanks to AI. We’ve been embracing and experimenting with the latest tech for the past several years to varying degrees of success, and you know I’ve been deliberate in my approach. Something massive changed with these models in the last few months, and it warrants a frank discussion.
As the staff engineers showed us a few weeks ago, it’s now finally possible to drive the AI agent and see your intent reliably carried out — even when fine-tuning a UI — where even a few months back the agents would clobber your work.
It’s not perfect, but it doesn’t need to be. Remember that high-quality software is both valuable to the business now and easy to change later. With the latest models, we can confidently change the software incredibly quickly. And that makes all the difference in the world.
For as long as I can remember, writing code was by far the most critical constraint in making software. It was slow, expensive, and error-prone, and every role in product development worked to minimize that time and expense. Exhaustive requirements gathering, detailed plans covering every edge case, high-fidelity mockups, story points, backlog refinement, the list goes on. The goal was to resolve as much ambiguity as possible upstream, so that when someone finally sat down to code, they were transcribing a decision that had already been made. Everything was structured around the scarcity of coding time.
But our goal was never to write code. That was always a means to an end.
So what happens when writing code takes an order of magnitude less time? Which parts of our process no longer make sense? Which pipe dreams are now cheap to try? How quickly could we get to working software, even an unshippable prototype, and iterate from there? What do we need to have in place to make all that possible?
We’re not building the entire car by hand anymore, as much as we loved doing that. We’re building the factory that makes great cars, with the human in the loop where it requires the human touch. It’s time to reimagine your role in building that factory. (And I’m not just talking to the devs here.)
This isn’t a prediction about what’s coming soon. This is here. AI is already fundamentally changing how we make software, even if the models never improve from where they are today.
If all this is unsettling — if you’ve long taken pride in meticulous PRDs, beautifully designed UI mockups, hand-crafted code — I get it. As Kent Beck said in a podcast published a few days ago, we didn’t choose this. We developed skills that were in high demand. Now changes from the outside are disrupting all that, and it’s understandable to feel some grief over it. But even though we had no say in the changing environment, we can choose how we respond.
We can’t see around corners, so we don’t know what the future will hold. The best way to respond to this moment is by stepping up to create that future rather than waiting for it to arrive.
Let’s use the full toolkit. Let’s push the AI far enough to see where it breaks down, and then try that same thing again in 3 months. Let’s throw out the old playbook and reimagine what it takes to ship things that matter, start to finish. Let’s build the factory.
In software product development, we’ve historically specialized in ways that may not make sense going forward. But there will always be a need for people who deeply understand our customers’ most important problems, solve those problems with high-quality software, and run that software reliably in production. This is the work that endures.
I’m challenging each and every one of you to step into this moment, regularly question your assumptions about how software is made, and share your wins.
This is a rare opportunity. Let’s embrace it and create the future together.