I am continuing to try to come up with an odd name for what I consider the roots of Agile. I’m doing that because I believe Agile is being dumbed down, commodified, and is losing its spirit. I’m picking an odd name because people are less likely to assume they already know what an odd name means. They have to ask. You have to have a conversation.
An odd name also lets me indulge my no-doubt-annoying fondness for the exaggerated, obscure, and marginal. Hence the name I’ve picked: “Artisanal Retro-Futurism ⊗ Team-Scale Anarcho-Syndicalism”. (Read the ⊗ as “crossed with” or “cross”.)
There are two halves to the story: an attitude toward technology and an attitude toward the social. To form the Agile attitude, those two attitudes are crossed (hybridized) like lions or tigers are crossed to form ligers. Or perhaps a better analogy would be crosses between chicken and game birds, since those species are less closely related than lions and tigers—just as technology and the social are often (wrongly) considered wildly different things.
Within technology, artisanal is supposed to connote:
Higher quality and a focus on a more demanding customer.
A product that’s an unusual variation on a more typical product, typically one that’s not suitable for mass production. (For example, an artisanal apple might not ship as well as common varieties.) To me, “artisanal” therefore suggests our extreme focus on the product director.
But [Wajswol] gladly lets technology lend a hand. Twice a day, in the “milking parlor,” a computerized lactation carousel that handles 60 sheep at once—the only one in the U.S. for sheep, Wajswol claims—milks 300 ewes per hour. In the cheese room, vats of milk are heated to the precise temperatures required to activate specific strains of bacteria to produce just the right texture of curd.
“Machinery helps you pay attention to what’s important,” Wajswol says. “In cheese making, there are a couple of things you need to focus on. If you can eliminate the nonsense—the mundane, nonskilled steps, like feeding the animals or warming milk correctly—you can spend more time focusing on the texture of the curd and making sure the product comes out good.”
But artisanal is too broad of a term. It needs to qualify something else. What?
At a workshop once, Pete McBreen said “The Agile methods are methods created by people who like to program.” While that’s not entirely true, I bet it’s more true of them than it is of any previous gaggle of methodologists. And their oddity even goes a step further: a surprising number of the authors of the Agile Manifesto had programmed in Smalltalk. They were technology enthusiasts, and that enthusiasm—a “gosh wow!” enthusiasm for continuous integration tools, refactoring tools, programming languages, testing tools, and the like—has been a continuous part of the growth of Agile. It’s been a touch disreputable, though—many use the Agile Manifesto’s “individuals and interactions over processes and tools” as a weapon—so I’ve chosen the artistic style called retro-futurism to call renewed attention to it.
I am using retro-futurism in one of its senses:
[a] vision of the future as seen through the eyes of the past, often a utopian society characterized by high technology (relative to the base time), unusual or exaggerated artistic, architectural and fashion styles, and an abundance of consumer goods; its spirit of optimism […] is a contrast with cyberpunk […]
(Quote from ibid.)
Another way of looking at the style is as a response to the oft-heard complaint, “It’s the future now. Where’s my flying car?” In the physical world, “garage engineering” was supposed to mean hand-made—artisanal—rocket packs. Instead, it means the Improvised Explosive Device. In the software world, though, we have flying cars. Garage-scale organizations (open source, small companies) have brought us products that still evoke that old sense of wonder.
So. The technology half of the cross casts attention on giddy enthusiasm for both our products and how we build them.
Agile’s early emphasis on self-organizing teams caused some to brand it anarchic. Soothing those fears has led, in too many cases, to team processes that are externally imposed and therefore ossified. To counter that trend, I want to embrace the anarchic strain in Agile. (What should be done to sooth fears, I believe, is nothing more than producing working software at frequent intervals. So long as a team delivers that which satisfies, I don’t care if an integral part of their process is capering naked in the light of the full moon.)
At the same time, I want to recenter emphasis on the team. Too much of modern-day Agile depends on someone else to make it succeed. Typically that’s upper management, whether via servant leadership, outright command-and-control management, or something in between. While we can’t ignore the world outside the team, I think it better to take the attitude that, while it can make Agile fail, it cannot make it succeed. Agile lives and dies by the team.
Casting about for something odd that would combine “anarchy” and “team”, I came upon anarcho-syndicalism. Anarcho-syndicalism was an economic/political movement from around 100 years ago. The anarcho-syndicalists had laborers as their constituency. Their goal was to end the oppressive power—and very existence—of both the State and large-scale corporations by countering them with self-organizing trades un-ions.1 Anarcho-syndicalism’s concentration on the self-organization and solidarity of the people whose hands make the product is reminiscent of Agile at its best.
I was also taken by anarcho-syndicalism’s emphasis on direct action. Others believed that the route to better working conditions lay in, say, electing representatives who would speak for the workers, but the anarcho-syndicalists rejected that. In that, I hear echoes of my attitude that teams should not wait for
Daddymanagement to fix their problems.
Having chosen an outlandish reference—anarcho-syndicalism? a type of omigod socialism??—I needed to add a softening qualifier. Ending the State? Fighting the Corporation? Doing away with wage slavery?—none of these are part of the programme. We’re just trying to develop good software in a pleasant way that makes sense. Therefore: the qualifier team-scale is intended to remind that our message is to the workers of a team, not workers of the world.
So. The social half of the cross casts attention on perfecting the team. Or, rather, on the team perfecting itself.
To the extent that Agile has lost its way, a slogan that reminds us of the original path will help. To the extent that Agile as a movement now favors bland conformity over scrappiness and outrageous ideas, an outrageous slogan can help us get back to where we once belonged.
1 Wondering why I wrote “un-ions”? If I remove the dash, WordPress posting fails. Political commentary?