GitHub Copilot and AI Coding Tools in Practice Accelerate AI Adaption from Individual Developers to Enterprise (Nick Wienholt)(Z-Library)
ai
No description
AI Reading Assistant
Summary and highlights from this book's index; jump to passages in the text
Tags
Support Statistics
¥.00 ·
0times
Text Preview (First 20 pages)
Registered users can read the full content for free
Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.
Page
1
GitHub Copilot and AI Coding Tools in Practice Accelerate AI Adoption from Individual Developers to Enterprise — Nick Wienholt
Page
2
GitHub Copilot and AI Coding Tools in Practice Accelerate AI Adoption from Individual Developers to Enterprise Nick Wienholt
Page
3
GitHub Copilot and AI Coding Tools in Practice: Accelerate AI Adoption from Individual Developers to Enterprise ISBN-13 (pbk): 979-8-8688-1783-0 ISBN-13 (electronic): 979-8-8688-1784-7 https://doi.org/10.1007/979-8-8688-1784-7 Copyright © 2025 by Nick Wienholt This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Ryan Byrnes Development Editor: Laura Berendson Editorial Assistant: Gryffin Winkler Cover designed by eStudioCalamar Cover image designed by Pexels Distributed to the book trade worldwide by Springer Science+Business Media New York, 1 New York Plaza, New York, NY 10004. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a Delaware LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail booktranslations@springernature.com; for reprint, paperback, or audio rights, please e-mail bookpermissions@springernature.com. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub. For more detailed information, please visit https://www.apress.com/gp/services/ source-code. If disposing of this product, please recycle the paper Nick Wienholt Pyrmont, NSW, Australia
Page
4
To my wonderful children Jess and Alex – you amaze and inspire me every day. To my friends in Pyrmont whose support and encouragement made this book possible.
Page
5
(This page has no text content)
Page
6
(This page has no text content)
Page
7
(This page has no text content)
Page
8
(This page has no text content)
Page
9
(This page has no text content)
Page
10
xi About the Author Nick Wienholt is a Sydney-based software engineer with over 25 years of experience in the design and implementation of large-scale software systems and has spent the last decade focused on development in the data science and AI space. He has a strong track record of delivery across a variety of financial and e-commerce systems, having consulted and worked with a large number of major corporate and propriety trading firms across Australia. He has been a keen user and advocate of ML/AI tools to accelerate development since their release.
Page
11
xiii About the Technical Reviewer Fabio Claudio Ferracchiati is a Senior Consultant and Senior Analyst/Developer specializing in Microsoft technologies. He currently works at Telecom Italia (www. telecomitalia.it). Fabio holds several Microsoft certifications, including Microsoft Certified Solutions Developer (MCSD) for .NET, Microsoft Certified Application Developer (MCAD) for .NET, and Microsoft Certified Professional (MCP). He is also a prolific author and technical reviewer. During the past decade, he has contributed numerous articles to both Italian and international technology magazines and has coauthored more than ten books covering a wide range of computing topics.
Page
12
xv Introduction Software developers and software teams are under tremendous pressure to make sense of and leverage the AI coding revolution. The exciting demonstrations from tool vendors make integrating and utilizing Copilot and other AI coding agents look so easy, but there is a huge gap between the simple demonstrations and getting Copilot effectively integrated into an organization. This book addresses the gaps that exist between the flashy demonstrations and effectively using Copilot across the full range of the software development life cycle and covers the big gap that currently exists between agile methodology and successful using of Copilot and coding agents. Copilot can be used effectively in many job roles, from data scientist and DBAs through to devops and architecture, and this book provides detailed coverage of how each of these job functions can take advantage of AI to increase their productivity. The book concludes with an examination on the employment impacts of AI on software engineers, how they can adapt and leverage new skills to combat the threat that AI is believed to present to their job function, and practical ways that engineers can stay relevant in the new AI age.
Page
13
1 © Nick Wienholt 2025 N. Wienholt, GitHub Copilot and AI Coding Tools in Practice, https://doi.org/10.1007/979-8-8688-1784-7_1 CHAPTER 1 Current State of Play: The High-Level View Probably in 2025, we at Meta, as well as the other companies that are basi- cally working on this, are going to have an AI that can effectively be a sort of midlevel engineer that you have at your company that can write code. —Meta CEO Mark Zuckerberg (https://www.businessinsider.com/ mark-zuckerberg-meta-ai-replace-engineers-coders-joe-rogan-pod- cast-2025-1) The reports of my death are greatly exaggerated. —Mark Twain (probably) The threat of jobs being replaced by new tools and technologies is nothing new, and the fears of humans being replaced or subjugated have a very rich literary tradition. In Frankenstein (published in the 1810s), Victor Frankenstein (who was the creator of The Monster, which was never named) ponders The Monster’s request for a female companion but concludes, “A race of devils would be propagated upon Earth who might make the very existence of the species of man a condition precarious and full of terror.” The 1920s play Rossumovi Univerzální Roboti (RUR), which coined the phrase robot, features hybrid human-machine robots taking human factory jobs. Looking at more recent tech history, Microsoft’s BizTalk Server promised in its 2000 release to significantly reduce the need for custom enterprise development by allowing business analysts to drop-and-drag elements on a design surface and implement the task with off-the-shelf execution modules. This promise was never fulfilled, and BizTalk had waned significantly in appeal. It hasn’t had a major new release in five years.
Page
14
2 For the last decade, low-code platforms like Power Apps have picked up the threat, enabling non-developers to create applications on a design surface similar to BizTalk. Power Apps and the Microsoft Power Platform come conveniently bundled with enterprise Office 365 subscriptions, and combined with SharePoint Lists as a poor man’s database and Microsoft Forms as an even poorer man’s UI, the execution environment of Power Apps allows shadow IT to flourish. For any software developer that has experienced the horror of a low-code “application” being transitioned to an established IT department in an organization, the lack of critical features like proper source control, isolated environments, configuration management, and monitoring makes these applications horrible to support, maintain, and extend. In addition, the “code” produced by users not versed in the traditional best practices of software design is often lacking in many quality metrics. I was a member of the initial framework team at one of Australia’s largest financial institutions (and top 50 worldwide) where a 2004 project aimed to develop a code generation framework that would significantly reduce the need for custom development by auto-generating C# code based on a SQL SELECT statement, with all the remaining CRUD functionality, ORM code, and .NET front-end spat out by a code generation tool. Within three years, over 1000 people were working on the platform, with approximately 30% of these being .NET developers tweaking the generated code to implement the desired user interface and add custom business logic that was not possible to express in a simple SQL SELECT statement. Given these experiences, is the sensible approach to simply put ones’ head in the sand and chant the mantra of “this too shall pass” safe in the belief we, as software developers, will never be replaced? The counterargument is that software management clearly believes the hype that the replacement of hand-coded applications is nigh, the current tooling is significantly more advanced than previous code generation technologies, and the fact that unemployment within the development ranks has increased significantly from the heady days of 2021. The factors that “make it different this time” include • The AI tools are significantly better at round-tripping code changes as requirements change and users are able to assess generated prototypes. This contrasts strongly with previous iterations of code generation tools that had fixed outputs and had very poor regeneration experiences. Chapter 1 Current State of play: the high-level view
Page
15
3 • The AI wave is being driven top-down. Previous generations of automated code generation have typically been bottom-up, with developers creating or utilizing tools from other developers to fast- track initial application scaffolds or develop CRUD user interfaces quickly. • The scale of investment in AI tools is unprecedented. The valuation, and ability to raise capital, for companies like OpenAI, which is behind ChatGPT, is extremely high. • The quantity of code bases that the tools are trained is massive. This gives them much greater abilities over previous tools that were generally single purpose. • The tools can understand the context of a task and adapt. • Natural language can be used to describe an arbitrary requirement and then generate code based on this requirement. Despite the euphoria, there are a number of challenges that AI-assisted coding needs to overcome: • In contrast to traditional code generation tools, AI-generated code is probabilistic, and many factors can impact the quality and accuracy of the generated code. • The range of languages in the code bases that the code generation models are trained on is limited. While there are a huge number of projects for front-end work that developers have shared publicly to GitHub (when combined, Type Script and JavaScript represent the top language group), other “boring” languages like SQL have much less training data available. Python, as a more glamorous language, represents 16% of the code pushed to GitHub in Q1 2024, while SQL doesn’t make the top 50 list (see https://madnight.github.io/ githut/#/pushes/2024/1 for the complete list). • The financial and environmental cost of the LLM models that underpin AI code generation are massive – Nature recently reported that electricity demand in data center-intensive Virginia is projected to double in the next decade (https://www.nature.com/articles/ d41586-025-00616-z). When the data center and GPU chips costs for Chapter 1 Current State of play: the high-level view
Page
16
4 AI-generated code are tallied, they represent a significant impact on an organization’s environmental, social, and governance score. The costs are currently absorbed by the likes of Microsoft and Google, meaning the ESG impact is likely to be ignored in the short term, but at some stage the impact will need to be recorded and managed. Huge inflows of market capital are financing the current boom in LLMs, but at some stage, investors will seek a return on these outlays above market adoption and usage (as happened after the dot-com boom investments in web properties at the end of the 1990s). Financial costs are already creeping up for premium offerings from OpenAI, Claude, and xAI. • LLMs still suck a bit at the moment. In the study “SWE-bench: Can Language Models Resolve Real-World GitHub Issues?” (https:// arxiv.org/abs/2310.06770), researchers from Princeton and the University of Chicago found that “the best-performing model, Claude 2, is able to solve a mere 1.96% of the issues.” The issues were pulled from real-world bugs “consisting of 2,294 software engineering problems drawn from real GitHub issues and corresponding pull requests across 12 popular Python repositories.” • There are large advancements and changes in the tooling and models on a weekly basis. This presents significant challenges for an individual and team embedding the tools in their Software Development Life Cycle (SDLC). From developers updating their Integrated Development Environments (IDEs) and plug-ins to support the latest advancements, to QA and DevOps teams scrambling to accommodate the changes in AI tools used in their processes, the rate of churn presents a significant challenge to organizations. • The generated code is often close to being right, but not quite there. Keri Olson, who is IBM’s Vice President of Product Management (IT Automation), says the following on using AI to upgrade a COBOL code base to Java – the AI says: “Okay, I want to transform this portion of code.” The developer may still need to edit the code that the AI provides. “It might be 80 or 90 per cent of what they Chapter 1 Current State of play: the high-level view
Page
17
5 need, but it still requires a couple of changes. It’s a productivity enhancement - not a developer replacement activity” (https://www. owler.com/reports/ibm/ibm—ibm-wants-to-use-ai-to-upgrade- cobol/1701172082889). As a developer, inheriting a code base that is “80 or 90 per cent of what they need” can be worse than no code at all – which 10–20% doesn’t meet the solution requirement? To understand that, the entire code base must be analyzed and understood, which for complex code bases can exceed the time to write it correctly from scratch. • Related to the point above, developers may have an unwillingness to take ownership for generated code. “The bug is the AI’s fault” is a natural response to a technology that can feel like it’s out to take your job, and the ownership avoidance issue is proportionally increased as the volume of generated code is increased. • Code generation to implement trivial tasks removes an important activity that was traditionally assigned to junior developers to hone and upgrade their skills. Without junior developers learning and advancing in their career, the number of senior software practitioners needed to manage a hybrid code base of hand-crafted and machine- generated code will eventually decrease below replacement level. • Licensing issues and legalities with generated code have not been fully explored. The legal process moves much slower than the technology industry, and AI-generated code may expose organizations to significant legal claims around intellectual property ownership in the future. • Some of the solutions generated by AI coding tools are simply wrong, often in subtle ways. Stack Overflow famously announced “all use of generative AI (e.g., ChatGPT1 and other LLMs) is banned when posting content on Stack Overflow.” They elaborated that “the average rate of getting correct answers from ChatGPT and other generative AI technologies is too low, the posting of content created by ChatGPT and other generative AI technologies is substantially harmful to the site and to users who are asking questions and Chapter 1 Current State of play: the high-level view
Page
18
6 looking for correct answers” (https://meta.stackoverflow.com/ questions/421831/policy-generative-ai-e-g-chatgpt-is- banned). While it’s not excessively harmful if the ChatGPT-generated answer to the best way to make tomato soup from the ingredients that a user has on hand in their pantry is off by a bit, the stakes are much higher in software development. Put under enough pressure, ChatGPT can hallucinate answers and nominate nonexistent methods to solve an issue (more on this in subsequent chapters). From the pros and cons raised above, it’s clear that we are currently at an exciting and uncertain junction in the history of software development. The rest of this book will attempt to address these opportunities and issues and provide some actionable insights for software teams that are convinced that the minimum action currently required is to understand the tools and models and make an educated decision on their usage. Chapter 1 Current State of play: the high-level view
Page
19
7 © Nick Wienholt 2025 N. Wienholt, GitHub Copilot and AI Coding Tools in Practice, https://doi.org/10.1007/979-8-8688-1784-7_2 CHAPTER 2 Using an AI Coding Agent A computer would deserve to be called intelligent if it could deceive a human into believing that it was human. —Albert Einstein This chapter provides an overview of the current (as of mid-2025) modes of interacting with AI coding agents from a developer’s perspective. This information is likely to change, but the underlying themes will remain constant. It’s unlikely coding Integrated Development Environments (IDEs) and associated plug-ins will be extinct any time soon. Software IDEs have existed since the late 1980s, and given the old axiom that, when considering any existing technology, it is most probable that we are approximately at the midpoint of its existence, the 35-year history of IDEs provides some confidence that they will continue to exist in some form for the majority of all current readers’ careers. This suggests that the patterns of interaction covered in this chapter can be expected to continue for a long term into the future (in software years). This chapter will focus on Visual Studio (VS) Code for all cases where the AI tooling is available via a plug-in. VS Code was used by three quarters of developers in a 2023 Stack Overflow survey (https://survey.stackoverflow.co/2023/#section-most- popular-technologies-integrated-development-environment) and has a strong Microsoft tie-in with GitHub Copilot, which was a pioneer in integrated AI assistants and benefited from the vast number of GitHub.com hosted repositories for training data, making it a natural starting point.
Page
20
8 Visual Studio Code (VS Code) and GitHub Copilot VS Code (https://code.visualstudio.com/) is a free IDE produced by Microsoft, can be used at no cost for private and commercial use, and is available on Windows, Linux, and macOS. Visual Studio Code is “Build on Open Source” (https://code. visualstudio.com/docs/supporting/faq): Microsoft Visual Studio Code is a Microsoft licensed distribution of “Code – OSS” that includes Microsoft proprietary assets (such as icons) and features (Visual Studio Marketplace integration, small aspects of enabling Remote Development). While these additions make up a very small percentage of the overall distribution code base, it is more accurate to say that Visual Studio Code is "built" on open source, rather than "is" open source, because of these differences. The source code for VS Code is available at https://github.com/microsoft/vscode, and there is also a “community-driven, freely-licensed binary distribution of Microsoft’s editor VS Code” called VSCodium (https://vscodium.com/) that is available under the MIT license, as opposed to the not-FOSS (Free and Open Source Software) license that the VS Code binary distribution from Microsoft ships with. Open source distributions of VS Code are functionally equivalent to VS Code but have a harder time with integrating with the extension ecosystem, which is controlled by Microsoft. Using VSCodium is viable for most tasks, but can come with more pain interacting with extensions. For developers concerned about being tracked by Microsoft using VS Code, telemetry set back to Microsoft can be disabled. See https://code.visualstudio.com/ docs/editor/telemetry for further details. With the current version of VS Code, it’s hard to avoid GitHub Copilot. At the time of writing, Copilot is free for 2000 code completions and 50 chat messages per month (see https://docs.github.com/en/copilot/managing-copilot/managing-copilot-as- an-individual-subscriber/about-github-copilot-free for further details), and this provides ample scope to get hooked for most developers. In enterprise scenarios, a paid license is required. This can be managed via GitHub.com accounts. Getting started with Copilot in VS Code is very simple – the screen real estate given to the product makes it impossible to miss as shown in Figure 2-1. Chapter 2 Using an ai Coding agent
Loading comments...
Reply to Comment
Edit Comment