Mostly Correct is Still Useful

Posted by Matt Birchler
— 1 min read

Steve Yegge: Cheating Is All You Need (via Michael Tsai)

All you crazy MFs are completely overlooking the fact that software engineering exists as a discipline because you cannot EVER under any circumstances TRUST CODE. That’s why we have reviewers. And linters. And debuggers. And unit tests. And integration tests. And staging environments. And runbooks. And all of goddamned Operational Excellence. And security checkers, and compliance scanners, and on, and on and on!
So the next one of you to complain that “you can’t trust LLM code” gets a little badge that says “Welcome to engineering motherfucker”. You’ve finally learned the secret of the trade: Don’t. Trust. Anything!

My goodness, Steve nails it! People get hung up on these tools being less than 100% accurate, but so are humans, and we build systems to account for that imperfection. Yes, it would be dangerous for someone at a big company to ask an LLM to generate code and push it to production without checking it or testing it. It would also be dangerous to let a human developer push to production without a peer review and testing.

The fact that things (code or otherwise) generated by these models is imperfect means we need to be careful with how we use them, but it does not mean they are useless. As always, I like to look at these things as practically as I can, and the video below shows me adding a feature to Quick Reviews in real time, and I think is a good example of how these tools can help, without replacing the need to understand what you're doing.