Software development – keeping pace with AI’s evolution

By Rod Cope, CTO, Perforce.

  • Sunday, 14th January 2024 Posted 11 months ago in by Phil Alsop

AI is revolutionising how software is being created, and there are several essential aspects of which to be aware. First, anyone can use AI to develop software without needing any programming skills. Second, developers are still required, but their roles are changing fast. Third, the pace at which AI evolves is unprecedented compared to any major technology milestone we have seen.

 

So, an essential piece of advice for anyone interested in using AI for software development is that this is entirely unlike technology introductions in the past, where there would be a period of stability while they are being adopted. Instead, while one AI approach may be the best this month, there could be a completely different one in just a few months: perhaps a way to carry out a task ten times faster. 

 

So, software developers must be in a constantly ending phase of looking to see what is happening in the market. Practically speaking, this is challenging: who wants to invest time and effort in learning about a type of AI only to have to replace it in six months? Sure, ignoring new developments is an option, but it is also risky if everyone else is benefitting (and the benefits could be significant leaps forward). 

 

So what is the answer? There is no silver bullet here, but apart from being aware of those AI innovations and open to exploring them, another tactic is to remain flexible and consider fast-track options. Take large language models (LLMs), a hot topic in software development right now, enabling tasks to be carried out simply by talking to the AI tool. So, look at the most highly regarded LLMs and pick one to start playing around with because, on the plus side, these tools' impact on existing IT systems is very light. 

 

Similarly, LLMs are easy to replace, though some work may have to be redone or replaced, depending on whether some fine-tuning has been made. Also, consider using LLM foundational models, which are ready-to-go existing building blocks created by third parties who have done all the hard work for users.  

 

Approaches like these enable development teams to fast-track their use of AI innovations like LLMs to experience the benefits quicker, such as less time spent on manual, tedious development tasks. In turn, there is more capacity for other activities and focus areas.

 

In addition, more people can become involved in software development without needing a degree in software engineering, potentially increasing the resources within a development team. However, senior developers who understand good and bad coding practices still have a critical role to play, acting as guardians around the accuracy of AI.

 

Take, for instance, AI coding assistants — another, more established form of AI, such as Github Copilot — which can be viewed as a virtual pair programmer, looking over someone’s shoulder and making suggestions. These jumping-off points can accelerate code creation, but their recommendations may not always be accurate. This is where the expertise of a senior developer comes to the fore because they are more likely to know when code generated by AI does not look right. 

 

However, we are reaching a point where we may not understand what AI is doing and instead just experience its benefits. While previously, a human could come to the same conclusion as AI, even if it takes years to get there, AI is now going beyond the human brain's capabilities. There is a huge distinction between modern AI, which has surpassed traditional AI, and machine learning (ML). 

 

Understandably, there is some resistance and concern for many developers and their organisations. Yet, the reality is that by removing much of the tedious minutiae, developers have more time to focus on the more creative and enjoyable parts of their jobs. AI could help them focus on the cutting edge rather than being weighed down by toil and processes. 

 

That said, teams will need to adopt new processes in the new, AI-enabled world of software development. The footprint of projects will grow ten times, or even 100 times, going beyond the limits teams are currently used to, so organisations must evaluate the impact on existing systems and processes and make the necessary changes fast, such as finding new ways to collaborate and specialist tools. 

 

Above all, security has to be prioritised. A hacker could try to trick an LLM into giving away confidential information, a technique known as prompt injections, by asking a wide variety of questions. AI is not going to have the natural suspicion of a human being. 

 

On a more positive note, we are starting to see a pattern where a second AI tool double-checks the results from the primary AI as a way to eliminate security and data privacy issues, hallucinations, hate speech and other problematic output. For instance, Amazon recently productised this concept within their new Guardrails offering. We can expect to see tools like these become commonplace, but in the meantime, manually double-checking is a recommended best practice when using LLMs. 

 

Topical AI innovations such as LLMs are not only very much here and being used, but they in themselves are evolving. LLMs are no longer standalone tools but are becoming features within existing products. While some of those features may only be available to some large enterprises right now, they will trickle out to everyone. 

 

Imagine asking AI, "Can you find me everything to do with that new app we are working on? Including the meeting notes from, I think, last month? And all the emails and Slack communications? And write me a report for me to review?” For a busy development team, that is a powerful time-saver. LLMs will also likely become vertical market hubs, such as information-sharing across electronics, financial services, or automotive development markets. 

 

However, while LLMs may have been the buzzword of late 2023, they are just the newest flavour of AI, and there will be something else soon. In the meantime, anecdotally and from what I have seen within our own teams, once developers experience AI's advantages, it is hard to imagine going back. 

 

Of course, AI is far from perfect, and there are valid concerns about its use (we should all be aware of the downsides), but this is no fad: AI is here to stay and will continue to evolve at speed. AI is the new superpower in town, and now is the time to start putting in place smart strategies and processes to manage its introduction, use, and be prepared to adapt to its shapeshifting nature.