AI Tooling for Software Development: The Useless, the Useful, and the Future

Lize Raes

AI-powered tools for software development can speed up the development process, improve code quality, and enhance team collaboration. The best tools for you and your team depend largely on your specific use cases and workflows. This article provides an overview of today’s most popular AI development tools, outlining their ideal use cases and how to use them to improve efficiency without increasing code churn or introducing bugs.

Do I Need to be Proficient in AI Tools as a Software Professional?

Yes and no.

First, like any development tool, AI-powered tools require some effort and experience to use them effectively. This is no different from mastering an IDE and its built-in features. Knowing how to use AI-assisted tools is gradually becoming a standard expectation for certain development jobs.

However, the AI tooling landscape is evolving at an incredibly fast pace, with some tools receiving substantial updates as frequently as every week. Many tools are still maturing, and major paradigm shifts continue to happen. For example, code completion is being replaced by AI agents that not only suggest code but also run tests and adapt dynamically. AI tools are expanding to assist in more stages of the development workflow. It’s reasonable to wait and see which tools will become essential before fully committing to any specific one.

Another observation is that some companies still rely on pen and paper for taking orders, while others are stuck in the Excel-era.

Inspired by the never disappointing internet

AI tooling adoption will follow a similar pattern, with companies evolving at different speeds. Many Java-based organizations operate in regulated industries, handle sensitive data, or treat their code as intellectual property. For them, sending code, tickets, or technical specifications to a commercial AI provider is simply not an option. The most popular AI tools today don’t offer on-prem support, so if you aren’t an AI tooling expert yet, you are still safe… for now.

Which AI Tool Fits My Use Case?

When we think about AI tooling for software development, code assistants are usually the first to come to mind. But how much time do we actually spend writing code? Surprisingly little. AWS estimates that developers write code for about an hour per day, while GitLab suggests it accounts for only 25% of our work time. The rest is spent on tasks like testing, understanding the codebase, searching for information, attending meetings, managing releases, and, hopefully, a bit of innovation at the coffee machine. To maximize productivity, we need to look beyond code assistants and consider AI tools for the entire software development lifecycle (SDLC).

Where you spend most of your time depends on your role. There is no “typical” software developer. Some of us navigate decade-old codebases to modernize services, others rapidly build MVPs to stay ahead in the startup race, and some focus on optimizing build speeds and deployment processes. Your daily responsibilities will determine which AI tools provide the biggest productivity boost, and how you’ll use them.

The first half of the article focuses on AI tools other than code assistants. This is where some of the biggest time savings lie, even if we don’t always realize how many tedious tasks and bottlenecks are now solvable with AI. The second half covers code assistants in depth, featuring a detailed comparison table and direct insights from the maintainers and creators of some of these tools.

Non Coding Assistants

Here’s how AI can save time and reduce frustration across different parts of your workflow other than coding.

For when your team loses time due to changing customer requirements

Inspired by @funnydevcom

 “Developers will never be out of a job because customers and product managers don’t know what they want.”

It sounds funny and true, but LLMs are surprisingly effective at helping people refine their own ideas. AI can save significant time in defining scope and functionality by:

  • Translating customer requests into formal specifications
  • Clarifying edge cases and ambiguities upfront
  • Limiting scope by generating frontend mocks that expose customers to a concrete representation of their idea, reducing last-minute surprises

By avoiding costly rework and misinterpretations, AI can prevent frustration on both sides. These capabilities are achievable with raw LLMs, or you can use specialized tools like ScopeMaster.

For when you hate creating and managing tickets

LLMs can automate task and resource planning by:

  • Generating tickets based on tech specs + team expertise and availability
  • Updating tickets dynamically when related actions occur (e.g., after a PR merge)

You can use tools for this, like Atlassian Rovo, or set up a custom solution by prompting an LLM to generate Jira-API-compatible tickets based on specs and team member profiles.

