Hegel's Dialectic, and eventual correctness through adversarial AI
“Stop looking for an all knowing Oracle and start hosting a debate” — 18 months ago, I wrote about a "breaking wave" of…
From ZX Spectrums to Agentic AI: To fail faster and faster again, that’s the goal
There's a familiar refrain echoing through the industry: "We must have a human in the loop." It's a comfortable…
Suddenly, We're All Gardeners: Between Developing Code and Cultivating Intent
We are living through a software "interregnum." The old world where an engineer's value lay in manually translating…
Ensuring AI Code Quality: Documentation Driven Development and Mutation Testing
Over the past year I've recorded in LinkedIn articles my Agentic AI experiences and predictions. Some of it came to…
What is code quality, in the age of agentic AI?
This week I had a call with two friends to demo Cursor for them — because, we're all about the fun! To be fair there…
The slow death of effective retrospective
“Anyone who isn't embarrassed of who they were last year probably isn't learning enough.” — Alain de Botton…
Labour Theory of Value: Why It's Instinctive and Enduring, and how it shapes Product/Engineering Delivery
In a world where time is often mistaken for value, it's essential to understand that expertise — not effort — is what truly…
Software Maintenance: AI at the Helm
On December 3, 2022, I WhatsApp'd a friend, saying, “ChatGPT is blowing my mind, have you tried it?” His response…
Zen and the art of end of year reviews
End-of-Year reviews are a fact of life. In an ideal world we hope that we have had consistent feedback throughout the…
How to completely avoid delivering enterprise technology
No one sets out to fail to deliver a new tech service. Nowadays everyone says the same things and makes the same noises.