Artificial intelligence continues to permeate all areas of the modern business landscape. From sales and marketing analytics, to supply chain optimisation and customer service chatbots, organisations globally are leveraging AI services to drive efficiencies and deliver value.
Software development is no exception. The annual Stack Overflow survey shows that 70% of developers are already using or plan to use AI tools in their development process. These tools are helping developers complete labour-intensive, repetitive tasks, such as writing and debugging lines of code, with greater efficiency.
With so many developers implementing these tools into their workflows, it is important to explore their impact in software development teams. Here we look at 3 tools that are being used across the software development cycle to streamline workflows and make software development more efficient overall:
- GitHub Copilot
- ChatGPT
- Amazon CodeGuru Reviewer
We will evaluate the value and considerations that come with each tool and detail an example of how they can be used.
1. GitHub Copilot
GitHub Copilot is described as a “pair programmer” which enables software developers to code faster and more efficiently. At a high level, Copilot answers questions posed by developers as well as providing autocomplete suggestions for code that is being written.
This can significantly reduce the time spent on manual coding tasks. These capabilities are evidenced in a recent study showing that developers using Copilot were able to complete tasks 56% faster than those who were not using the tool.
Copilot can be installed as an extension within Visual Studio Code (VS Code) editor. Once installed, a Copilot icon will appear at the bottom of the VS Code interface. From here, developers can utilise Copilot's capabilities, such as asking a question (prefaced by a q). A list of code suggestions will be provided, from which a user can review and accept the appropriate response.
When coding, developers can also specify document types and press enter to generate relevant code templates. To generate a new HTML file, for example, users can type “html”, hit enter, and Copilot will automatically generate a basic HTML template.
Considerations:
Copilot, like other generative AI tools, can still produce inaccurate responses from time-to-time. Insecure code generated by the tool could, for example, lead to security vulnerabilities in software down the line. Human input and code review, therefore, remains crucial when using tools like GitHub Copilot.
2. ChatGPT
ChatGPT has been used for a variety of business cases, including content creation, virtual assistants and customer support. However, ChatGPT is also being used by software developers to augment their coding capabilities and streamline various aspects of the software development process.
Findings from Postman’s state of AI 2023 survey shows that 60% of developers and API professionals are using generative AI for use cases such as code generation, debugging and coding instruction, all functions where ChatGPT can assist.
One particularly powerful way that ChatGPT can be used is to assist in the process of writing unit tests. ChatGPT can help generate test cases based on a method provided by a developer. This could be something as simple as adding two numbers together and returning a sum. ChatGPT then gains an understanding of the method and its requirements to propose test case titles for the developer to consider.
Using ChatGPT in this way is particularly useful in test-driven development, where tests are written before the code is implemented. ChatGPT can help developers address the abstract question of what a system does and generate relevant test data that ensures thorough test coverage.
Considerations:
Developers should be mindful of any information they do share with ChatGPT, as this could inadvertently disclose sensitive data or intellectual property. Research has shown that 11% of data employees give to ChatGPT is confidential. Concerns around data sharing has led enterprise organisations like Amazon to limit their employees use of ChatGPT. This consideration is particularly relevant when working with clients or collaborating on projects with external partners.
3. Amazon CodeGuru Reviewer
Using AI code review tools has become an increasingly useful practice in software development teams. According to Gitlab's Global DevSecOps Survey, 31% of teams are now leveraging AI/ML for code review, marking a significant 16-point increase from the previous year.
Amazon CodeGuru Reviewer is one such AI-powered tool offered by Amazon. CodeGuru Reviewer uses machine learning to help identify critical issues and provide recommendations on how to improve code quality.
Developers can get started with Amazon CodeGuru Reviewer by installing the Reviewer integration via AWS. Once set up, Amazon CodeGuru Reviewer can be configured to analyse code changes and pull requests within a given repository. From here, the tool provides a comprehensive report with recommendations about how to improve code.
While static code analysers remain valuable for hard-coded rules such as limiting message length or enforcing specific naming conventions, tools like Amazon CodeGuru Reviewer can be trained to identify subjective or harder-to-spot elements that a human reviewer would typically look out for.
Developers often have an intuitive understanding of what constitutes good code, but expressing those qualities explicitly can be challenging. By training a machine learning model to recognise these “good” and “not good” code features, significant time can be saved in the review process.
Considerations:
Currently Amazon CodeGuru Reviewer only supports Java, Python and JVM languages like Kotlin and Scala. Software development teams who are using other languages will, therefore, need to consider alternative code review tools to ensure seamless integration with their development workflow.
Amazon CodeWhisperer – the organisation’s latest ML-powered code generator – supports a wider variety of languages such as TypeScript, C# and Ruby, and may therefore offer a useful alternative for both code generation and review.
Conclusion
As AI tools become increasingly prevalent in software development, understanding their benefits and potential challenges becomes crucial for optimising development processes and maximising the value that they can bring software development teams.
As with all technology, these solutions should be implemented carefully and with full consideration of their impact across operations. Organisations can take responsible action by ensuring that robust policies and guidelines are put in place to address potential risks and concerns associated with the use of these tools.
This includes assessing and mitigating risks related to data privacy, intellectual property, and security. These proactive measures can help organisations and their software development teams harness the power of AI while safeguarding against potential pitfalls.
Audacia is a leading UK software development company, headquartered in Leeds. We have significant experience working across industries to help organisations improve, scale and innovate with technology.
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.
Speak to us today on 0113 543 1300 or email info@audacia.co.uk to find out more about the AI solutions that we offer.