To AI or not to AI
AI
Useful, powerful, and occasionally very confidently wrong
I’m well versed in AI and its uses, and I use AI tools as part of my work where they genuinely make sense. They can be remarkably useful for research, prototyping, automation, exploring ideas, getting past the blank-page problem and, occasionally, pointing me towards a solution I might not otherwise have considered.
But AI is a tool, not a replacement for experience.
At its heart, generative AI works by recognising patterns in enormous amounts of data and using probability to predict what is most likely to come next. That’s an incredibly useful capability, but it isn’t the same thing as understanding a particular business, website or problem. AI can produce an answer that looks completely convincing while being subtly – or spectacularly – wrong.
It can invent APIs that don’t exist, confidently recommend code that won’t work, introduce bugs into otherwise perfectly good systems, and occasionally turn a straightforward problem into something resembling an IT incident.
That’s where experience matters.
After more than four decades of programming, I’ve spent a lot of time encountering problems that don’t appear in tutorials or documentation. Strange edge cases. Legacy systems. Server configurations that should work but don’t. Third-party APIs doing something unexpected. Code written years ago by someone who is no longer around to explain why it was done that way.
AI can sometimes help with those problems. Sometimes it can’t. And sometimes the most useful thing it does is suggest an approach that an experienced developer can immediately recognise as something that definitely shouldn’t be done.
There’s also a difference between using AI to make an experienced developer faster and using AI because you don’t know how to solve the problem yourself. I’m increasingly wary of the latter. If a developer spends hours feeding an issue into Claude, ChatGPT or another coding assistant, trying suggestion after suggestion until something happens to work, those aren’t magically free development hours. The client is effectively paying for the developer to fish for an answer – potentially burning through AI tokens along the way – without necessarily getting any closer to understanding what was actually wrong.
That’s not how I work. An experienced developer will often have a pretty good idea where a problem lies before you’ve finished explaining it. Years of seeing similar failures, understanding how systems fit together and recognising the symptoms of a particular problem means the investigation starts with a hypothesis rather than a blank prompt box. AI can then be useful for checking that hypothesis, exploring an alternative approach or speeding up the implementation.
AI can make an experienced developer faster. It doesn’t make an inexperienced developer experienced.
I also don’t believe in charging a client for ten hours of work when a tool – whether that’s AI, a piece of software, or something I’ve written myself – allows me to solve the problem properly in twenty minutes. If a tool genuinely saves time, the client should benefit from that.
The important word there is properly.
The value isn’t in how long it takes me to type code, or how many minutes I can spend asking an AI to generate it. The value is in understanding the problem, knowing which questions to ask, recognising whether the proposed solution is actually correct, and knowing when it isn’t.
Some problems are well suited to AI. Others require investigation, experience and judgement. And some are simply beyond AI’s current abilities, particularly when the answer depends on understanding a complex system, incomplete information, or years of accumulated knowledge that isn’t written down anywhere.
I use AI as another tool in the toolbox: powerful when used in the right circumstances, useful when it saves time, and absolutely not something to be used simply because it’s fashionable or because someone has decided that replacing experience with a prompt is a cost-cutting strategy.
Computers may be logical. Software development rarely is.
The trick isn’t knowing how to ask AI for an answer.
It’s knowing whether the answer is any good.
Experienced with
- Claude
- DeepSeek
- Gemini
- oPilot
- ChatGPT
- Grok
I use AI for
- Vulnerability scans of code bases
- Arranging my thoughts into concise logical package
- Troubleshooting and spotting gotcha’s in psuedo code