The mass adoption of the consumer web and the smartphone changed the occupational structure around software. For the nearly twenty years I’ve worked as a developer, I have almost without exception worked with product managers. The future of that relationship is unclear to me, because the way my work is changing would seem to present the option to employers of combining my job with that of a product manager.
MIT labor economist David Autor summarizes the situation with software developers like this:
AI code-generation tools like GitHub Copilot reshape the expertise landscape, but differently across skill levels. For senior engineers, AI automates relatively inexpert tasks—boilerplate code, syntax lookup, routine debugging. These engineers now focus more on architecture, design, and complex problem-solving. Their productivity and their wages will likely rise as they concentrate on higher-value activities.
For junior engineers, however, AI automates their core expert tasks—the basic programming that traditionally served as their entry point to the profession. Writing functional code was their primary value-add; now AI does it more quickly and cheaply, and may eventually do it better. The expertise framework predicts this will lower entry-level wages while potentially increasing employment as people enter the field who understand what they want to build but lack deep technical skills.
This bifurcation within a single occupation demonstrates why aggregate predictions about “programmers” miss the point. The same tool that enhances senior engineers’ expertise may diminish juniors’ expertise.
This is a reasonable concern that I think many who have been using the tools with any frequency in a large organization would share.
What Autor does not touch on here is how this bifurcation within the Software Developer occupation will affect the allied trades of Quality Assurance, Design, and Product Management.
One oft-heard saying about the distinction between developer responsibilities and product responsibilities is that “product focuses on what [to build] and engineering focuses on how [to build]”. This is true, so far as it goes, but means and ends inevitably overlap. Much of what distinguishes skill in these occupations is negotiating these areas of overlap with your counterpart.
Will the distinct between Software Developer and Product Manager erode? While many of the tasks an experienced software developer carries out in a typical workday can be done more rapidly by use of an LLM, those that are not are often near or within the overlap region with Product. In many organizations, both product managers and developers write requirements in prose, think strategically about the roadmap for the team, and discuss how to break the existing conventions of software in light of user experience.
The degree to which developers can do this is limited by the time they spend on their distinctively technical tasks: writing, deploying, and debugging code.
There are people today who could equally well play either role, but they are few and far between. They are seldom asked to do so outside of small startups.
Will larger organizations soon begin trying to break down this division of labor on the theory that LLM assistance allows one person to handle both?