The arrival of AI coding tools is already changing the way developers work.
Nearly all respondents in our recent survey said they’ve used AI coding tools at some point—and the vast majority said these tools help make it easier to write higher-quality, and more secure, code. Similarly, the State of JS 2023 survey found that only 18% of respondents did not regularly use an AI coding tool.
Generative AI for the IT Pro co-author, Chrissy LeMaire, told us recently that LLMs are transforming her workflow. “When you start a project, you have to set up all sorts of things,†she said. “It takes a while before you get to the exciting parts. Now I let the LLM do it for me. With AI coding, it starts out exciting.â€
GitHub research suggests AI tools can boost developer productivity by up to 55%—but what do you do with the time saved from using AI coding tools? According to our survey, respondents spend more time on system design, collaborating with colleagues, and learning new skills, among other things.
What’s more, AI tools make them better at what they do, creating positive feedback loops that help them not only write more code, but write better code as well. To find out what this looks like on the ground, we’ve been talking with developers about how AI is changing their workflows and what they’re doing with the time saved from using AI coding tools.
In this article, we’ll:
- Hear from developers about how they use AI coding tools to save time.
- Share a few tips on how to get started.
Less time debugging, more time planning
Many developers report the ability to spend more time on the designing and planning stages thanks to AI—and that means more time for being a system thinker, which is a net benefit. “I spend less time figuring things out through trial and error, and more time making sure my code is secure and performant,†open source developer, Claudio Wunder, told us in our recent Q&A on AI coding tools.
He’s not alone. In our survey, 40-47% of respondents say AI has enabled them to spend more time designing systems and customer solutions. Meanwhile, 37-43% of respondents said they spent more time refactoring and optimizing code.
In other words: Developers are spending their time making their code better, instead of just trying to make their code work.
The process starts before you even write your first line of code. For example, Wunder uses GitHub Copilot Chat to think through projects. This idea of explaining ideas to an inanimate object to clarify one’s own thoughts is called “rubber ducking.†But LLMs bring a new dimension to this activity: They can talk back. Instead of just putting his thoughts in order, Wunder actually gets feedback on his ideas and goes into new projects with a clearer idea of how he wants to structure his code. LeMaire finds herself doing much the same: “I spend less time doing grunt work and more time just talking.â€
Here are some practical tips to get started designing systems and refactoring code with GitHub Copilot:
- State your preferences. Wunder starts new projects by telling GitHub Copilot Chat he prefers ES6 built-ins and arrow functions. “These simple statements can usually help you achieve your desired code output and better understand Copilot’s thought process,†he explains.
- Share examples. LeMaire approaches projects in much the same way she did without LLMs: By finding examples of similar things. “I upload the sample files, sometimes concatenating them into one big file, and tell the LLM what I’d like,†she says.
- Start with a skeleton function. When it comes time to generate inline code, Wunder recommends starting with meaningful parameters, arguments, and comments that explain what the function should be and what each parameter should control.
- Debugging as a conversation. Wunder keeps all the related code open in VS Code and starts a new Copilot Chat session with the prompt “Let’s debug some code.†He then asks Copilot questions, such as what it believes the code is doing and what would happen in response to different user inputs. “I try to provide as much context to Copilot about what the code is supposed to achieve and I keep iterating with follow-up questions until I find the problems and solutions,†he says.
Less time working on docs, more time working together
AI isn’t just for talking to machines. It frees up time for developers to talk with each other as well. 40-47% of our survey respondents say AI helps them spend more time collaborating with team members on projects. Another 39-45% said they spent more time on code reviews, which are one of the main ways developers collaborate and help each other produce better work.
LLMs can automatically generate code comments and documentation, making code easier to understand and, by extension, easier to contribute to. “I was able to go through some JavaScript and have an LLM generate JSDoc-formatted documentation based on function names and parameters with something like 95% accuracy,†LeMaire says. “My team really loved that.â€
The upshot: Not only do developers have more time to work together, they can do so with more ease.
Here are some practical tips to get started when using LLMs to improve collaboration:
- Use your favorite existing help text as examples. LeMaire recommends providing LLMs documentation examples in the style you want to replicate. For example, she prompts the LLMs with help text from her favorite PowerShell commands to help the LLMs generate documentation that matches the tone and format she prefers.
- Leave comments in every file. Whenever you open a code file, add some comments to the top as a header to help GitHub Copilot better understand the code. “This will both accelerate your productivity, but also those of your team as you leave these little treats behind,†says GitHub developer advocate, Christopher Harrison. “A digital version of donuts in the break room.â€
Less time searching, more time learning and experimenting
It’s important to keep up with the latest languages, databases, libraries, frameworks, and APIs, but it can be overwhelming. AI helps by giving you more time to keep up with cutting-edge technologies. In our survey, 43-47% of respondents said they spent more time on learning and development, while 44-46% said they spent more time on research and development and emerging technologies.
AI also aids in learning, providing real-time assistance as developers learn new skills. LeMaire recently transitioned from a career in DevOps to one in front-end development and has been using AI tools to work faster while deepening her knowledge of front-end technologies. “It made switching from writing mostly PowerShell and SQL to writing mostly JavaScript much less stressful,†she says. “Otherwise, I would have had to spend much more time context switching and looking things up.â€
Similarly, DevOps architect, Alessio Fiorentino, has been using GitHub Copilot to learn Rust. “Rust is a powerful language that provides full control over the execution flow, but it has many nuances and requires a different way of thinking, especially for those who started with Python or JavaScript,†Fiorentino told us in a previous article. “AI assists me in navigating these complexities and ensures that I write efficient and idiomatic Rust code.â€
AI coding tools can be helpful, but they still require a pilot—and they aren’t a substitute for learning. “Even if LLMs are able to generate entire applications in the future, you will need to evaluate the code,†Wunder says. He sees the role of the developer transforming as LLMs take care of implementation details and recommends that developers work on understanding higher-level computer science concepts, and sharpen their communication skills. Fortunately there’s some synergy there: You need to write clear instructions to use an LLM, so AI coding tools actually strengthen the skills developers of the future need to hone.
Here are some practical tips to get started when using GitHub Copilot as a learning tool:
- Navigate a new or unfamiliar language or technology. Wunder recommends using GitHub Copilot to walk through the syntax and features of a given language. “I started learning Go recently and asked Copilot ‘What does adding a type after
:=<
on a variable definition do?’ It also helped me understand how namespacing and module definitions in Go work.†- Onboard with new code bases. Try highlighting a block of code and asking Copilot to explain it, or ask questions about the code, such as which variables relate to particular functionality.
- Visualize what you’re learning. GitHub developer advocate, Kedasha Kerr, has used Copilot’s mermaid diagramming features to better understand how data flows through an application.
What’s next
In a remarkably short period, AI coding tools have become an essential part of the development stack, rapidly transforming how developers spend their time and approach their work. Software development is shifting towards design and collaboration, as opposed to squashing bugs. It’s still early, but AI is empowering developers to unlock their potential like never before. We’re excited to see what you build with it.
The post How developers spend the time they save thanks to AI coding tools appeared first on The GitHub Blog.
Source: Read MoreÂ