What LLMs should do - Adam's BlogLLMs can code, should they?<br>OpenAI released ChatGPT on November 30, 2022. I’m writing this article in June 2026. Software engineering is different from what it was before 2022. What has happened?<br>LLM models got larger and programs were written to make it possible to automate various aspects of software development using these models. Currently, it is not clear how much of the software creation process this technology can and should automate. Let’s break this down a bit.<br>What LLMs can do:<br>Generate production code fast. Software is mostly text, and LLMs were trained on a lot of it and can generate it quickly.<br>Generate tests fast. Testing the software products can be automated via software, thus can be generated by LLM.<br>Find and fix defects. Software development has shorter cycles than other fields, including defect fixes. An engine defect in a car needs calling back thousands of vehicles, software defects can be rolled out in minutes.<br>What developers are doing:<br>Figure out what needs to be built exactly.<br>Build the underlying architectural model.<br>Make sure product decisions are made.<br>So should we try to automate what humans are doing? Figuring out what to build exactly, how to build it to make it understandable for humans and most importantly, make decisions on the details of what the product is doing? Using LLMs to build more software faster seems possible, but will the resulting software product make human life better than the products built by humans?<br>The mechanical tomato harvester<br>Langdon Winner, in his 1980 landmark essay Do Artifacts Have Politics? [1] about the relationship between technology and politics, considers whether “technical things have political qualities.”<br>The parallels with LLM technology are worth examining.<br>The mechanical tomato harvester, a remarkable device perfected by researchers at the University of California from the late 1940s … The machine is able to harvest tomatoes in a single pass through a row … To accommodate the rough motion of these “factories in the field,” agricultural researchers have bred new varieties of tomatoes that are hardier, sturdier, and less tasty . … By the late 1970s an estimated thirty-two thousand jobs in the tomato industry had been eliminated as a direct consequence of mechanization. (p. 126)
Choices when introducing technologies<br>Within a given category of technological change there are, roughly speaking, two kinds of choices that can affect the relative distribution of power, authority,<br>and privilege in a community. Often the crucial decision is a simple “yes or no” choice—are we going to develop and adopt the thing or not … A second range of choices, equally critical in many instances, has to do with specific features in the design or arrangement of a technical system after the decision to go ahead with it has already been made … Once the mechanical tomato harvester had been developed in its basic form, design alteration of critical social significance—the addition of electronic sorters, for example—changed the character of the machine’s effects on the balance of wealth and power in California agriculture. (p. 127)
Social impact<br>By far the greatest latitude of choice exists the very first time a particular instrument, system, or technique is introduced. Because choices tend to become strongly fixed in material equipment, economic investment, and social habit, the original flexibility vanishes for all practical purposes once the initial commitments are made. In that sense technological innovations are similar to legislative acts or political foundings that establish a framework for public order that will endure over many generations … The issues that divide or unite people in society are settled not only in the institutions and practices of politics proper, but also, and less obviously, in tangible arrangements of steel and concrete, wires and transistors, nuts and bolts. (p. 127-128)
Narrative<br>When we read or hear about a new technology, like LLM coding agents, we encounter widely different takes on the usefulness, productivity gains, or the social impact of the given tech. I propose that all these views can be explained better if we understand the underlying narrative. We humans build narratives, simplifications, so we can function in the complex environment we live in. To build up resilience and be able to analyze the vast amount of information, we should understand the underlying narratives of the books, films, articles we digest and most of all our presumptions.<br>Do you already have a narrative, can you articulate it? I propose two exercises:<br>What is a story you would want to believe in regarding LLM coding agents?<br>What would be your preferred story if you traded places with an elderly neighbor, a software developer, a political leader, a tech investor, or a person living on a different continent?<br>My story<br>As software developer I want to be relevant in the age...