The Engineering Leader S Guide To Ai
WRITTEN BY GITHUB WITH The engineering leader’s guide to AI Ask these questions to find the right AI solution for your team Written by GitHub with PAGE — 2 AI isn’t coming, it’s here Ever wonder what it would be like to have an extra pair of hands while coding? AI is quickly becoming a game-changer in software development, and it’s hard to ignore its growing impact. In a recent study, GitHub surveyed 2,000 respondents, 500 each from the U.S., Brazil, Germany, and India. Most of the people surveyed were developers and programmers, but we also included a small number of data scientists and software designers. Across the board, over 97% used AI coding tools to help with their work. That’s significant! GitHub also teamed up with Accenture to see how developers felt about using GitHub Copilot. The results? A solid 95% said they actually enjoyed coding more with GitHub Copilot’s help. In all, it’s clear that developers are using AI coding tools, and that they’re going to keep on using them. These tools are making a difference in developer happiness, and embracing an AI solution can have a related impact on employee retention. While it’s great that AI tools make developers happier, how do they impact performance? Good news on that front. We ran a study with 36 software developers of various experience levels and introduced
them to GitHub Copilot Chat, a tool that uses natural language to provide real- time guidance, tips, and solutions for coding challenges. After using it, 85% of participants had more confidence in their code. They said it was more readable, reusable, concise, maintainable, and resilient. Plus, they detected fewer errors and performed code reviews 15% faster. So, with the right AI tool, you’re looking at some real, measurable improvements. However, AI is still evolving, so it’s not as simple as just telling your team to pick up the latest AI tool. There’s a lot to think about before jumping in. But one thing is certain: AI is here to stay, and is already making a positive difference in many developers’ lives. In this paper, we’ll cover the following topics: • How AI is currently being used in software development • The first question you should ask • Calculating the positive impact of an AI solution • Determining the cost of an AI solution • Some security and other considerations • The importance of communicating your AI usage
Written by GitHub with PAGE — 3 How AI is used by developers Wanting to use AI is great, but what exactly does that mean? There are a lot of tools out there, and they can do different things. Before we dive into how to pick the right one, let’s talk about what AI can do. For example, GitHub Copilot is a coding tool that you can install as an extension for your coding environment. Once Copilot is set up, it jumps in to suggest code as you’re working. When you provide a header for a function, Copilot might provide a code suggestion for the entire function. Or, if you describe something you want to do in comments using natural language, Copilot can suggest code to make it happen. But code completion and code suggestion are just the beginning of how AI tools are being used. Here are some other ways that AI is used in the software development lifecycle: • Coaching and education: You can chat with AI to ask questions about some code, understand best practices, and have it explain why something was coded a specific way. This can help you sharpen your skills and if you’re a newer programmer, can enable you to ramp up faster on a specific codebase. • Improving code quality: AI tools can scan existing code and suggest improvements or flag potential security risks, such as hardcoded credentials, SQL injections, and path injections. Catching these early can help you reduce the number of iterations and future fixes. • Greetings test cases: You can automatically create unit tests for applications, helping with test case coverage and reducing the significant manual effort required to create and maintain these test cases. • Documentation generation: AI tools can help create documentation for using your code, making it easier to share code or onboard others. • Translating code: AI coding tools are often proficient in more than one language. They can help translate code from one language to another, even if you’re not overly familiar with the source language. AI tools can do a lot! There are also both native AI solutions and add-on solutions. What’s the difference and why does it matter? Native AI solutions are already integrated in your authoring environment. They’re designed specifically for the environment they are created for, often resulting in minimal upkeep required by the user. Add-on AI solutions are external solutions that integrate with your environment. They often provide a lot more flexibility, but do require additional installation or configuration steps. Written by GitHub with PAGE — 4 Identify the problem you want to solve When looking at AI solutions, what do you want to do? Where can your developers use the most help? According to a recent study, 44% of developers want AI to help generate unit, integration, and functional tests. In a close second, 42% of developers want AI to analyze their code, helping find vulnerabilities or optimizations. The best first step is knowing what you want your AI solution to do. AI is very good at solving some problems, but it struggles with others. Once you figure out what you want AI to do, use that as your North Star and pick an AI solution that addresses your specific pain points. Just like when you craft a query for generative AI, the more specific you are, the more success you’re likely to find. For example, let’s say you want to modernize an application from COBOL to Java. Modernizing would make it easier to find developers to support and improve the app, plus Java has some modernization and advancements. However, you need a developer familiar with both COBOL and Java to do this modernization. COBOL developers are hard enough to find, let alone finding one also proficient in Java.
A survey of desires and concerns.” Queue 22.3 (2024): 53-78. Enter GitHub Copilot. Copilot knows several programming languages and can take a look at your COBOL codebase and explain it to you. You can ask it questions while building the Java version. It can even offer suggestions while you’re writing the code! By defining the problem (modernizing an application), you can find an AI solution good at this task. Measure the impact How are you going to measure the success of your AI solution? Claims about the value of AI are just about everywhere. You’ve probably seen statements like “AI makes developers up to 55% faster.” But how are you going to measure that improvement? This is further complicated when you consider costs. Are you seeing enough benefits to justify the expense? The key to answering this question is good metrics. So let’s talk about the two different ways you might see improvements. First, there’s velocity. AI often supports developers by letting them perform the same task, but faster. But it’s not all about speed! Don’t forget about quality. Using AI coding tools can result in code that’s more secure, requires fewer fixes, and performs better. When you think about the impact of AI, you need to consider both of these directions.
happiness