What is software development? Is it engineering, science, or art? The Software Craftsmanship movement thinks it is a trade closer to carpentry or blacksmithing. They mark their communities on maps with heraldry, publish books with covers featuring pictures of old tools, and discuss the “Scribe’s Oath” at conferences. Their ideas have influenced the entire industry, but why do so many developers embrace ideals and imagery that belong more at a Renaissance fair? The movement’s increasing popularity in the past two decades, and its striking similarity to a 150-year-old artistic movement, tells the story of how we see ourselves as developers and how our relationship with work shapes the tech industry.
The 1980s and 90s was the first time people had tried to produce software rapidly at scale, and no one was quite sure how to do it. So the industry reached for the industrial techniques that had, over the last 200 years, made the world very good at producing physical objects. Companies started to apply principles of scientific management to organize their armies of coders into something resembling a software assembly line. The products shipped out of these software factories were shoddy, but it didn’t really matter. In the race for market share, it was more important to ship quickly, than to build something with quality.
But developers lost something in this scramble for productivity: a sense of pride and the feeling that they were doing good work while doing the right thing. By the turn of the 21st century, there was growing discontent in some areas of the development community against the culture that Mark Zuckerberg would later describe as “move fast and break things”. They began to think differently about their profession. It was difficult to pin down universal best practices in software development, and the best developers relied heavily on their experience and instincts. Maybe software development wasn’t engineering at all, but a craft.
Books like Hunt and Thomas’s The Pragmatic Programmer and Pete McBreen’s Software Craftsmanship described software development in terms of traditional trades such as carpentry or blacksmithing. A few years later, the Agile movement arose with a similar motivation: to rethink the relationship between developers and the businesses they worked in. Agile was originally conceived as a way to build better and more responsively, that gave makers more agency into what they were creating. Businesses adopted it as a way to develop faster, but it failed to address the underlying problem: for many developers, building software was more than just productivity.
Some of Agile’s early founders abandoned it in the late 2000s to embrace a version of the craftsmanship ideals from a decade before. They cloaked themselves in the style of the middle ages, seeing themselves as the inheritors of ancient craft traditions. Their online manifesto, which has over 34,000 signatures at the time of writing, is styled like a medieval charter. Whenever I interview the leaders and thinkers of the Software Craftsmanship movement, it is clear that it is more morality than methodology, a way for software developers to find personal value in their work and feel belonging in a professional community.
The movement gives developers a sense of professional ethics as they work in an industry that is increasingly vilified. But we’ve been here before. In the late 19th century, rapid industrialization in Britain, the United States and Japan left an entire generation of makers wondering what their professions actually meant and how they fit into a world of mass production. The Arts and Crafts movement that arose focused on historical craftspeople, using similar medieval imagery, to bring a sense of individuality, and the satisfaction derived from building something of quality in a world that only seemed to value efficiency. Forming small artist communities in the countryside while embracing new technologies, they became one of the most popular decorative styles of the era, and prompted people at the turn of the 20th century to reconsider what their work meant to them. The past that the Software Craftsmanship and Arts and Crafts movements look back to is almost entirely imaginary, but that’s not the point. That imagined past expresses what they hope their working lives to be in the face of a business culture that wants to commodify their skills. As the movement matures, Software Craftsmanship has shed some of its more overt medievalist imagery. When I ask the early founders of the movement why they chose to adopt such an antique style for a modern profession as software development, they often demure. “It was a ‘cheesy’ way of differentiating ourselves from other groups” Enrique Comba Riepenhausen said. Bob Martin thinks it was an early branding exercise.
But brands work because they resonate with an audience. Tens of thousands of developers signed that piece of digital parchment because it meant something to them, just as the artists and craftspeople of the late 19th century flocked to Arts and Crafts. Neither were Luddites, but used the past as a way of asserting their dignity and identity as professionals in a period of breakneck technological progress. The digital blacksmiths of the 21st century have the potential to shape our profession, and our industry for the better.