One of the founding fathers of modern management theory, Peter Drucker once said “The best way to predict your future is to create it”. Now, whilst he passed away 18 years prior to the advent of Generative AI copilots, I’m sure (based on his quote) that he’d be an advocate of adopting technologies that change the future of work, whether you are writing code or writing blogs – like I am right now!
In the unbelievably fast-paced world of modern software development, the desire for efficiency, efficacy and pace has only gathered momentum since the advent of copilots and automated code generation. Whilst faster doesn’t always mean better… efficiency is largely what big data and AI has always promised the business world, so of course it is high on the agenda.
Let’s imagine a future together… One where developers spend less time on repetitive coding tasks and more time tackling complex problems, unleashing their creativity to problem solve and find more elegant ways to build better software. This is the promise land that AI-powered coding tools like GitHub Copilot believe is possible, a world in which every developer has the unlimited leverage of large language models (LLMs) to assist in their everyday tasks.
But with research starting to show that the tools are not quite at the level of sophistication that they need to be (yet!), there’s a finely balanced debate brewing on whether productivity gains are worth the potential drop in quality or reliability.
This article delves into how AI copilots are transforming the coding landscape, examining the balance between enhanced productivity and potential pitfalls, including code quality, developer skills retention, and the dynamics of collaboration. By understanding these aspects, developers and businesses can better navigate the evolving terrain of software development in the age of AI.
There are a wide range of code generation tools available, but for this article and in this context, I want to talk about the most mature, which is GitHub copilot.
GitHub Copilot claims to offer an impressive advantage by reducing time on repetitive coding tasks, often cited as a productivity boost of up to 30% by recent studies, by generating suggestions, syntax completions, and boilerplate code snippets, Copilot frees up developers to focus on complex problem-solving and creative coding, which in turn reduces time-to-deployment.
This has been transformative in agile environments, where speed and adaptability are essential to meet the demands of rapid project cycles. Copilot’s design integrates seamlessly into popular development environments, making it a go-to tool for enhancing productivity across varied development tasks.
However, while GitHub Copilot may seem like a silver bullet, recent research indicates that it can also introduce certain risks to code quality.
The real power of LLMs is their vast training data, but in some cases, this can also work against them. As studies by SonarSource have shown, Copilot occasionally suggests code that, while functionally correct, may lack the robustness required for complex, real-world applications.
In a recent internal test by one of our developers, we encountered a significant issue with a leading LLM tool. After spending over an hour attempting to fix unit tests for code it had generated, the tool ultimately gave up without a solution. This situation raised serious concerns, especially since the original prompt was developing a small cloud architecture through automated pipelines. The suggestion to forgo unit tests in favour of a hit-and-hope deployment approach was particularly troubling, highlighting the potential risks of relying solely on automated solutions in critical areas of development.
The Pragmatic Engineer blog ran a survey this past summer which was “moderately critical” about the state of the copilot market:
These findings balance the promise of hyper-productivity by setting out the dangers and drawbacks experienced developers will immediately understand.
The learning curve, lack of context on codebases & their inherent standards, simplistic use of copied code without scrutiny and the fact that LLMs are trained on ‘legacy’ code by default are all worth exploring in more detail.
When developers become too reliant on Copilot’s solutions, the risk is that they may accept code at face value without the same rigorous testing or scrutiny as hand-written output. In the worst cases, this can lead to vulnerabilities and performance issues further down the line if AI-suggested code bypasses best practices or introduces subtle errors that go unnoticed.
Another concern often raised is the potential effect of copilots on developer skills and engagement with core coding principles. With the ease of access to ready-made solutions, there’s a real risk of developers losing touch with the essential logic and structure of the code they are building. Copilot’s instant suggestions are undeniably convenient, but when relied upon too heavily, they may inadvertently discourage the hands-on engagement fundamental to solid software craftsmanship.
The convenience of AI assistance is appealing, particularly for less experienced developers, but over time, this could result in skill atrophy and reduced confidence in solving complex coding challenges independently.
A vital consideration for businesses, especially those focused on quality and security, is how copilots influence team dynamics and collaborative coding practices. Coding has always been a collaborative endeavour, with peer reviews, shared knowledge, and feedback loops integral to producing robust, high-quality software.
AI copilots like GitHub Copilot could alter this balance, as some developers may bypass traditional peer review processes, assuming AI-generated code is “reviewed” or sound by default. This shift in practice, as highlighted in recent InfoQ studies, is risky; AI suggestions, like any other code, demand scrutiny and testing.
It’s fair to say that if developers originated every line of code they committed, platforms such as StackOverflow would have been out of business many years ago and open-source forking far less common.. Ultimately, those suggestions are peer-reviewed in public and open to scrutiny, unlike the opaque output of LLMs. But perhaps copilots offer a form of pairing that is not always available due to operational constraints, giving developers a level of agency and independence they lack today.
Yet, AI copilots also offer exciting possibilities for customisation. GitHub Copilot has evolved to include features allowing developers to fine-tune the tool’s responses, aligning its outputs more closely with team standards or individual preferences. This customisability is particularly beneficial for organisations that work across various industries, as it ensures Copilot can generate code that meets sector-specific requirements or adheres to internal guidelines.
With companies increasingly adopting CI/CD pipelines, a personalised copilot can complement these frameworks by aligning its suggestions with continuous integration practices, reducing integration errors and increasing code cohesion across projects.
Notably, copilots like GitHub Copilot do best when used alongside established coding standards, human oversight, and rigorous testing. SonarSource’s insights remind us that while these tools generate code effectively, they may struggle with specialised knowledge or ethical considerations unique to certain sectors, such as finance or healthcare.
In such cases, human expertise remains irreplaceable. By positioning copilots as supportive tools rather than replacements for hands-on coding, businesses can maximise their benefits while ensuring the human element remains at the core of development.
AI copilots represent a profound leap in coding productivity, with GitHub Copilot leading the way. However, as with any tool, their value depends on thoughtful integration into existing practices. For organisations looking to adopt AI copilots, the key will be to strike a balance that marries efficiency with the rigour of established software development principles.
By embracing copilots as valuable aides while fostering a strong culture of collaboration and review, organisations can leverage the best human and AI capabilities, driving innovation in a way that’s both efficient and sustainable for the long term.