IWB Blog

A collection of observations, news and resources on the changing nature of innovation, technology, leadership, and other subjects.

ABOUT

Subscribe to this blog via email

Will AI eventually replace software developers?

Over the past few years, predictions have ranged from “The End of Programming,” which argued that “The end of classical computer science is coming, and most of us are dinosaurs waiting for the meteor to hit,” to claims that “ChatGPT Will Replace Programmers Within 10 Years.”

But something more interesting appears to be happening. AI isn’t eliminating software development. Instead, it’s changing what software developers actually do — shifting the difficult parts of their work away from remembering syntax and writing code toward understanding complex systems, exercising judgment, evaluating AI-generated code, and deciding what should be built in the first place.

“As GenAI tools handle more routine programming tasks, the software developer’s responsibilities shift to supervising these tools,” wrote Carnegie Mellon University (CMU) professors Mary Shaw, Michael Hilton, and George Fairbanks in “AI Tools Make Design Skills More Important than Ever,” an article in the March-April 2026 issue of IEEE Software. “Accordingly, the software developer’s success will depend on a skillset that emphasizes reading, critiquing, and modifying code rather than writing programs.”

A few months later, Princeton computer science professor Arvind Narayanan and PhD candidate Sayash Kapoor wrote an essay, “Why AI hasn’t replaced software engineers and won’t” that explained why increasingly capable coding agents have not eliminated the need for software engineers using a simple visual metaphor: the decide-execute-deliver sandwich, which, like any sandwich, consists of three layers:

  • At the top is decision making: framing problems, specifying requirements, and setting priorities.
  • At the bottom is delivery: testing, verification, integration, deployment, and maintenance.
  • In the middle is execution: designing and implementing code.

“AI has compressed the middle of the sandwich, but has left the two ends largely unchanged,” they wrote. “As long as software development teams are in charge of decision making and accountable for what they deliver, engineers still need to spend time building up a deep understanding of the system.”

A recent article, “AI Didn’t Make Programming Easier. It Just Made It Differently Difficult,” by Jeremy Osborn, published in the August 2026 issue of Communications of the ACM, helps explain the deeper cognitive changes underlying this transformation.

Programming as High-Memory Work

“For decades, empirical research has shown that programming is a demanding cognitive activity: Developers rely on working memory, long-term recall, and complex mental models to manipulate interacting abstractions such as control flow, data structures, and the structural design of software,” wrote Osborn. “This classical model frequently positioned memory and recall as both the central enablers of, and bottlenecks in, software development.”

AI coding assistants are now changing the very nature of programming. These tools can function as external memory systems that significantly increase and complement the programmers’ own memories. While this redefines what it means to be a programmer — from primarily a coder toward an overall orchestrating agent — it doesn’t necessarily make programming easier or devalue the role of the programmer.

“Developers now have access to external memory systems capable of generating code, retrieving syntax, reconstructing context, and remembering and regenerating variants of previous mental constructs,” wrote Osborn. “This does not eliminate the need to think. But it does shift which cognitive skills are becoming most relevant for programmers.”

“As memory demands lessen, reasoning, architectural comprehension, judgment, and code-structure awareness are becoming comparatively more important.” In other words, the cognitive burden doesn’t disappear. It moves.

AI as an External Memory Resource

Humans have a limited amount of working memory — the kind of memory we use for storing the information, concepts, and knowledge needed for reasoning and solving problems. Our limited working memory constrains our ability to deal with complex problems because their high cognitive load can overwhelm our brains.

AI can thus be viewed as an external memory and analytical resource that complements the limited capacity of our own brains.

Cognitive load theory (CLT) holds that AI tools can reduce extraneous load, which is the memory overhead of recalling syntax and boilerplate, thereby freeing working memory for intrinsic, high-level reasoning,” noted Osborn.

“The Extended Mind Hypothesis (EMH) goes further by focusing on the individual: If an AI assistant becomes reliably available, habitually used, and trusted, it can function as an integrated component of the programmer’s cognitive architecture rather than as an external tool. Under this view, the AI becomes part of the thinking process itself, shaping reasoning, decision making, and the effects of cognitive effort.”

This suggests a useful way of thinking about AI’s impact on programming. If AI dramatically reduces the cognitive cost of remembering how to implement something, more of the programmer’s cognitive effort can be devoted to deciding what should be implemented, why that is the right strategy, how it fits into the larger system, and whether what the AI produced is actually correct.

The Impact of AI-Assisted Programming Tools

AI-assisted tools can accelerate the development of many software tasks by complementing the limited working memory of our brains. However, AI doesn’t eliminate the need for human involvement and oversight, especially when dealing with complex tasks that require a high degree of conceptual reasoning.

“Every programmer knows AI can produce code that is syntactically correct yet semantically and subjectively flawed, meaning developers must still understand program structure well enough to detect errors, evaluate coding suggestions critically, and ask the necessary why and why not questions about causal behavior.”

We cannot yet rely on AI alone for tasks such as architectural reasoning, analyzing how a change will affect the overall system, and long-term system maintenance. Critical tasks like debugging, system analysis, and code refactoring — improving the design, structure, or implementation of software while preserving its functionality — continue to require human expertise and comprehension because they depend on deep mental models of the overall system.

And even as AI becomes increasingly capable at such tasks, the issue of accountability remains. Someone must determine whether the software meets its requirements, whether its behavior has been adequately tested and verified, whether it can be safely integrated into larger systems, and ultimately whether it should be deployed.

