It was a pleasure chatting with
yesterday, we spoke for over an hour and felt like we barely had gotten started!A few key things I’ll be taking away from the discussion:
What is quality software? This was a great question which helped me articulate thinking I’ve done around this recently. My answer? That which survives frequent and repeated contact with reality, namely real users hands-on with what you’ve made. Quality is antifragile.
I loved Denis’ assertion that the one thing he doesn’t use AI for is coding - as he put it, “that’s not the bottleneck”. I think as people begin to understand the limitations of vibe-coding and begin to appreciate the wider process that goes into getting software from idea into production reliably, we’ll see this come to the fore even further.
The recursion problem with AI tooling - yes, you can automate things, but then in the process you’ve created a new system which then needs evaluation, maintenance, updating, etc. Of course, for certain tasks and for certain scales this makes absolute sense, but you still end up with the issue that you need engineering thinking to manage and maintain these new autonomous systems and keep them on track. It’s engineering all the way up, or down.
Despite the title of the talk, we didn’t get into depth about what pairing looks like when you add AI into the mix. If you have experiences or opinions to share on the matter, do write back or leave a comment below, I’d love to hear more.
Thanks again to Denis for organising, and if you haven’t already definitely check out
for a deeper understanding and appreciation of the human craft that goes into creating quality software.