For when you can’t remember what a ticket was about, or where to look

Naboo.ai is a smart context-retrieval tool that integrates with GitHub, GitLab, Jira, Confluence, Slack, and more. It lets you ask questions about your project and retrieves relevant discussions, tickets, PRs, and meeting notes without you needing to switch contexts.

Naboo integrated in the workflow

Considering that knowledge workers spend an average of 20% of their time searching for information (McKinsey, 2012), tools like this can significantly reduce wasted time and prevent bugs caused by missed updates. Naboo also helps with onboarding, diving into new projects, or picking up your tasks after a holiday. 

For when you can’t keep up with the latest technologies and architectures

Many software architects love having an “AI intern” with encyclopedic knowledge of frameworks and tech stacks. LLMs and coding models have been trained on vast amounts of code and can present a solid selection of options with pros and cons. However, in other ways they still behave like a clueless intern level, so always apply common sense when presented with AI-generated suggestions. Since LLMs are also trained on some latest trends, they might over-recommend certain frameworks. A well-crafted prompt can help filter responses. For example, I will always add “For the frontend, use HTML + Javascript only, avoid frameworks where possible.”  😉

For managing GitHub issues and PRs

  • CodeRabbit: GitHub plugin for PR summarization and reviews. Sometimes suggests improvements you can accept instantly. Free for open-source projects.
  • Dosubot: GitHub plugin for triaging and answering issues. Free for public repos.

For when you struggle with keeping your documentation in sync

Swimm.ai focuses on documentation and code explainability. It has different tools to ensure your documentation is accurate and up-to-date, including an auto-update mode that syncs documentation with code changes.

Inspired by something I saw pass on Instagram

For when you’re afraid to ask “dumb” questions

One of AI’s biggest transformations is providing a non-judgmental space to ask any question. It’s not to be underestimated how much deeper understanding you can gain in this way, be it about the latest Java developments, tech stacks, or long-standing gaps in your knowledge. AI is a fantastic learning tool, offering a personalized way to upskill at your own pace. All it takes is asking.

For when your product is becoming confusing for users

“You are a UX expert redesigning this website.”

AI Models can be surprisingly helpful for design and UX decisions. Being helpful for the average human is exactly what they were trained for, so when it comes to user-friendly design suggestions and understandable guidelines, they shine. Many modern models (ChatGPT, Claude, Gemini, …) support direct image inputs for design reviews, and specialized tools like Uizard and Galileo AI can generate UI designs and prototypes.

For incident management, log analysis, and other tailored use cases

Take a close look at your team’s workflows:

  • What tasks waste the most time?
  • What tasks do people dread?

Chances are, an AI (or even a non-AI) tool already exists to help. Often, simply recognizing inefficiencies and searching for a solution is enough to make life easier.

If you can’t find an off-the-shelf tool, building a custom AI assistant may be worthwhile. Many tasks are automatable with relatively little effort. Good candidates include:

  • Incident management (automated bug analysis and task dispatching)
  • Logfile anomaly detection
  • User feedback analysis (embedding vectors can help categorize common issues)
  • Email and Slack summaries

It’s easier than ever to build AI-powered tools on top of existing LLMs. If you’re using Java, LangChain4j and SpringAI are great starting points.

Coding Assistants

With options like GitHub Copilot, Cursor, JUNIE, Replit, and many more, it’s easy to feel like you’re falling behind if you haven’t tried them yet. But let’s ease that FOMO a bit.

A small-scale study conducted in Spring 2024 by Gergely Orosz for his Pragmatic Engineer newsletter (do subscribe!) surveyed 211 developers of various profiles. 

If you’ve only experimented with ChatGPT and GitHub Copilot, you’re far from alone. In the meantime, those tools have made significant progress and new players are rapidly gaining traction.

