There's been a shift in how we approach software development over the past few years. Everyone is aware of the rise of AI, and as a software engineer, I think you need to start taking advantage of the new tooling. I know it might feel uncomfortable, or like you’re cheating, but honestly, it’s becoming harder to ignore.
Lately, I've been finding myself using AI more and more, not because it's the path of least resistance or that I want to skip out on work, but because it's useful.
How I’m actually using it
This isn't an "AI writes everything for me" blog post; it's how I use it, and perhaps, it might even help you.
I use it to:
- Break down unfamiliar code quickly
- Generate tests where there aren’t any -This is a key area that I use it for at the moment!
- Sanity check an approach before I commit to it
- Speed up the repetitive parts of development - CRUD tasks, boiler plate, class library setup etc.
- Make PoCs
It’s not perfect - you still need to know what you’re doing, but it certainly reduces a lot of the friction and allows you to iterate quickly.
How is it making more productive?
The biggest benefit for me, is focus. It allows me to spend less time:
- Building boilerplate code
- Digging through documentation or stack overflow - really helpful for obscure items or poorly documented functionality
- Allowing me to bounce ideas off someone else - in a time when we're still working in a majority remote capacity, having the ability to bounce ideas off someone else is great!
It’s not replacing anything
It’s not replacing developers, and it’s not replacing understanding; if anything, it exposes gaps faster.
I take this highlighted gap as a learning opportunity, speaking with AI to fill in my gaps, along with practical examples to reinforce learning.
You’re not behind
Don’t worry if you’re not using it yet, you’re not behind!
But I would suggest that it’s worth starting, because it really does help.
What’s becoming evident within our industry, is that people who are using it are getting:
- faster at delivering
- quicker at debugging
- better at exploring different approaches
And this gap will become clearer over time.
But. People do need to manage their expectations; AI still needs someone with the expertise to oversee the outcome, otherwise you typically end up with poor quality that becomes harder to manage over time.
Think bad data in, bad data out.
How do I treat AI?
In my experience, breaking down the tasks into smaller chunks and tasks produces better outcomes and fewer tangents that AI can be guilty of, rather than providing it a ginormous task.
I’ve also started to validate tasks earlier where possible, by running the application after it completes each task, and then redirecting it to fix bugs that have been introduced by that task.
Tests, tests and more tests?
As the title implies, testing is key, and I’ve found that AI loves having tests so that it can mark its own homework.
I’ve found that as part of every task, I will (where appropriate) ask the AI to generate tests to prevent regressions, and also getting the assistant to run the test suite including: unit, integration and smoke tests.
Now, I’m not saying that tests should replace manual testing, but it’s so handy to have these regression tests in place to provide not only the AI but yourself with confidence that the latest task hasn’t broken something - unless that was on purpose, then it’s a good sign!
My Key takeaway?
If you’re not using AI yet, you’re not behind, but now is the time to start moving towards it. AI is not replacing developers. It is becoming part of the developer workflow and toolset. The value comes from using it effectively: breaking work into smaller tasks, validating often, adding tests, and using your own expertise to steer the outcome. Refine the process as you go, and keep learning.
Developers who learn to work this way will move faster, learn quicker, and reduce friction without sacrificing quality.
