Deliver code that works

Simon Willison:

As software engineers we don’t just crank out code—in fact these days you could argue that’s what the LLMs are for. We need to deliver code that works—and we need to include proof that it works as well. Not doing that directly shifts the burden of the actual work to whoever is expected to review our code.

[…]

A computer can never be held accountable. That’s your job as the human in the loop.

Almost anyone can prompt an LLM to generate a thousand-line patch and submit it for code review. That’s no longer valuable. What’s valuable is contributing code that is proven to work.

I spent a lot of my working hours ensuring my code, UI, and UX are testable either manually or with automated tests. This involves a lot of verifying bugfixes are actually fixing things and verifying that code is actually doing what I’m expecting it to. With automated tests, it’s easy to have the AI verify things itself, but I still find manual testing incredibly valuable to make sure interfaces behave in a pleasant way that humans find easy to use and understand. Furthermore, when developing iOS apps, nothing beats testing on actual devices instead of the Simulator.