Irving Wladawsky-Berger

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

“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,” a column that will be published in the IEEE Software issue of Jan-Feb 2026. “Accordingly, the software developer’s success will depend on a skillset that emphasizes reading, critiquing, and modifying code rather than writing programs.”

“Generative AI (GenAI) and other automated tools are increasingly handling the routine nuts and bolts of creating code,” the authors added. “To use them effectively, however, you need to know precisely what you want the tools to generate.” It requires close knowledgeable human supervision in order to:

  • specify what you really want (often it is fuzzy),
  • determine whether generated code does what you specified (often it does not),
  • judge the quality of the code (often it is poor),
  • repair AI-generated code if it’s defective (often it is), and
  • decide whether what you specified actually describes what you intended (often it does not).

The impact of AI on programming, — and on software engineering in general, — has been a much  discussed topic over the past few years. For example, Nvidia CEO Jensen Huang said that the future of coding as a career might already be dead in the water with the imminent prevalence of AI at the World Governments Summit 2024 in Dubai. “Most of us are dinosaurs waiting for the meteor to hit,” noted “The End of Programming,” a December, 2022 CACM article.

These dire predictions were nicely countered in “AI Will Not Devour SE,” a paper by CMU professors Mary Shaw and Eunsuk Kang published in September of 2024. “Social media provide a steady diet of dire warnings that artificial intelligence (AI) will make software engineering (SE) irrelevant or obsolete,” they wrote. “To the contrary, the engineering discipline of software is rich and robust; it encompasses the full scope of software design, development, deployment, and practical use; and it has regularly assimilated radical new offerings from AI. Current AI innovations such as machine learning, large language models (LLMs) and generative AI will offer new opportunities to extend the models and methods of SE. They may automate some routine development processes, and they will bring new kinds of components and architectures.”

In their IEEE Software column, Shaw, Hilton, and Fairbanks explained that “the responsibilities of software developers are rapidly becoming more about designing and less about programming. Reading, understanding, evaluating, and repairing someone else’s code is now more important than writing code from scratch. Judging whether you requested the right thing looms larger when the code is not written by you. Attempting to develop complex software without these skills can put a programmer in the position of the Sorcerer’s Apprentice – able to invoke the technology but lacking the skills to control it.”

Older, more established engineering disciplines like civil, mechanical, and chemical engineering have long been focused on design and development. According to their Wikipedia entries:

According to its Wikipedia entry: “Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining software applications. It involves applying engineering principles and computer programming expertise to develop software systems that meet user needs. The terms programmer and coder overlap software engineer, but they imply only the construction aspect of a typical software engineer workload.”

In my opinion, software engineering feels quite different.

First, while just about all engineering disciplines deal with tangible, physical assets, — e.g., bridges, airplanes, chemical plants, — software engineering deals primarily with intangible assets, including programs, applications, and data that tell the computer hardware what to do.

Second, most engineering disciplines trace their roots at least to the Industrial Revolution, — sometimes significantly earlier. Software engineering is a relatively young discipline, whose roots only go back to the advent of the computer age in the 1960s.

And third, as the Wikipedia entry points out, “The terms programmer and coder overlap software engineer, but they imply only the construction aspect of a typical software engineer workload.”

“In this column, we examine this shift from coding to design skills through the lens of how to teach ‘programming’ in the new AI age,” wrote Shaw, Hilton, and Fairbanks. “This reveals the capabilities that current software developers should be cultivating — no longer programming in the traditional sense, but rather software development in cooperation with GenAI tools.”

I totally agree. In my opinion, this is the equivalent of saying that civil and mechanical engineering students should learn how to develop bridges and cars in cooperation with CAD/CAM tools, — as has been the case since at least the 1980s.

“We start with the introductory programming course as an example, because it is familiar, it establishes the students’ essential mindset about software development, and it shows the challenges raised by the shift to AI,” the authors added. “From there we move on to how GenAI affects software development across the spectrum, not only for university students but also for established software designers. Our principal point is that the relevant skills for software development are now understanding and modifying code you didn’t write yourself and that this will best be achieved by in-depth study of exemplars of excellent software.”

“Most disciplines study outstanding exemplars before expecting students to create their own, progressing to more sophisticated works as the students master earlier material.” Think of civil engineering students learning about buildings designed by top architects of and mechanical engineering students learning about a variety of past cars and airplanes. “Students study not just the surface text of the exemplars but also their deep structure, their context, and criteria for critiquing them. We think students and experienced software developers should study great exemplars, too, with progressively more complexity as they gain experience. Computer science, alas, has a tradition of expecting students to write code as the primary way to learn software design.”

“What’s called for is a source of carefully curated exemplars of software systems with interpretive material that supports study of the important qualities of good software. Even more than in years past, developers will need to read, understand, and critique relevant aspects of software in order to modify it – often code written by GenAI.”

The authors conclude their column by listing some of the key questions that remain to be worked out:

  • How do we find excellent exemplars? How do we decide that they are excellent? Can we create them, or must we find them in the wild?
  • How do we encourage learners to shift from hacking out code to understanding that there are problems for which mere hacking is unsuitable?
  • How can they develop the judgement about what quality standard to use on a system — when quick and dirty is ok, and when only the best will do?
  • How do we strike the right balance between learners studying good examples and creating their own?
  • How do we reach the vast numbers of programmers who don’t get formal education in programming — the ones who pick it up informally, on their own?

“GenAI has disrupted the standard way that instructors evaluate students’ progress. Though many instructors are grumbling loudly, we should treat this as a gift because it guides us to reconsider our standard ways of teaching and consider alternatives.”

Posted in , , , , , , ,

Leave a Reply

Discover more from Irving Wladawsky-Berger

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

Continue reading