Skip to content
  • Development
  • AI

Using GitHub Copilot and generative AI to accelerate software development

July 18 — 2024

Rémi Prévost
Partner, Director ⏤ Software Development

GitHub Copilot is a generative AI tool introduced by GitHub a few years ago as an “intelligent assistant” to make developers more efficient. At Mirego, we’ve been using it in our open-source projects since its 2021 technical preview.

The arrival of GitHub Copilot Business in 2023 was the spark that allowed GitHub Copilot’s impact to increase, as its privacy and security features made it possible to use in our clients’ projects.

This article explores the different ways GitHub Copilot can be used and demonstrates how it has become an essential tool for development teams looking to maximize their efficiency.

The figures are quite impressive. A study published in 2023 by McKinsey estimates the impact on developers’ productivity using generative AI tools to be between 20% and 50%. Another study by GitHub shows a 55% increase in productivity when GitHub Copilot is used to complete a task.

According to Stack Overflow’s annual community survey, the vast majority of responding developers expect their use of AI in their work over the next year to be different or very different from current use.

The potential and quality growth of generative AI suggests that this increase in efficiency will only multiply in the coming years, making it crucial, as we have done at Mirego, to adopt and master these technologies now.



Efficiency as a developer

Before discussing concrete cases of using GitHub Copilot that improve our efficiency, it's important to define this notion of efficiency.

In terms of software development, it’s easy to think that efficiency can be achieved by writing the most lines of code in the least amount of time. Minimum effort or resources to accomplish a task. In short, a synonym for productivity.

However, the efficiency we’re referring to is better described as a way to “put efforts in the right places,” not just “make minimum efforts.” Being more efficient on tasks that can be optimized allows for improving the quality of what is less easily optimized.

Generative AI tools like GitHub Copilot allow for saving precious minutes or even hours each day, without sacrificing the quality of what is produced. This time savings then translates into two elements that directly benefit the product: reduction of the budget needed for the project or better use of the budget to create even more exceptional digital products.



Efficiency in code implementation

This is the typical and simplest case of GitHub Copilot. The tool bases itself on what context it has of the current file and cursor position to try to suggest the best possible continuation.

Since it's powered by an LLM, it’s possible to guide it intelligently to not be at the mercy of the little context it can base itself on. For example, writing a brief comment describing what we want to do (instead of just a function name) will make the suggested implementation much more precise.



Efficiency in code understanding

As a developer, time spent reading code is far greater than time spent writing code. Writing code optimized for reading (and thus maintainability) is crucial.

Having to deal with legacy code is increasingly common for many development teams; GitHub Copilot can help break it down and understand it to be able to develop ownership.

Obviously, it probably won’t be able to explain 100% of what’s happening, but it will certainly be able to suggest leads or ask questions, like an intelligent rubber duck would.



Efficiency in code debugging

Much like explaining code, it can be difficult for GitHub Copilot to understand all the context necessary to diagnose any problem.

By striving to provide it with as many clues as possible (e.g., an error message, a complete stacktrace, or documentation references), its performance improves.



Efficiency in writing tests

Automated tests are an excellent way to ensure the maintainability of our code. Their use is just as important.

In cases where code works but there are no tests to validate its behavior, GitHub Copilot helps lock in this good functioning by writing tests. Starting with simple test cases, it can easily extrapolate them into executable code.



Efficiency in code refactoring

Obviously, GitHub Copilot is capable of taking code and transforming it to improve it and adopt better practices. It can be used to optimize code to meet the latest accessibility and security standards.

As with any refactoring functionality (involving generative AI or not), a safety net is required to ensure not breaking the product’s functioning — for example, a good series of automated and manual tests.



Putting it to work

For the redesign of La Ruche’s website, a crowdfunding platform, one of the main objectives was to take the existing code, leverage it, and evolve it quickly.

Our team’s use of GitHub Copilot greatly contributed to achieving this goal. Beyond its basic use, we pushed its capabilities to the maximum to allow us to:


  • Evolve the platform faster by developing ownership of the code more quickly
  • Limit the number of technical issues by surfacing potential side effects in the development of new features
  • Ultimately, be able to spend more time on what really matters: product features



A tool for the future

At Mirego, we believe that organizations that best refine their use of these generative AI tools and deploy them across their development processes will be those that stand out in the future.

Advanced use of GitHub Copilot allows for continuously increasing the value brought to a project, in several facets related to development; both in terms of code writing and long-term maintenance of it.

00:00
00:00

En français SVP !