Artificial intelligence (AI) continues to be an impactful force across industries and organisations globally. Today 16% of UK businesses are currently implementing at least one case of AI in their operations.
As IT leaders discover where AI can drive value in their organisation, one emerging use of this technology is in software development teams, where developers are using AI to streamline various aspects of the software development process.
Recent research from McKinsey reveals that the direct impact of AI on the productivity of software engineering could range from 20 to 45% of current annual spending on the function. This wide range of impact percentages underscores the potential of AI tools, but also the need for careful integration to fully harness their benefits.
Here we outline three key areas to consider when using AI in software development teams. We will first discuss where AI is bringing value to software development teams, including automating repetitive tasks and accelerating code-writing processes. From here we will discuss three key considerations for using AI tools in software development teams:
- Data security
- Fair use
- Costs
As AI continues to permeate the software development landscape, understanding its capabilities and considerations will be crucial for IT leaders and development teams to leverage its benefits effectively.
How AI solutions are being used in software development projects
Software developers spend a lot of time working on the design and architecture of software systems to ensure that they are performant, scalable and maintainable. This can be thought of as the creative side of development — asking how you are going to solve a problem — wherein developers leverage their expertise and experience to design solutions that meet specific requirements and challenges.
However, a substantial amount of time is also dedicated to the meticulous implementation of those ideas. This includes tasks that may be considered more routine or labour-intensive, such as writing and debugging code, conducting comprehensive testing to ensure functionality and quality, troubleshooting issues and resolving bugs. AI tools, such as generative language models and code assistants, are being used to reduce this type of work in development.
The Stack Overflow Survey shows that 44% of professional, experienced developers are already using AI in their development process, while 82% of those learning to code intend to in the future. These findings attest to the widespread uptake of AI tools in software development – both today and in the future.
AI solutions being used in software development teams:
Generative AI is one area being used to speed up traditional software development processes. Generative AI can generate new content or data based on patterns and examples that it has learned from existing information. Recent advancements in these technologies has led to their widespread use, with a recent UK Forbes Advisor poll finding that 85% of respondents were aware of generative AI language models such as Chat GPT, Google Bard and Bing Chat.
This article primarily covers how generative AI solutions are being used in software development teams, with consideration of other applications of AI and machine learning. Here are three example AI solutions that are being used by software development teams today:
- GitHub Copilot: AI code assistants like GitHub Copilot can be used to autocomplete or generate code based on the surrounding context and developer prompts. Software developers are still doing the creative thinking of how a problem can be solved, but in terms of writing the code, these tools can help by giving them enough input. Github claims that, in files where the tool is enabled, nearly 40% of code is written using GitHub Copilot. This claim highlights the seismic impact that AI is having upon software development processes.
- ChatGPT: Another generative AI tool being used by software development teams is ChatGPT. Like GitHub Copilot, ChatGPT enables developers to speed up their development process with the ability to generate boilerplate code and access help with debugging. The tool can also be used to assist with process of writing unit tests by proposing relevant test cases for consideration.
- Amazon CodeGuru Reviewer: As part of the Amazon CodeGuru suite of tools, the Reviewer component is being leveraged by software development teams to enhance code quality and performance. Using machine learning algorithms, CodeGuru Reviewer analyses code and provides intelligent recommendations to improve code correctness and efficiency. It can identify coding issues, security vulnerabilities and areas for optimisation, in turn, helping with code review and continuous improvement processes.
Not all AI solutions are generative
Generative AI is just one area of AI and machine learning, with other applications also providing real benefits to software development. Another scenario where AI can be used in software development is applying machine learning algorithms over log files for pattern recognition. By analysing patterns in log file data, such as user activity and requests, AI can give software development teams valuable insights into system behaviour and performance.
These insights can then be used to detect critical issues such as security vulnerabilities. In this case, machine learning can be used to identify a malicious user trying to attack a system by detecting abnormal patterns of activities in the log files.
This application can also be useful in proactively informing a development team that an application is about to crash. When an application has crashed before, there are patterns in the log files, such as request and response times, that indicate an imminent crash. Machine learning can be used to recognise these patterns and provide early warnings to operation teams, which then enables them to take corrective action before issues escalate.
This proactive approach saves time and effort, as developers and operations teams can get insights into system performance without the need for continuous manual monitoring of dashboards and log files.
While there is great potential in AI, these technologies remain relatively new within software development practices and, therefore, how they are used requires careful consideration. The following sections outline three key considerations for using AI in software development teams.
1. Data security
When using AI, particularly in the context of configuration tasks that involve generating code related to an organisation’s intellectual property, it is crucial to conduct a thorough risk assessment. Policies must be established to prevent sensitive intellectual property or confidential information being leaked.
Without proper governance and controls in place, there may be a lack of visibility into the data shared with AI tools, and sensitive information could be exposed or mishandled. Additionally, if models are trained on proprietary company data, there could be implications related to ownership and confidentiality.
Earlier this year, Samsung Electronics banned the use of ChatGPT and other AI-powered chatbots by its employees due to concerns about the accidental leakage of sensitive internal information, as well as data storage and potential sharing of sensitive data. This follows similar actions taken by organisations like Amazon and JPMorgan Chase, who also banned use of the tool due to compliance concerns.
ChatGPT's generative nature and reliance on learned data make it susceptible to these compliance concerns. As a language model based on AI, ChatGPT lacks the ability to effectively filter sensitive information. This poses a risk for employees inadvertently sharing confidential data while using the tool, as it lacks an inherent understanding of data sensitivity or organisational regulations.
2. Fair use
The recent uptake in the use of AI solutions in organisations makes these tools akin to shadow IT, whereby software development teams are using these tools without predefined guidelines on fair use. While this raises obvious concerns with data security and governance, it also means that these tools are not always being used optimally, in turn, leading to inefficiencies or overuse in software development teams.
It is important to consider, for example, how AI tools can influence the estimation process within software development teams, especially in the scenario where not everyone is using an AI tool to carry out their responsibilities. Striking a balance and establishing fair practices in estimation can help ensure equitable workloads and maintain collaboration across the team.
Relying heavily on a particular tool carries inherent risks, such as the possibility of encountering a point of failure or the potential for individuals to be deskilled. The greater the dependence on a tool, the more significant the impact when it becomes suddenly unavailable. This may occur due to drastic changes in the licensing model or in the event of a substantial production outage, which then results in a prolonged period of unavailability.
Organisations such as Meta are taking corrective action to ensure that their LLMs are being used responsibly. With the release of Llama 2 — Meta’s latest LLM and GPT-3 competitor — the organisation has provided a responsible use guide, which includes “best practices and considerations for building products powered by large language models (LLMs) in a responsible manner covering various stages of development from inception to deployment”.
Collaborative efforts between software development teams and IT leadership can help organisations map out map out a clear strategy for the fair use of AI solutions in software development. This documentation can advise developers on how to responsibly integrate AI tools into their development workflow.
3. Costs
Some tools operate on a pay-as-you-go plan, which means that the more they are used, the higher the costs incurred. Generative AI tools like ChatGPT and GitHub Copilot offer a flat rate per user, which can be beneficial for teams with more predictable usage patterns.
Add-ons are also common when using AI products. Organisations should be mindful of tools that do not provide transparent pricing structures or that bundle unnecessary features, as these can drive up costs and potentially lead to overspending.
Assessing the scale and scope of how an AI tool will be used within a software development team will ultimately give the best idea of which solution will be the most cost-effective for your organisation.
Artificial intelligence as a tool to bolster software development delivery
While AI offers significant potential in streamlining development processes, it is important to remember that these tools are meant to enhance, not replace, the skills and expertise of software developers.
The focus should remain on the outcomes expected from software developers and AI should be viewed as a valuable tool to help achieve those outcomes more efficiently. It should not be treated as an end in itself, but rather a way to improve productivity and deliver high-quality results.
Audacia is a leading UK software development company with experience delivering AI solutions for leading organisations. We collaborate with organisations to leverage artificial intelligence & machine learning to improve services and make decisions better, faster and at scale. We can provide end-to AI and machine learning services – from consultancy, process analysis and data valuation, to prototyping, development, QA and support.
To find out more about the services we offer, contact us today on 0113 543 1300 or at info@audacia.co.uk