This brings us back to Narayanan and Kapoor’s decide-execute-deliver sandwich. AI may be rapidly compressing the execution layer, but humans remain responsible for important decisions at both ends.

“Memory becomes a shared resource spanning human and machine; programming becomes less about what the developer can hold and manipulate in their mind and more about how clearly they can think at multiple scales when creating and ordering a complex logical system,” wrote Osborn.

“Therefore, if developers outsource too much thinking to AI, those internal models can weaken. AI thus shifts cognitive load rather than removing it and speeds up writing code but increases the time spent checking and validating it.”

The hard parts of software development will therefore continue to depend heavily on human judgment.

“This shift from recall-based to judgment-based programming represents the fundamental cognitive transformation at the heart of AI-assisted development,” wrote Osborn. “Where traditional programming demanded that developers maintain vast internal libraries of syntax, patterns, and idioms, AI-enabled programming demands instead they maintain robust evaluative frameworks for assessing correctness, coherence, and appropriateness.”

“The cognitive burden has not disappeared — it has relocated from retrieval to reasoning.”

Programming as Hybrid Cognitive Systems Work

Rather than simply replacing software developers, AI is becoming a second cognitive engine running alongside them. The machine can search, retrieve, generate code, and propose a variety of options. The human increasingly becomes the shaper of intent, giving structure and purpose to what the AI supplies while evaluating whether its output makes sense within the larger system.

“Expertise became less about recall and more about reasoning,” wrote Osborn.

“Understanding this hybrid arrangement helps explain why AI makes programming differently difficult rather than simply easier. The difficulty has not been eliminated; it has been redistributed across a new cognitive architecture that spans human and machine. This redistribution creates new challenges even as it removes old ones.”

Four major shifts are already visible.

First, programming becomes more accessible. “Many who once would have bounced off the sheer cognitive overhead of memorizing libraries, syntax variations, or error-handling idioms will now find a workable entry path,” wrote Osborn.

But this increased accessibility leads to an interesting paradox. “While the barrier to producing code lowers, the barrier to producing good code may actually rise, as judgment becomes more critical and harder to develop than recall ever was.”

This is an important distinction. Generating software and engineering reliable software are not the same thing. As AI makes the former increasingly easy, the expertise required for the latter may become more — not less — valuable.

Second, programming becomes differently difficult. “Conceptual clarity, decomposition, debugging, and architectural foresight still demand effort, and perhaps more of it,” wrote Osborn. “This represents a more sophisticated form of difficulty, one that requires deeper understanding of software-engineering principles rather than surface-level language features.”

The productivity gains from AI-generated code can themselves create new complexity. Developers may be able to produce much more software much faster, but all that additional code must still be understood, tested, integrated, secured, maintained, and eventually modified.

Third, programming education must change. “We will teach fewer people to memorize syntax and more to think in complex systems,” wrote Osborn. “Developers must still possess the skills to analyze, adapt, and modify what AI produces, perhaps even more so than before.”

This has significant implications for computer science education. Students will still need to understand programming, but spending large amounts of time memorizing syntax and programming constructs becomes less valuable when AI can supply them almost instantaneously.

Education should increasingly emphasize algorithms, systems architecture, problem decomposition, debugging, verification, security, and the ability to evaluate whether AI-generated software actually does what it’s supposed to do.

Less emphasis on writing code from memory does not mean less need to understand code. In fact, as AI generates a growing share of the code, the ability to understand, evaluate, and modify what machines produce may become even more important.

Fourth and most importantly, the programmer becomes an orchestrator. The programmer remains essential, wrote Osborn, “Not as a vessel of knowledge but as the orchestrating agent who understands the parts and how they fit together, maintains the integrity of the system, and decides what matters.”

“The most capable developers of this new era will not be those who type the fastest or remember the most, but those who can hold deep mental models while offloading everything that interferes with that. They will combine strong systems reasoning with AI-augmented recall.”

“Taken together, these four shifts suggest AI is not eroding the cognitive substance of programming but relocating it,” wrote Osborn in conclusion. “The future of software development will belong to those who can think clearly at scale, maintain durable mental models amid rapid change, and integrate machine-generated output into human-directed intent.”

“The work becomes differently difficult because it demands more sophisticated forms of expertise: judgment over recall, architecture over syntax, orchestration over implementation. These are not easier skills to develop or demonstrate, they are simply different ones, and perhaps ultimately more demanding.”

AI will almost certainly continue to become better at generating code. Coding agents will take on increasingly complex tasks, and the amount of software that a single developer can produce will likely continue to increase dramatically. Some activities that once occupied much of a programmer’s working day may largely disappear. But generating code is only one part of developing software.

Humans must still decide what problems are worth solving, translate often ambiguous needs into requirements, understand how the components of complex systems fit together, evaluate whether the software actually behaves as intended, and ultimately take responsibility for what gets deployed.

The result increasingly looks like a hybrid cognitive system. AI contributes extraordinary capabilities for memory, retrieval, code generation, and rapid exploration of alternatives. Humans contribute intent, context, systems understanding, judgment, and accountability.

The programmer of the AI era may therefore spend considerably less time programming in the traditional sense. But that doesn’t make the programmer less important. It changes where human expertise creates the greatest value.

As AI takes over more of the how of producing software, the human role increasingly moves toward determining the what, the why, and ultimately whether what has been built is good enough to trust.

Posted in , , , , , , ,

Leave a Reply

Discover more from IWB Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading