Finding the balance with AI dev tools
As a relatively late adopter of AI tools, well, amongst software developers anyway, I am slowly coming round to the benefits of AI. Like most people, I started with the big-name AI tool, ChatGPT, but it didn’t take me long to discover Anthropic and their Claude and Claude Code tools.
Over the last six months, I’ve been a heavy user of Claude Code. It definitely provides serious productivity gains. Here are a few examples of where I have used Claude Code in the past few weeks.
- Upgrading a couple of Rails applications from 7.0 through to the latest 8.1 - The Rails upgrade process is fairly straightforward, and I’ve done quite a few upgrades over the years. Using Claude Code with this has sped up the upgrade process.
- Re-starting development on Dailymuse - work on this has been slow over the last couple of years, but the last few months have seen some big changes in my micro-product.
- Exploring Hugo and Jekyll themes - I had been working on a Hugo theme I planned to use on Micro.blog, but since moving to self-hosting, I have migrated this over to Jekyll.
- Built supporting tools for my blog - Self-hosting with Jekyll is easy, but I wanted to still have the option of hosting images and posting on the go as I used to with Micro.blog. I managed to build a number of these features to support my Jekyll blog over the course of a week.
The accelerated pace of development is probably the first thing software developers notice when using AI tools like Claude Code. You can build features and even applications at such a rapid pace, which is good, but it’s also been a red flag for me since I started using these tools.
With increased production rates, I am concerned about retaining the knowledge of what I am building. Will I know enough about the code base to support it in the future? When my code breaks, how will I know how to fix it?
I am exploring a few ways of ensuring that I know the code that I am shipping, including:
- Taking notes on code changes, especially in areas of the code base that are important and application or business-critical.
- Adding more comments to my code - this might serve the AI tools more than me, but having comments throughout the code does give me a quicker understanding of the code I am adding and where I am adding it to.
- Spending more time reviewing code — especially AI-generated code. What is this code doing? Do I understand it? Can I make this code better? Is this code even suitable?
There are other ways I can improve my retention of the codebase, and yes, AI tools can help with that. However, as good as the AI tools are, there still needs to be human understanding of the codebase to make the right decisions about future changes, and that begins with understanding the code and ensuring I retain enough knowledge about it.



