At one point in British history, no village, town or city would be complete without a retinue of cobblers. A cobbler is a shoemaker, or more often a shoe repairman. In 1800, they were the only way that one could come to own a pair of shoes. A single person, most often a man, would create the entire shoe. The word for them is now antiquated, and remains the preserve of the pretentious and the scattered few who are more akin to artists than craftspeople. They were artisans.

Things changed quickly

By 1810, the putting-out system came into play, where workers would pick individual tasks. Some would cut out shoe templates, others would stitch them together, and others would nail on the sole. Each person would only need to develop a subset of the skill of the artisan, and as such, many more people could suddenly take part in the creation of shoes.

An 1807 engraving of a shoemaker cutting leather at his board, with a boy apprentice stitching beside him
Shoemaker, 1807. The master cuts the pattern at the board while the boy works the thread. Within a decade those two jobs would belong to two different households (Library of Congress, public domain).

In 1860, mechanisation brought the death blow to a profession that was thousands of years old. Somewhat automated factories (a combination of huge machines, steam power and child labour) were producing more shoes than anyone knew what to do with. Children who had spent their lives wrapping their feet in whatever fabric they could find suddenly found themselves able to afford a pair of factory made shoes. Where a highly skilled shoemaker might produce 50 or 60 shoes a year, the very worst factories sent 700 a day out onto the shelves.

What did this mean for the shoemakers?

Many closed up shop and became workers on a factory line, yet something interesting happened. The historical evidence shows that those cordwainers (another word for a master shoemaker) who had truly mastered their craft, and gathered enough capital in the process, pivoted into becoming factory owners, managers and consultants, where they made more money than they ever had before. This formed the origin of ancient British brands, like Crockett & Jones or Tricker's.

One of the foundational inventions for this shift was the creation of the lasting machine, a machine designed to greatly accelerate the shoemaking process. It was created by Jan Ernst Matzeliger, who himself was apprenticed in a shoe workshop. He would not have been able to design this machine, had he not first spent time learning the physical craft, yet there is one other detail about Matzeliger that tells us something about the opportunities that seem to appear in markets shifting from artisanal to industrial. His father was an engineer, and he had trained Jan very well.

Patent drawing for J. E. Matzeliger's lasting machine, number 274,207, patented 20 March 1883
J. E. Matzeliger, Lasting Machine, patent no. 274,207, granted 20 March 1883. It did in a minute what a skilled hand laster did in ten (public domain).

And what did it mean for shoes?

The term shoddy comes originally from war profiteers, using poor quality materials. American civil war soldiers would march in the rain, only to find their shoes and clothes dissolving. Henry Mayhew spent 1849 and 1850 interviewing London's bootmakers for the Morning Chronicle, and the picture they gave him was grim.

"So that you see the masters compete and the men compete, and between them the trade is being ruined as fast as it can. Yes, it ultimately must come to that. I often lie awake and think of the evils in our trade, but can't see how it's to be altered."

— A London bootmaker to Henry Mayhew, Labour and the Poor, Morning Chronicle, Letter XXXII, 1849

The rapid shift to quantity and cheapness overruled the concerns for quality. Mayhew's correspondents described the result as a slop article forced on the consumer, whose manufacture robs the purchaser of his money, while it starves the manufacturer and his family. Who cares about quality, when one can wear some shoes for a few weeks, and replace them for pennies? Friedrich Engels spoke about this very topic, and drew a marvellous distinction.

"He finds bad, so-called 'Devil's-dust' cloth, manufactured for sale and not for use, and liable to tear or grow threadbare in a fortnight."

— Friedrich Engels, The Condition of the Working Class in England, 1845

Manufactured for sale and not for use is a startling distinction. It was a material designed to look as close to a useful product as possible, with all of its inherent promises, but its primary application was in bringing down production costs at the expense of all else. In short, the first casualty in the advent of the factory, and the death of the artisan, was quality.

Yet this did not last forever. By 1875, a new stitching machine was produced by Charles Goodyear Jr, that much more closely mimicked the work of the artisans of old. In quick iterations, and by 1895, high quality, waterproof shoes became abundant and cheap. Quality had been disregarded in the early days, but the correction came only a decade later.

Buried within this shift is something crucial. A lifelong cobbler (yes, they still exist) will explain to you all of the ways they ensure a shoe exactly fits your feet, in a way that a factory producing thousands of shoes a day simply can not. The measurements they take, the passion with which they operate. The tipping point here is not the precise replication of the work of the artisan. It is the crossing of some invisible threshold that demarcates shoddy from good enough. Factory shoes may not have the flair, personality and expression of a custom pair, but for our purposes, they do the job. They are no longer the craft of an artisan, but a product on a production line.

In coding, we're feeling something similar

