From the Kiln to the Codebase: How Josiah Wedgwood's Pottery Revolution Solved Component Reuse Two Centuries Early
Photo: Dave Bevis , CC BY-SA 2.0, via Wikimedia Commons
From the Kiln to the Codebase: How Josiah Wedgwood's Pottery Revolution Solved Component Reuse Two Centuries Early
Staffordshire, in the mid-eighteenth century, was a landscape of small, independent pottery workshops, each producing wares according to its own idiosyncratic methods. Quality varied enormously. Shapes were inconsistent. A plate produced in one workshop bore no guaranteed resemblance to a plate produced a mile away, even if both were intended for the same pattern. Then Josiah Wedgwood arrived, and within a generation he had transformed a cottage industry into a globally recognised manufacturing powerhouse. The mechanism of that transformation — modular design, standardised components, documented processes, and systematic quality assurance — will be immediately legible to any software engineer who has ever tried to build a coherent component library.
The Mould as the Module
Wedgwood's foundational insight was deceptively simple: if you control the mould, you control the output. By investing in precisely engineered master moulds from which production moulds were cast, Wedgwood ensured that every teapot spout, every handle, every decorative relief produced in his Etruria factory conformed to a defined specification. Variation was not eliminated entirely — the nature of fired clay permits some — but it was reduced to an acceptable tolerance and made predictable.
Replace 'mould' with 'component' and the parallel becomes immediate. A well-designed React component, a rigorously specified microservice interface, or a shared UI library serves the same function as Wedgwood's master mould: it defines a contract that downstream consumers can rely upon. The component's internal implementation may change — as a mould might be refined — but its external behaviour remains consistent with the specification.
The critical word here is 'investment'. Wedgwood did not stumble upon standardised moulds by accident. He spent considerable time and money developing them, understanding that the upfront cost would be recovered many times over through reduced rework, faster production, and consistent quality. This is precisely the economic argument for shared component libraries that development teams consistently struggle to make to stakeholders accustomed to measuring velocity in features rather than foundations.
Cataloguing the Catalogue
Wedgwood was also a meticulous cataloguer. His pattern books documented every shape, glaze, and decorative variant produced at Etruria, assigned systematic reference numbers, and tracked which combinations had been produced for which customers. This was not bureaucratic vanity — it was the mechanism by which his sales network across Britain and Europe could accurately specify and reorder items without ambiguity.
The parallel with component versioning is precise enough to be uncomfortable. A component library without a published catalogue — clear documentation, version history, deprecation notices, and usage examples — is not a library. It is a collection of files that colleagues may or may not discover, may or may not understand, and will almost certainly duplicate when they cannot quickly determine whether something suitable already exists.
Semantic versioning exists for exactly the same reason Wedgwood's pattern books existed: to allow consumers to understand, at a glance, whether a new version of a component is a safe upgrade or a breaking change. That this discipline is still inconsistently applied across the British software industry in 2024 is a genuine professional embarrassment, and one that Wedgwood — who was running a global catalogue operation from the Staffordshire countryside in the 1770s — would find baffling.
Quality as a System, Not an Inspection
One of Wedgwood's most significant contributions to manufacturing practice was his understanding that quality could not be inspected into a product at the end of the production line — it had to be designed into the process from the beginning. He was reportedly known to walk through his factory smashing pieces that did not meet his standards, not as an act of theatre, but as a demonstration that substandard output had no commercial value regardless of the effort invested in producing it.
More importantly, he restructured his production process so that quality failures were caught as early as possible in the sequence, before further labour had been invested in a flawed piece. This is, word for word, the argument for shifting quality assurance left in a software development pipeline — running unit tests before integration tests, enforcing linting and type-checking in pre-commit hooks, and treating a failing test suite as a production blocker rather than a post-release concern.
Wedgwood also understood that quality consistency required worker specialisation. Rather than expecting each potter to execute every stage of production, he divided the process into discrete, repeatable tasks performed by individuals who developed deep expertise in a specific operation. This maps directly onto the microservices architectural pattern, where a service's boundary is defined not by organisational convenience but by a coherent, well-understood domain of responsibility.
The Reinvention Problem
It is worth being direct about a pattern that persists with frustrating regularity in modern software development: teams continue to build bespoke solutions to problems that have already been solved, documented, and packaged — often within the same organisation.
The reasons are understandable, if not entirely defensible. Discovery is difficult when component libraries are poorly documented. Trust is low when shared components have historically been unreliable or slow to update. Autonomy is culturally valued in engineering teams, sometimes to the point where reuse is perceived as a constraint rather than an accelerant. And timelines are frequently too compressed to permit the research required to determine whether a suitable component already exists.
Wedgwood faced an analogous problem. His sales agents across Europe operated with considerable independence, and there was a persistent tendency for local workshops to produce their own approximations of Etruria's patterns rather than ordering from the source. His response was not to mandate compliance — enforcement at that distance was impractical — but to make the catalogue so comprehensive, the quality so demonstrably superior, and the ordering process so reliable that reuse became the rational choice.
This is the correct model for modern component culture. A shared library that is genuinely easier to use than building from scratch, that is actively maintained, and that is demonstrably more reliable than bespoke alternatives, will be adopted without coercion. The investment required to achieve that standard is significant. It is also, in almost every case, substantially less than the cumulative cost of the redundant work it prevents.
Building the Etruria of Your Codebase
Wedgwood's Etruria factory was not merely a production facility — it was a system of systems, designed with the explicit intention of producing consistent, high-quality output at scale, indefinitely. The principles that made it work are not historically contingent. They translate directly into the design of modern component ecosystems.
Define your moulds carefully. Document your catalogue thoroughly. Invest in quality at the process level rather than inspecting for it at the output stage. Make reuse the path of least resistance. And resist the temptation to regard these activities as overhead — they are, in every meaningful sense, the engineering work upon which everything else depends.
Britain built a global ceramics industry on these principles in the eighteenth century. There is no credible excuse for its software industry to still be relearning them in the twenty-first.