In this episode of Emergent Podcast, Mike Allen, Director of Software Engineering at Emergent Software, talks GitHub Copilot, including what it can do, how it’s affecting development and hiring developers, and whether it will make software engineers obsolete.
What is GitHub Copilot?
By now, most people have used ChatGPT, the generative AI tool developed by OpenAI. Microsoft partnered with OpenAI to make GitHub Copilot and Copilot has the same natural language processing abilities as Chat GPT. But it was also trained on GitHub, the world's largest source code host, so it understands code as well as natural language.
Copilot’s original use was as an autocomplete tool in your code editor. Just start typing and it will give you suggestions using the context of your existing code. Another way to use Copilot is by typing a comment. Tell Copilot what you want to do, and it will provide you with code suggestions.
A few months ago, Copilot Chat was released. This feature lets you interact with Copilot like Chat GPT. For example, you can highlight a section of code and ask Copilot to explain it to you.
Copilot and privacy
Some companies and users may be worried about putting proprietary data into Copilot. Will the AI tool take your code and reuse it?
In the podcast episode, Mike explains that GitHub Copilot doesn’t store your code anywhere. When you enter it into CoPilot, it gets sent through the natural language processing, but isn’t saved.
Not all AI tools are this careful with your data, so it’s an important benefit of Copilot.
Using GitHub Copilot for testing
Mike talks about how you can use GitHub Copilot for testing. Copilot doesn’t test the code it helps you write, but it can still help with the testing process. For example, you can ask it to write a unit test for a particular block of code. You can also ask it questions like, “what could be better about this code?”
Are software engineers obsolete?
Many developers may worry that GitHub Copilot and other AI tools will make them redundant, but Mike says you don’t need to worry about that.
A developer’s job is so much more than just writing code. For example, software engineers may talk to clients, gathering business requirements and turning them into a technical solution. They design architecture and make sure the code is maintainable.
Mike estimates that writing code is only about 40% of what a developer does. And even that needs a human touch. Copilot often gets it wrong, so it’s important to have an experienced developer looking through everything it generates. On average, developers using Copilot only accept 30% of its suggestions.
Is Copilot 55% faster?
Microsoft likes to claim that GitHub Copilot lets developers code 55% faster than they would otherwise. Mike explains that this number comes from a particular study. The task the developers in the study had to complete didn’t require a lot of thought, just typing out code, so Copilot was able to drastically cut the required time.
In Mike’s estimation, Copilot actually makes developers more like 10-15% faster on a project basis—still quite valuable!
How Copilot affects hiring
Mike talks about how the rise of AI has affected Emergent Software’s own hiring process. Emergent requires candidates to complete a coding challenge to gauge their skills. When Chat GPT was new, Mike tried putting this challenge into the AI tool and it provided a better-than-average result.
These days candidates regularly use AI to come up with a solution to the challenge, so Emergent has had to consider new ways to test candidates.
Tips for software engineers and software engineering leaders
Mike leaves us with some advice for developers and leaders of development teams.
For the leaders, temper your expectations. It won’t make everything 55% faster, but it will help with many things.
For the developers, don’t worry about being replaced. AI can be your helper, taking on repetitive tasks and helping you think through things. You’re still in the pilot’s seat.
To enable comments sign up for a Disqus account and enter your Disqus shortname in the Articulate node settings.