Which coding tool is right for your workflow depends on many factors:

  • Is it supported in your favorite IDE?
  • Do you need an on-prem solution for your employer?
  • Do you want a proactive tool or rather perfect control over every line added?
  • Do you want code completion or higher level brainstorming on architectural choices?
  • Do you want to enforce your team’s coding style or use the latest java features?

Without further ado, here’s a huge comparison table (split in two for readability) to help you choose the right AI assistant for your team and workflow.

Important Notes:

  • This table reflects the state of AI coding assistants as of mid-March 2025. Given how fast these tools evolve, some details may be outdated by the time you read this. For the most up-to-date version or to contribute corrections, check out aitoolcomparator.com.
  • Each tool is under active development, so missing features today may become available soon.
  • While I’ve done my best to compile accurate information, there may be minor errors, especially considering the many versions and pricing plans. This table is meant as a high-level reference to help developers quickly identify tools that match their needs.

General Tips for Using AI Code Assistants

Store your prompts: If you’ve spent time crafting a clear prompt that works well, don’t lose it! Many tools allow you to store custom shortcuts for frequently used prompts.

Use multiple tools: Each AI assistant has strengths and weaknesses. For example:

  • Use Claude for brainstorming and leverage DevoxxGenie’s convenient copy function.
  • Generate well-structured tests with Qodo, which offers precise control over test cases.

Go beyond autocomplete: Many developers assume AI assistants equal autocomplete, but that’s not the only way to use them. Depending on your workflow, autocompletion might be more hassle than help. Take time to test different tools and ways of operating them, to find what actually improves your productivity.

Use Cases Where Different Coding Assistants Excel

My own tests on small-scale repositories, along with feedback from fellow developers, provide only part of the picture. To get a broader perspective, I reached out to the maintainers of Qodo, JUNIE, DevoxxGenie, and Moddy to understand where their tools truly shine. Some of their insights are reflected in the comparison table above, while the rest are detailed here.

For writing fast Proof-of-Concepts (PoCs) and small features

For PoCs and small projects, Cursor can significantly speed up tremendously (that is, after you gained some experience with how to best go about it).

What sets Cursor apart:

  • Excellent context retrieval that mostly identifies all related classes and methods that need modification.
  • Intuitive ‘Apply Diff’ suggestions that lets you selectively accept changes rather than blindly applying everything.

Cursor’s Apply Diff

To get the best results when creating a new project, take it step by step and test along the way. Explicitly state requirements, even if they seem obvious. For example:
“When clicking the stop button, I want the state to reset entirely, as if the page was just opened.”  Without clear instructions, Cursor might introduce unnecessary custom logic to this stop button.

Use agent mode (‘Composer’) for tasks requiring the terminal. If you’re feeling adventurous, activate YOLO mode to let it run terminal commands without your approval. Coding will feel like playing a video game… though at your own risk!

For upgrading large legacy repositories

Moddy, the AI assistant from Moderne, leverages thousands of OpenRewrite code refactoring recipes, combining:

  • LLM strengths in natural language processing with
  • Proven refactoring techniques for structured, safe modifications

This makes Moddy particularly well-suited for tasks like large-scale legacy code modernization.

For controlled changes and high code quality in bigger codebases

Qodo aims at bigger companies and code quality. Both its normal mode and its agent mode are structured in a way to support typical developer workflows. For example, when generating tests, Qodo lists happy paths, edge cases, and more, allowing developers to select which tests to implement.

This way of combining AI with known workflows, allows for more control. On top of this, changes are proposed in an entirely separate file, so we can cherry pick what we need. Working with Qodo feels less like trying to steer an unguided projectile than working with many of the other coding assistants.

Extra goodies:

  • they have PR-related functionality to make collaboration easier
  • they have zero-retention agreements with their model providers so they offer single tenant SaaS, and can even offer airtight on-prem for companies on request

For when you want to work with local models

DevoxxGenie allows you to plug in virtually any model, including those running locally on your own machine. This means you can have a fully functional coding assistant even while on a plane or in areas with low connectivity.

