Programmers are at the forefront of understanding the effects of Generative AI on jobs. As they adapt and interact with this evolving technology, their experiences provide a direct window into how GenAI is poised to transform the employment landscape for everyone. Their role, central to the development and deployment of AI, makes their observations and challenges especially telling for the future of work.
A study conducted on GitHub Copilot's effect on software developers' productivity gives us an early look at possibilities. Copilot helps developers maintain their creative momentum by auto-completing code. According to GitHub, Copilot churns out a whopping 46% of the code and turbocharges developers' coding speed by up to 55%. The ambition here is to revamp developer productivity by subtracting mundane tasks and complex development work from their to-do list. Liberated from the drudgery, developers can invest their energy into creativity and innovation.
At first glance, these figures seem astronomical. Similar productivity leaps are being touted across all domains of knowledge work. The interpretations of these advancements vary wildly, from doomsday prophecies of human obsolescence to optimistic visions of a productivity revolution sparking remarkable progress. But how should we interpret the automation of knowledge work, a domain that intertwines social and analytical reasoning, and balances decisions on a fulcrum of experience, intuition, analysis, and observation?
A blind spot in a narrowly focused productivity conversation is the tricky business of assessing what exactly elevates productivity in knowledge work. This dilemma comes into sharp relief in the realm of AI-enhanced software development. Developers using AI aids can feel more productive than they actually are—their speed at churning out code often tells a different story. Developers also navigate a form of on-the-fly cost-benefit analysis, moderated by their familiarity with the task and the complexity of the AI's suggestions. This interplay means the effectiveness of AI is inextricably linked with the developer's evolving grasp of the situation they're tackling step by step.
Programming turns out to be a fascinating case study when it comes to AI-enhanced productivity. Some outcomes are glaringly obvious—like boilerplate code spewing forth effortlessly from an AI tool. However, other impacts are subtler: programmers could lean too heavily on AI tools, adhering to rigid standards that stifle evolution or even create needless complexity. Worse yet, when glitches arise from AI suggestions, unraveling them can erode the benefits of automated code.
Our examination of programming unveils crucial insights into how humans use AI in knowledge work. The crux of the matter lies in an ever-shifting landscape of decisions, underpinned by two variables: the complexity of the task at hand and the AI suggestion, and the programmer's familiarity with the code in both the context of the task and the programming language used. But here's the kicker: neither complexity nor familiarity come pre-packaged with standard definitions—they're unique artifacts, shaped by each programmer's perception.
Drawing definitive conclusions from these limited, early-stage studies could lead to inflated estimates of Generative AI's impact. Yet, there's an intriguing trend in the data: tools like ChatGPT appear to affect beginners and experts differently. It's premature to draw broad generalizations—the key question is whether Generative AI primarily uplifts the less experienced or skyrockets the experts even higher. The answer likely depends on the nature of expertise, the context of the role, and the broader system encompassing these skills.
Programmers are integral components in the techno-social ecosystem. Programmers are embedded within our modern technological and social structures. Their skills and actions directly influence these systems, making their work highly relevant and representative of our broader societal interactions with GenAI.
The nature of programming work allows for tangible, quantifiable results. We can measure efficiency, error rates, code complexity, and other metrics, offering an insightful lens through which to observe the integration of GenAI.
Programming languages present a unique case study in how GenAI interacts with structured data. The path that GenAI takes through the training data with a programming language differs from its approach to natural language, adding a distinct layer to our understanding of GenAI's functionality.
Programming tasks can be broken down into smaller components more readily than tasks in other fields. This disaggregation allows us to understand the tasks more fully and to observe how they are influenced by GenAI more directly.
In the realm of programming, it is easier to dissect and identify these key aspects of the work process, namely the ability to unpack decisions, predictions, judgments, and actions. This dissection provides a window into the different facets of human creativity and how they interact with GenAI, offering insights that may guide future development and integration of AI systems in the workplace.
Programmers, by the nature of their work, are often at the forefront of technological evolution, learning and adapting to new tools and languages. This capacity to adapt makes them an ideal demographic for studying the acquisition of new skills and techniques in the age of GenAI.
Finally, the interaction between programmers and GenAI provides an opportunity to explore and understand the dynamics of human-AI collaboration, vital for understanding the emerging system.