AI for everything - except writing code
Howie ·
Earlier this year we wrote about letting Claude build a web application. As an experiment it went well. This piece is about the other side of it: how AI is actually used on the work clients pay for.
The short version is that AI is involved at almost every stage of development, except the one people assume. On client projects, the code is written by us. But writing code is only a small part of the development process.
Why not the code?
Not because it can't. We know that, given the right context, it can write great code.
But we don't think our clients are ready for that yet. And rightly so. If you're paying a developer to build the system your business runs on, "the AI wrote it" isn't what you want to hear, and we think it gives the wrong impression of how seriously the work is taken. So the code is written by hand. For now.
Planning
Every feature starts with a spec, which comes out of the discovery work we do with a client. From there:
Claude drafts an implementation plan. It has sight of the existing codebase and whatever else is useful – often a client's spreadsheets, since that's where a lot of business logic lives before it becomes software. The plan is detailed: identifying which files need to change, what changes in each, and code snippets showing how.
It then reviews its own plan against the spec and the codebase. This is where a lot of the value is. It highlights anomalies and raises questions for clarification: places where the spec is ambiguous, or where what's been asked for doesn't fit how the system already works.
We then go through those questions with the client, and revise the plan.
The result is that gaps in a spec get found before any code gets written.
Development
Given how detailed the plan is, coding becomes easier. And as we code the changes, we understand every line of it.
Code review
We review our own code, and then Claude reviews it too. It's good at the things a tired human skims past: opportunities to refactor, inefficient database queries that run once per record (the N+1 problem). It also spots gaps in the tests: the edge case that's handled in the code but never exercised. It reads the whole change in one go and doesn't get bored.
Security analysis
Claude runs a security review of every new feature, and periodically of the whole codebase. It's found real problems such as personal information (PII) about users being written into log files.
Diagnosing bugs
When something breaks in production it shows up in Sentry, our error monitoring tool. Handing that error to Claude alongside the codebase gets to the where and the why a lot faster than reading error logs ourselves. The fix is still written and tested by us.
Keeping software up to date
Software dependencies need patching, and a lot of patches are security fixes. Claude does the legwork: checks what's out of date, applies the updates, runs the tests and raises a change for us to review. It's housekeeping, but it's housekeeping that used to get put off.
Everything else
Data cleansing. Scripts for managing servers and infrastructure. The kind of one-off tooling that's needed once and never again, and that used to be a distraction from the actual project.
What about client data?
Sensitive client data is never processed through the models. Code goes in; customer records, financials and anything else you'd consider confidential do not.
Does it save time and money?
Yes, even without AI writing the code. We don't have metrics, but our clients will testify that throughput has increased without any degradation in quality. Features are delivered quicker and with fewer defects than before. The time savings comes from three places. Gaps in a spec are found at the planning stage. Reviews are more thorough. And we keep on top of the maintenance and support work, which is more time-consuming than many customers appreciate.
In summary
We understand that there is an expectation from our customers that we will adopt AI, and we have done so. AI has made the parts of the job around the code faster and more thorough. Plans are better quality, reviews catch more, security gets reviewed regularly, and the boring maintenance gets done.
Perhaps there will soon come a point where we allow AI to write the code too. Even then, it will still require an experienced developer to review the code that is produced.
And software development is about so much more than simply writing the code. It's about a client relationship, an understanding of their business, their pain-points and bottlenecks, and where software can add value.
Want to find out how we could help improve your business processes with a little bit of AI assistance? Get in touch.