Why writing code is different from software engineering
The core functionality of AI coding assistants centers on their ability to generate plausible code snippets, suggest completions, and automate repetitive coding tasks based on prompts and existing codebases.
These tools leverage large language models trained on vast quantities of code to predict and produce syntactically correct and often functional segments of software. This capability fuels the perception that they inherently make development faster and more efficient, as the machine handles the “labor” of writing code.
However, the “labor of representing” a conceptual design as code is distinct from the comprehensive process of software engineering. As Dave Farley highlights on the Modern Software Engineering channel, a famous quote from Fred Brooks states: “The hard part of building software is the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation.”
In essence, the difficult work involves understanding the problem, designing a coherent solution, and ensuring its long-term viability and correctness. AI is adept at the “typing” or representation aspect, but struggles with the nuanced judgment required for the conceptual and strategic elements of software development.
Consider the distinctions: AI can quickly produce a function to sort a list. What it cannot do as effectively is determine whether sorting that list is the correct architectural choice for a system operating under specific performance constraints, how that function interacts with other components, or the security implications of its data handling within a larger application context.
These considerations demand human expertise in What Is the Primary Goal of AI Agents in Software Development, design, and strategic thinking.
Controlled trials show AI tools actually slow developers down
The true impact of AI on developer productivity and software quality is often hidden behind initial impressions and anecdotal evidence. While some companies point to AI reducing headcount or speeding up certain operations, these examples often originate outside the core domain of software development, or misrepresent the full picture.
For instance, Klarna, often cited in discussions about AI-driven efficiency, did reduce its overall headcount, with AI reportedly doing the work of 700 customer service agents. However, by 2025, they guaranteed customers could always reach a human, with their CEO admitting that in “optimizing for cost, cost had become, in his words, a too predominant factor,” leading to “lower quality.”
Critically, Klarna’s experience was in customer service, not software development. Similarly, IBM’s frequently mentioned AI applications focused on HR, not core code creation.
To understand AI’s real effect on software development, one must look to controlled, developer-specific studies. In July of 2025, a group called METR, associated with Meta, conducted a proper randomized controlled trial – not a survey or vendor case study.
They engaged 16 experienced open-source developers, working on their own repositories and familiar code, assigning them 246 real tasks. The findings were striking: the developers were 19% slower when they used AI tools. This directly challenges the assumption that AI automatically boosts speed.
Even more significant was the perception gap. Before the experiment, these developers expected AI to speed them up by about 20%. Astonishingly, even after being measured as slower, they still believed AI had accelerated their work by approximately 20%.
This represents a roughly 40% gap between perception and reality, meaning, as the study concluded, “They were confidently, measurably wrong about their own productivity.” This underscores a critical psychological factor: the perceived ease of generating code can obscure the actual time spent reviewing, debugging, and integrating that code.
The real-world implications extend to code quality and maintainability. A study by GitClear, analyzing 211 million changed lines of code over four years, found that 2024 was the first year where copied and pasted code surpassed moved code – a proxy for refactoring and consolidation.
Duplicated code climbed from around 8% to over 12%, a 50% increase. This pattern of more code, more duplication, and less careful restructuring creates systems that accumulate “coupling and mess,” ultimately slowing down future feature changes, regardless of whether the initial code was AI-generated.
Security is another pressing concern. One peer-reviewed study examined over 700 real snippets of AI-generated code and discovered that more than a quarter, specifically 27%, contained a security weakness. Even more alarmingly, when researchers took verified secure code and tasked an AI with iteratively improving it, the number of critical vulnerabilities increased by nearly 40% after just five iterations.
The clear conclusion: human expertise in the loop is essential, as the machine, left to its own devices, can degrade code quality and security. Open-Source AI Tools Empower Developers for Faster AI Apps can be powerful, but require careful human oversight.
These findings reshape the understanding of developer roles. While the “programmer” role (focused on rote coding) has seen a sharp decline, falling by something like a quarter in US data over the last two years, the broader category of “software developer” has grown and is projected to continue expanding.
The market is not eliminating development work; it is re-pricing it, valuing human engineering, design, and judgment more, and pure code production less.
Why AI amplifies existing engineering strengths and weaknesses
Many narratives about AI’s impact overlook the fundamental concept of the “engineering bill” – the inevitable cost of complexity, technical debt, and maintenance. AI can produce plausible code rapidly, but it often shifts this bill rather than eliminating it.
The effort developers expend when using AI is directed towards the invisible, harder parts of the work: reviewing, debugging, structuring solutions, untangling, securing, and scaling systems. This is the “engineering” aspect that AI cannot fully automate.
The best-case scenarios for AI usage, such as developers completing 26% more tasks 55% faster, often come with a critical caveat: AI acts as an amplifier. As Dora, a source of these findings, notes, AI makes teams with strong engineering practices perform better, while teams with weak practices perform worse.
It doesn’t magically instill good judgment or best practices; it magnifies whatever processes are already in place. This includes What Are Personalized AI Productivity Tools Today?, which can be highly effective when tailored to strong workflows.
What AI is not inherently good at is judgment: deciding if code should exist, if it’s correct, secure, scalable, resilient, or maintainable for the next person. These aspects require inferring context, understanding long-term implications, and taking responsibility for the outcome – which remains the whole job of a software engineer.
The machine can polish its own work, but without human expertise, it may do so in a way that ultimately degrades the system. This highlights a critical oversight in the initial hype: the assumption that a developer is merely a person who converts tickets into code, when in reality, typing was always only the tip of the iceberg of their responsibilities.
How AI redefines the true value of software engineers
AI coding assistants represent a permanent technological shift, not a passing trend, but their role is fundamentally different from the popular perception. They are powerful tools for accelerating the creation of code, a task that, while necessary, was never the primary bottleneck in software development.
The evidence indicates that simply integrating AI tools does not automatically translate to increased developer productivity and can, in fact, lead to slower development cycles, higher technical debt, and increased security risks if not managed with sophisticated human oversight.
The real transformation lies in the redefinition of “developer value.” In a world where machines can generate code proficiently, the premium shifts to human capabilities that AI cannot yet replicate: deep understanding of problems, architectural design, critical thinking, quality assurance, security expertise, and long-term maintenance judgment.
AI is an amplifier for these skills, allowing engineers to focus their valuable time on the conceptual and strategic challenges that truly drive successful software. This shift demands that software professionals hone their engineering acumen, rather than competing with AI at the rote task of typing code.