A fraction of the available model integrations of DevoxxGenie

Another standout feature of DevoxxGenie is its copy-to-clipboard mode, combined with a highly customizable inclusion/exclusion policy. It lets you copy only the relevant parts of your codebase, along with the file tree, so you can paste it into any LLM of your choice. 

Right clicking on directories gives a lot of interesting options

You can limit token usage by including only the necessary files (e.g., only the package you’re working on, or just .java files). On top of that, DevoxxGenie allows you to calculate the request cost upfront before sending it. Best of all, DevoxxGenie is free (use your own key for commercial models) and open source 🔥

For when you want to combine deterministic tools (refactoring, getters/setters generation, etc.) with the power of AI

Though still in preview and evolving rapidly, JUNIE is expected to integrate IntelliJ’s built-in trusted tools with AI-powered assistance. This combination is something I’m personally looking forward to, as it could combine the best of both worlds (trusted, deterministic tooling combined with AI’s flexibility) and result in more reliable and high-quality code changes.

For small apps consisting of very standard blocks

Replit and Devin are both well-suited for quickly building small applications from scratch, as long as they consist of standard components like authentication and payment handling. These tools generate the code for you and provide a running instance to test or review. However, once you try to go beyond common patterns and try to implement something more customized, they tend to struggle.

A few specifics: Replit currently does not support Java but does work with Python, JavaScript, C++, and some related languages. Devin, on the other hand, is structured as a Slack-based workflow with a web browser interface. It can generate repositories, write code from scratch, fix bugs, and even test its own outputs.

The main downside of both tools is that they offer very limited intervention during the coding process. You’re locked into an ask → wait → test workflow, without the ability to use your own IDE. This setup might work well when they consistently produce excellent results that you can trust, but currently we are not there yet.

Replit building an instance and asking for feedback

What Not to Expect from Coding Assistants

Gergely Orosz summarized these takeaways from his research last year:

  • The good: When AI tools work well, they’re a massive help in completing projects, increasing test coverage, and making experimentation easier.
  • The bad: Poor output, hallucinations, and devs over-trusting these tools, top the list of complaints.

So, where do coding assistants struggle? When should you not rely on them?

  • Making incremental changes on top of changes: At some point, the tool loses track of context and starts generating inconsistent results.
  • Handling large-scale modifications: Most AI assistants struggle with major refactorings (except for Moddy, which is built specifically for that purpose).
  • Navigating spaghetti code: When changing one line risks breaking three interconnected services, AI assistants are prone to creating more problems than they solve. JUNIE does mitigate this by running the full test suite for every proposed change, but it may keep iterating indefinitely just as other tools when facing such degree of complexity.
  • Working with the latest libraries and language features: If they weren’t included in the model’s training data, the model won’t know about them.
  • Performing deterministic tasks: AI tools are, by nature, non-deterministic. For things like refactoring, debugging, renaming variables, detecting code smells, and linters, traditional tools are faster, more accurate, and cheaper.
  • Security: While AI coding tools generally do a better job than the average developer when it comes to security, they are far from foolproof. It’s always worth running a dedicated security scan with a tool like Snyk to catch vulnerabilities.

What Does the Future Hold?

I hope this article has given you insights into how AI can support your development workflow or helped you narrow down which tools to experiment with. Already today, AI can help us be more productive, reducing time spent on repetitive tasks and allowing more focus on higher-level problem-solving. That said, these tools are evolving at an incredible pace, so if none of them seem quite right for you yet, it might be worth checking again in half a year. Maybe by then, we’ll have one tool to rule them all 😉

So Where Are AI Coding Tools Headed?

Right now, AI coding assistants feel a lot like clumsy interns with vast encyclopedic knowledge: extremely useful and frustratingly limited. But the underlying models and the tools built on top of them are improving rapidly.