It has been clear for some time that agents like Claude and Codex are not abstractions around code. They're wholesale abstractions around programming. They have made it possible for engineering teams to build (note: not necessarily deliver!) code at unimaginable speeds. It took the industrial revolution 50 years to fundamentally change shoemaking. The AI revolution has disrupted a trillion dollar industry in 3 years.

A post from Voxium about the pace of change in software engineering
The mood, roughly.

Engineers are speaking out, and they're sad. The internet is awash, when one sifts through the now abundant fields of AI-generated noise, with the lamentations of disaffected coders who have seen their craft die before their eyes. Their points run striking parallels with those of shoemakers, writing in the mid 1800s. The bootmaker who lay awake at night had worked out the mechanism exactly: the masters compete, the men compete, and the trade gets ruined between them. He could see it happening and he could not see a way to stop it, which is the position a great many engineers now recognise from the inside.

The emergence of the software factory

If there was any doubt that the act of coding was becoming industrialised, OpenAI has recently published a report into their Agentic software factory. It is funny how history finds a way to echo through the most cutting edge of our developments. This concept is a combination of agentic loops, steered and overseen by the engineer, but ultimately executed by agents.

Coding has taken a great abstraction leap upwards. We were once praised for our knowledge of algorithms, for the subtlety with which we could express a formalised solution, for the ability to produce code that machines could execute and humans could understand. We are now seeing a new world.

I'll finish this section with a lie. Engineers the world over are now figuring out how to manage context, build guardrails, define skills, and execute loops that result in clean, well written, excellent code. In fact, engineers are now being pressured, at almost every level, to produce at all costs. If the cost is the craft of software engineering, so be it. They never liked it anyway.

Has the software factory also hurt quality?

It is tempting to rush to public claims here. GitHub (a popular place where software engineers collaborate) has seen a 3.6x traffic growth. In 3 years, new code changes went from 25 million per month to 90 million per month. GitHub's product manager, Camilla Moraes, opened a discussion on "the increasing volume of low quality contributions that is creating significant operational challenges for maintainers".

Much like the influx of low quality shoes and uniforms in the early days of the mechanised factory, contributions are being raised with little care for technical standards of their target codebases, or satisfactory testing, or even acceptable pride in one's work. It is almost as if they are shoddy in the literal sense; built to look strikingly similar to a high quality product, without the inconvenience of actually being one.

It seems that in the first instance, as we raced to construct our factories and manifest abundance, we forgot about quality. Yet, our machines are not built from Sheffield steel. They are constructed of information, and that makes the rate at which we can iterate only constrained by our imaginations.

Software awaits its Goodyear moment

Salesforce, only a few months ago, reported that an autonomous agentic pipeline successfully completed a 231-person-day software migration in a little under two weeks. A study tracking 96 engineers at Google found a 21% reduction in total task completion time. DORA, while offering a bleak picture of agentic adoption, finds that AI adoption is a J-curve. When organisations implement global systemic improvements, not only in the coding stage, but in review, deployment, maintenance and repair stages, the benefits become apparent.

There is a continental buffet of data to show that agents are a turning point in software engineering. Yet, in the transition from craft to construction, from artisan to agent, engineering has yet to have its Goodyear moment, the invention that suddenly opens the doors. It is possible this won't happen, and that it will simply be a thousand microiterations instead. It is equally possible that code becomes good enough through the skill of the practitioner, and that as we better learn how to manipulate large language models, we harness (no pun intended) them with more precision.

Perhaps it's time to stop feeling sorry for ourselves

We may lament the death of a craft. I did, and still do. Yet there are new, interesting problems to solve. What does the software factory look like for your team? How can you all become the stewards of a great, effective machine into which you can pour your engineering experience? How many of us have new skills, new perspectives, new ideas, that we can now pursue freely thanks to the freedom (dare I say the agency) offered by coding agents?

Many of us were trained in, and have wonderful memories of, offices of engineers stood around whiteboards, holding their fourth coffee, struggling with why a particular line of code would not work, or trying to dig out some missing documentation from a partly maintained open source library. Some of us remember discussing, at length, whether a variable should be named one thing or another, watched by the bewildered and often unimpressed eyes of product managers who don't get what all the fuss is about.

It seems that we have reached the end of that era. Our new mission is to figure out what good enough looks like. Code, produced by agents, that survives contact with the user, and does not require immediate rework. This shift, from excellent code to good enough has been felt by every artisan who has seen their work mimicked, initially poorly and then with frightening improvement, and engineers have come to the sinking realisation that what they called engineering is no more. The new game is a level higher.

Hero image: Max Liebermann, Schusterwerkstatt (Cobbler's Workshop), 1881, Alte Nationalgalerie, Berlin. Public domain.