What Will Software Developers Do When AI Learns to Code?

A photo of software developers representing What Will Software Developers Do When AI Learns to Code?

Today’s industries are at the forefront of innovation and discovery in artificial intelligence (AI). New AI technologies, models, and tools are reshaping industries at home and abroad and fundamentally reshaping the nature of what it means to work.

But the rapid development of AI has also brought about an existential question for the very people who are creating it. Specifically, what happens to software engineers once AI can generate code?

EDC’s Joyce Malyn-Smith and her team (Irene Lee, Joseph Ippolito, and Beatriz Perret) are trying to answer this question. Over a period of eight months, they worked with Matthew Kam and his team at Google culminating in a three-day intensive workshop with software engineers based in Silicon Valley who are at the cutting edge of using AI to accelerate their work. The workshop took place at Google’s headquarters in Mountain View, California, and focused on developing a job profile of an emerging tech role: the AI-Enhanced Software Developer.

We anticipated a straightforward four-page profile, but what we ended up with was an in-depth 50 page description of an emerging occupation,” says Malyn-Smith.

In this conversation, Malyn-Smith discusses the need for this work, as well as what she learned during the process. The conversation has been edited for length and clarity.

How did your work with Google come about?

For about 15 years, we have been mapping out the skills and habits needed for new and emerging careers at the frontiers of technology. These profiles help industry and education partners figure out how to train talent for jobs that, sometimes, aren’t even in existence yet. Google researchers heard about our work and wanted help defining the skills that will be needed by software engineers who routinely use AI to accelerate their work throughout the software development lifecycle. We proposed that we should work together to develop a profile of the AI-Enhanced Software Developer.

Why is a profile of the AI-Enhanced Software Developer needed now?

Google wanted to develop professional development programs to inform how to upskill current software developers to leverage the benefits of AI while mitigating its risks. For them, this profile was really about ensuring that their software developers remain highly skilled and competitive in a rapidly changing technological landscape that is increasingly disrupted by AI.

However, there’s also a need to define this role more broadly for the community. AI is changing the very nature of how software engineers get their work done. For instance, AI can generate such large quantities of  code so quickly for human engineers to review and refine. Given that how is the work of the human software engineer changing due to advances in AI? What are the skills and habits they need to take full advantage of this incredibly powerful tool? We felt like a detailed and specific profile of the AI-Enhanced Software Developer was urgently needed.

To create the profile, you spent three days with software engineers who are at the forefront of using AI. How is AI changing their job tasks and responsibilities?

Working with the panel was very interesting. We had eight highly vetted AI-savvy software developers from across the industry. Google funded the work, but all of the panelists were recruited from outside Google. They all work on software engineering and represent a range of types of companies, different kinds of products and services produced, and roles and job titles within the industry—from software developers in large companies to CEOs of small start-ups.

I learned that the work of the software developer is actually broadened when AI enters the equation. Where prompt engineering is concerned, the developer not only needs to be able to communicate in iterative exchanges with AI to produce an intended result, but they also spend more time and attention on being a critical reviewer of AI’s contributions. Problem-solving, experimentation, and iteration have always been significant components of their job, and AI is making it possible to spend more time on these.

Software developers also spend more time managing the process from beginning to end. This may include meeting with stakeholders to understand the business or user problem to be solved with the development of the technology solution, as well as making sure their end artifact is accepted within their organization, a process known as “socializing.” I learned that introducing AI into software development really frees up workers to spend more time on vital tasks that are inherently human, such as collaborating, reviewing, and problem-solving.

How difficult was it to develop the profile?

Creating profiles for AI-enabled jobs is much more complex and technically challenging than creating profiles for other professions. We spent hours unpacking terms and identifying the specific ways in which engineers interact with AI. For example, one of the tasks that developers identified was “Convert a loosely defined document (e.g., visual and technical designs) into code.” But that definition did not sufficiently differentiate between how traditional and AI-enhanced software developers would perform that task and the significance of those differences. We had to dig deeper. We asked panelists to provide an example of what working with AI to perform the task would look like. Ultimately, a lot of our conversations came down to one question: When engaging with AI, what does the human do?

So that begs the next question—what does the human do in AI-enhanced occupations?

In addition to providing examples of what the developer does when performing AI-enhanced work tasks, we were able to identify a workflow for prompt engineering that highlights the essential role that humans play when interacting with large language models. Those seven steps in the workflow are:

  • Identify: Identify the information that AI-powered tools need.
  • Engage: Initiate a collaboration with AI and clearly express the task.
  • Evaluate: Critically assess AI-generated artifacts.
  • Calibrate: Make technical decisions to steer AI-powered tools to arrive at more useful outputs.
  • Tweak: Take AI-generated artifacts and elevate them further.
  • Finalize: Produce up-to-date, accurate documentation about the AI-generated output.
  • Socialize: Obtain buy-in on the creation of the AI-generated artifacts, and influence others in a way that ultimately drives business impact.

You recently co-authored a paper that describes the process of developing the new profile. In it, you reference the need for “upskilling.” Can you define that term?

The goal of upskilling is twofold. From the perspective of the organization, the goal is to help people continue their own professional development to meet organizational needs. From the individual’s perspective, upskilling is about developing skills needed for success in a rapidly changing workplace.

How can educators and people in industry implement the idea of upskilling to help software developers learn how to apply AI to their work?

I look at it through the lens of professional development. Successful upskilling programs are just good professional development—the kind EDC has been doing for years. You have to co-design the program with stakeholders. This includes the software developers themselves. You have to create a low-risk environment for effective professional development to take place. You have to provide opportunities for interaction by creating communities of practice where developers can share experiences and learn from one another’s experiences. And finally, you have to be obsessively clear about learning goals and design the professional development program to meet those goals.

 

Share