This year, the biggest focus is on agent mode: finding the right balance between proactiveness and control, integrating capabilities like terminal output monitoring and git access to create powerful and reliable coding agents.

Next year, I predict the focus will shift toward:

  • Integrating deterministic tooling with AI assistants, for example, combining AI suggestions with refactoring engines and upgrade recipes for more structured, predictable changes.
  • Expanding AI coding assistants to cover more of the development workflow: a code assistant might evolve into a full-fledged PR creator, reviewer, or even a system that translates formal specifications directly into working implementations. (see also: spec-driven development, spearheaded by Tessl.io)
  • Taking over the inner development loop (write – run – test – repeat): AI will not just write and autocomplete code but also run, test, and iterate based on observed results.
  • Helping with deployment and predicting next steps, especially in recurring processes where AI can anticipate and automate routine tasks.

Or maybe, we’ll see an entirely unexpected breakthrough that changes everything. At this point, nothing would surprise me.

Will They Take Over Our Work?

One thing is certain: the way we work will change dramatically over the next five years. AI tools are already enabling some teams to move faster than ever before, despite their current limitations. And with the way trends are evolving, the transformation is only accelerating.

Here’s what we’re seeing:

  1. Models are improving at an exponential rate, they are getting faster, smaller, and cheaper even beyond Moore’s Law. Every month, a new model takes the top spot in benchmarks, whether it’s a major commercial release or a compact open-source model like DeepSeek, Phi3, or Gemma3 that can run entirely on-prem.
  2. Conceptual leaps are happening rapidly. We’ve gone from simple next-word prediction to predicting entire code blocks, and now, to autonomous agents that can navigate a codebase and execute terminal commands.

So yes, AI will take over part of our tasks at many companies in the coming years.

What Will Our Roles Look Like Then?

The biggest bottlenecks will no longer be writing the code itself. Instead, developers will shift focus to higher-level challenges, such as software architecture, UX design and writing extensible code that AI assistants can build upon.

Everything will move faster and more innovation will happen. Large enterprises with massive legacy codebases will have better tooling to modernize their stacks, while startups will accelerate even more aggressively. We’re already seeing the rise of billion-dollar one-person companies, made possible by AI.

Depending on our company and our personality we will operate somewhere along this spectrum:

Inspired by Henrik Kniberg

And a controversial prediction that might well turn out to be true:

Most popular programming languages by decade (inspired by the internet, once more)

So, Will Developers Be Replaced?

History is full of revolutions where machines replaced human labor. In 1900, 40% of the U.S. workforce were farmers. Today, thanks to mechanization and progress, only about 1% of the population works in agriculture.

The invention of the computer wiped out entire job categories such as typists and switchboard operators. Yet, at the same time, computers created entirely new professions. Today, there are over 27 million software developers worldwide, a job that would not exist without them.

Machines eliminate some jobs but create new ones. This image illustrates what’s going on (what humans can do with the help of machines – the green zone – is ever expanding).

Inspired by Brynjolfsson (2023)

So will we need as many pure software developers as we do now? Maybe, maybe not. But we will certainly need developers who know how to collaborate with AI. So, if you haven’t already, start leveling up your act with your AI sidekick. 

One thing’s certain in this fast-moving world: going into security will guarantee you a job. AI-powered criminals have driven Amazon’s attack rate up 7.5x, and with LLMs tapping directly into emails, shopping carts, and databases via plug-and-play MCP servers, security is the next gold rush. You’re welcome 😉

Want to Dive Deeper?
Lize Raes is speaker at JCON!
While this article explores the broader landscape of AI tools in development, her JCON session takes a deep dive into the security and privacy challenges of LLM-powered applications.
If you can’t attend live, the session video will be available after the conference – definitely worth checking out!

Total
0
Shares
Previous Post

Mastering the Basics of Domain-Driven Design with Java

Next Post

01-2025 | 30 Years Of JAVA – Special Edition

Related Posts