The future of software development: AI-enabled tooling

Written by

Jakub Wróbel

Senior Software Engineer

Welcome to the first article in the new Red Future Navigators series. Here, our domain experts will address a range forward thinking topics – guiding our customers, partners and peers through the complexities of innovation and the technical challenges of tomorrow.

In the constantly changing landscape of software development, staying at the forefront of technology is both required and desired by forward-thinking teams. The integration of AI-powered tools into development workflows offers multiple benefits including enhanced productivity, improved service quality, and increased developer satisfaction.

According to the StackOverflow 2023 survey , 82% of 37,726 respondents are already using AI in part of their work and at least 55% are looking to further leverage AI, focusing on more creative and impactful tasks.

In this article, we explore the why, how, and what of adopting AI-powered tools for your teams. We also share which tools made the best impression on us from our initial analysis.

Confusing abundance

The AI tooling market is rapidly advancing, and the number of AI code generators alone has already reached around 400, as reported by New products and propositions are surfacing every month. This poses a challenge for companies venturing into the adoption of AI.

The abundance of choices, each varying in quality, functionality, privacy and enterprise-use considerations, raises concerns for decision-makers.

We faced this challenge with enthusiasm and a well-defined process to help us sift through the many options.

Setting expectations

The first step to incorporating AI into your development processes is to set clear expectations. Start by identifying specific pain points in your workflows where AI can add value. Is documentation taking up too much of your time? Maybe writing unit tests is always a rushed, last-minute effort. When improvement areas are identified, consider creating a checklist that encompasses criteria like:

  • Tool output quality
  • Ease of use
  • Privacy
  • Security
  • Pricing
  • Deployment options

Recognise that measuring the efficiency of software-related work is inherently subjective and align the tool evaluation against the use cases that reflect your team’s daily activities.

The good and the bad

As we explored the incorporation of AI tools in our team, it became clear that they are valuable additions to the software development toolbox. Notable features include:

  • Code generation
  • Explanation
  • Test Creation
  • Review
  • Code translation

It’s worth paying particular attention to tools which offer features or an approach that stands out from the growing crowd of AI solutions. Especially in case of specific business needs or limitations.

Using a different large language model (LLM) than your competitors or incorporating a smart prompt context extension can give the tool the edge that is needed for the job.

Is your project domain-specific? Consider using a tool that enables you to choose the right AI model, tailored for that specific job.

If your main priority is to preserve the complete privacy of your codebase, opt for a tool that allows air-gapped deployment, ensuring maximum confidentiality.

We can see that adopting AI tools comes with its own set of challenges, especially in areas where legislation and privacy considerations are still evolving. It is imperative to use AI technology carefully and consciously, ensuring it aligns with legal and privacy standards to safeguard your company.

Additionally, not every tool supports every programming language with the same quality, calling for a discerning selection approach.

There is a need to build awareness about what the tool can do and what it cannot so that it does not break established workflows, hindering performance instead of improving it.

Adapting to the task

Earlier, we mentioned varying levels of support for specific programming languages, and this can become even more apparent when dealing with less widely used technologies or fields.

To address this, a process of fine-tuning the AI model comes into play. Some vendors even allow fine-tuning based on private company data as part of their offering. We will delve into this solution in a future article.

Tried and tested

While exploring the features that stood out during our evaluation, we were pleasantly surprised by the ability of AI to provide detailed answers and directions based on the context of an entire code repository. Instead of reading and searching through files for symbols, comments, and references, which can take hours, we were able to get a sufficiently accurate response to a prompt in a matter of minutes. This not only accelerates onboarding for new developers but also facilitates quick decision-making.

Another observation was the effectiveness of automatic code review, which not only detects standard mistakes but also identifies deviations that might go unnoticed during a manual review.

A final feature of note during evaluation was the writing of unit tests. If meticulously approached, it can easily take an hour or more of a developer’s time to write a test suite for one function. With dedicated AI tooling, this can be shortened to around a quarter of this time, including AI output review.

In summary of the evaluated tools, we were particularly impressed with the capabilities of the following tools:

  • Tabnine (notable feature: AI trained only on permissively licensed code)
  • Codeium (notable feature: well-designed UX for IDE extension)
  • Cody (notable feature: excellent code explanation and improvement suggestions)
  • Copilot (notable feature: versatile code generation)
  • CodiumAI (notable feature: behaviour-driven unit test suite generation)

All of them stood out for their high performance, enterprise orientation with various deployment and configuration options and seamless integration into existing development workflows.

Steady improvement despite some limitations

With some challenges and limitations, the benefits of incorporating AI-powered tools into software development processes are undeniable. As we continue to refine our approach and utilisation of these tools, we also encourage our customers and partners to explore the vast potential of AI in their workflows.

Embrace the future – your codebase will thank you.

Stay tuned for our upcoming articles on this topic, where we will delve into the intricacies of fine-tuning AI models and unlocking even greater efficiency in software development.

We have over 20 years of experience in trusted innovation and embedded software development, supporting a global customer base.

Contact our expert team for support with your next development project, or the adoption of AI-enabled tooling in your organisation.