Level 1 - Code completion
If you have written code with a modern editor then you have almost certain used some form of AI.
Within a given context, the editor will have some awareness of what functions, methods, classes or objects are available in the current scope. As you start to type a name the range of potential options narrows down and the editor may present you with a drop down of options to choose from to finish the current token.
Some examples of editors that will default to offering code completion are:
Visual Studio, IntelliJ IDEA, Eclipse.
With plugins even Emacs and vim can be configured to provide code completion.
This isn't really AI, as there is nothing providing contextual guidance towards the most appropriate next token.
Level 2 - Generative AI
My first exposure to this was the GitHub Copilot plugin for IntelliJ IDEA.
Around 2024 I joined a pilot program within the company that I was working for at the time, to have access via SSO and GitHub credentials.
The codebase that I was working in was Java with the popular Spring Boot framework, but as it involved a bespoke workflow configuration and an unconventional data store, the agent was of limited use when it came time to try to introduce any new functionality.
I tried out prompting it with a couple of lines of description about the desired method and it would attempt to generate some code.
A couple of years have passed now, but I seem to recall that it would also struggle with the version of the API that was available for the data store.
There wasn't much of buzz around the company about how productive the tooling was.
Level 3 - Agentic AI
The good
In December 2025 I rejoined Atlassian and tried out the Rovo tooling.
Rovodev had a command line interface that I would start up within the base directory of my project codebase and provide a sentence or two of instructions about what I wanted to achieve.
One of my first development tasks on this new team was to update the handling of a particular exception case so that an appropriate alert would be emitted.
There was an unusual amount of complexity involved, as this particular codebase was several years old but involved a combination of:
AWS Lambdas, Step function flows, Spring configuration, alerting library and tests.
I made an initial attempt at applying the required change, then asked the AI agent to verify the functionality.
I was surprised and delighted that this new tooling was able to pick up on the context involved and flagged up that my implementation would have resulted in the step function configuration retrying - which would have had the undesirable side-effect of also triggering multiple alerts.
After a couple of further iterations of prompting and examination of the configuration, and some reading up of the documentation about step functions I was able to set up the desired functionality in a clean and elegant way.
The bad and/or the ugly
A very different experience of interacting with an AI agent involved prompting it to accurately describe the implications of applying a different approach for storing data at scale.
Looking back on it now, this reminds me of the classic "compare and contrast" style of question that was a particular favourite of one of my Computer Science lecturers.
After about a dozen prompts attempting to clarify the specifics of the performance differences of the data stores, I introduced an additional consideration about whether it would make a difference if the data was stored in a pre-sorted configuration. The AI agent went through its typical cycle of reviewing the context and considering the information available and proceeded to present back a sensible looking evaluation of the implications of using sorted data - but then it confidently asserted that the components involved would already have the data arranged in sorted order. This was a complete contradiction of the documentation.
Important Disclaimer: Rovodev wasn't some new custom Agentic AI, it just delegated to other mainstream AI LLMs.
With that disclaimer out of the way, if it had been a human developer confidently asserting that the best case scenario was the default behaviour of the system, then they would not be popular among their colleagues.
Summary
As of early 2026, there are several types of artificial intelligence systems that can aid software development.
In this post I have given some dumbed-down examples of how far things have progressed in the last year or so.
This is a point in time snapshot of some use cases, it is not intended to indicate what is state of the art - though aspects can be taken as statements of fact.
No comments:
Post a Comment