John surveys the leading examples of software development manifestos and makes some suggestions.
A manifesto is a communication made to the whole world, whose only pretension is to the discovery of an instant cure for political, astronomical, artistic, parliamentary, agronomical and literary syphilis.
Software development has the pox. On that I think we can all agree. We may differ on just which organs are affected and how dire the prognosis is without drastic treatment, but there can be no doubt that the patient is sick as a dog. Fortunately, an instant cure is as close as your keyboard. All that’s needed is a stiff dose of manifesto.
And there is no lack of software development manifestos.
Uh-huh, but what is a manifesto, really? I don’t pretend that I can improve on Tristan Tzara’s definition, but I’d like to remind you—OK, myself—what manifestos are for and what they are like. Maybe then I can avoid mixing them up with sermons or municipal ordinances or antipatterns. (If you mix up an antipattern and a manifesto, do you get antipasto?)
Let’s look at some examples:
The Gnu Manifesto is Richard Stallman’s invitation to other programmers to help him write an operating system. It’s his equivalent of Linus Torvalds’s comp.os.minix Usenet posting. It is also RMS’s declaration of independence from MIT: “I could not remain in an institution where such things are done for me against my will.” It diagnoses the disease—un-free software—and prescribes the remedy: re-inventing Unix. It references Kant. It advocate a nonstandard pronunciation of the word “gnu.” All these things make it a fine example of a manifesto. A couple of things that would make it a better manifesto are a list of Principles and a list of signers.
The Agile Manifesto has both of these, and as a bonus it has a fuzzy photograph of the signers in a semi-circle apparently engaging in some arcane rite like sacrificing a small animal that was insufficiently agile. In a codicil to the main document, one of the signers points out that most of the other signers mispronounce the word “agile.” Disputes over the pronunciation of the subject of the manifesto in the manifesto itself are a frequent feature of true manifestos. So, another fine example.
The Cluetrain Manifesto clearly demonstrates one of the primary purposes of a manifesto: to renounce outmoded thinking and replace it with the new thinking that only the signers have truly grokked. Embracing this new thinking, the manifesto says, will force one to behave in radically different ways. The Cluetrain Manifesto has 95 theses, just like Martin Luther’s document that launched the Protestant Reformation, and it begins, “People of earth...,” just like Conan O’Brien’s farewell letter to NBC. While it doesn’t advocate mispronunciation, it more than makes up for it with the word “cluetrain.” A third fine example of a manifesto.
The Waterfall Manifesto has a sufficiently dogmatic list of principles (“The best architectures, requirements and designs emerge from nowhere and should be send back there as soon as you detect them.”) But it doesn’t propose to change the world (the opposite, really) and doesn’t mandate any non-standard pronunciation. It’s not really as good an example of a manifesto as the three I just described, but I’m willing to cut it some slack for mentioning beer and pizza.
As you see, these these manifesti have several things in common. They diagnose a problem and prescribe a solution. Usually they include a list of principles in dogmatic language. They reject the past and embrace the future. A specific future, defined in the manifesto. This, they say, is the right way to act. Your true manifesto is a call to action. It is intended to be signed, or at least initialled. You agree to a manifesto, you promise to follow its principles.
And it frequently advocates a non-standard pronunciation.
I don’t really understand why “Agile Manifesto” isn’t an oxymoron, but I guess any manifesto that doesn’t have a touch of inconsistency probably isn’t a real manifesto. Consistency, as Ralph Waldo Emerson said, is the hobgoblin of little minds.
And why, now that I think of it, did he say that? I mean, hobgoblin? Really, Ralph? Is hobgoblin really the word you were searching for? A mischievious sprite? I know you’re probably the world’s most famous essayist and this is a famous saying of yours and you’re dead and all, but there are a ton of things that consistency could be to a small mind, like bane or taskmaster or mantra, any of which would make more sense than hobgoblin. Antipasto would make more sense than hobgoblin. “A foolish consistency is the antipasto of small minds.” See? Better. I think you just threw a random word in there, Like Laurie Anderson composing a song, and gullible people rewarded you for it.
You make me want to issue a manifesto.
A Manifesto for Software Manifestos?
If any of these software manifestos had managed to cure software development pox, we wouldn’t need the rest of them. The proliferation of remedies is evidence of their inefficacy, as Ralph Waldo Emerson might have said if he’d ever served on an ANSI committee.
But apparently you don’t have to give up an existing software development manifesto to embrace another one. The manifesto paradigm supports multiple inheritance. Agile Software Manifesto signer Alistair Cockburn has written his own Cooperative Game Manifesto for Software Development. It’s not about game software development, it’s about software development as a game. I have to admit I’m drawn to any manifesto that says it’s all a game, whatever the it is. I’d been expecting something more prickly from this Cockburn guy, though, and then I found out that he isn’t the Cockburn who writes Counterpunch.
Anyway, clearly what is needed is one truly excellent software development manifesto. How to come up with that excellent manifesto I have no idea, except to point out that there are many examples of what a manifesto should be outside the realm of software.
In The Checklist Manifesto, a whole book about writing checklists, the author reveals the melancholy truths that (1) today’s professionals inevitably make mistakes, and (2) these are not mistakes of ignorance but of ineptitude. For most of the things you screw up, you should have known better. The fact that the author is a surgeon is not cause for celebration.
So maybe we know how to make an excellent manifesto but we’re just screwing it up. If we just made checklists, maybe we’d do better. Or maybe, taking our cue from the world’s most awesome CEO, we should focus on style.
There is a style that any pronouncement aspiring to manifestoness should adhere to. A manifesto is never tentative or shy. A manifesto never vacillates. A manifesto is not a statement, but an action. It intends to change the world. Here’s a characteristic bit of manifesto style:
“Let the good incendiaries with charred fingers come! Here they are! Heap up the fire to the shelves of the libraries! Divert the canals to flood the cellars of the museums! Let the glorious canvases swim ashore! Take the picks and hammers!”
Most manifestos don’t rise to this level of eloquence. But that doesn’t mean they aren’t conceived as forceful acts.
The Port Huron Statement starts out sort of okay: “We are people of this generation, bred in at least modest comfort, housed now in universities, looking uncomfortably to the world we inherit.” But pretty soon it’s larded over with language like “the permeating and victimizing fact of human degradation” and “a discontinuous and truncated understanding... of the surrounding social order.” Yet it served to launch Students for a Democratic Society (SDS).
The Communist Manifesto lays out the kind of world its author desired, and clearly states that these “ends can be attained only by the forcible overthrow of all existing social conditions. Let the ruling classes tremble....”
Now that’s what I’m talking about.
Who’s Your Dada?
Political manifestos sometimes rise to this “You have nothing to lose but your chains” level, but really the best manifestos are the founding documents of futurist movements in art. For some reason, the authors of art manifestos don’t limit themselves to art, but encompass food, politics, and anything else anybody ever had an opinion about. I guess it’s a characteristic of manifesto writing to overgeneralize, but artists do it the best.
The Futurists made a fetish of publishing manifestos, and got very skilled at it. The wrote manifestos on painting, architecture, religion, clothing, and cooking. In every case they expressed their disdain for the past, for harmony, for playing it safe, and praised originality, “however daring, however violent.” The Dadaists in Paris in the 20s spent half their time writing manifestos and half their time pushing the limits of art and/or sanity. Seems like they were having a lot of fun.
If software development is an art, its manifestos ought to be modeled after the best manifestos: those from the arts. I want a Surreal Software Manifesto, a Dada Developer Manifesto. A Cannibal Coder Manifesto. Now that would be a real manifesto. Does some Python coder have in in him or her to write something like this:
Only Cannibalism unites us. Socially. Economically. Philosophically. The unique law of the world. The disguised expression of all individualisms, all collectivisms.... It’s because we never had grammatical structures or collections of old vegetables.... Screenplays. Screenplays. Screenplays. Screenplays. Screenplays. Screenplays. Screenplays.
—Oswald de Andrade, Brazilian Modernist artist, in The Cannibal Manifesto
Who could argue with that?
Here are a few more manifestos from the field of software development, mostly from left field: A Software Design Manifesto by Terry Winograd, Ethical Software Design Manifesto (posted at Nordic Battle Group), The Rugged Software Manifesto, A New Software Manifesto for India, The Boring Software Manifesto, The Boring Accounting Software Manifesto, The Open Cloud Manifesto, Rebooting Manifesto, The Complex Manifesto for Software Development, The Introversion Software Manifesto
John Shade was born in Montreux, Switzerland on a cloudy day in 1962, where, we have it on good authority, he was “raised by wolves.” Although subsequent internment in a series of obscure institutions of ostensibly higher learning did nothing to brighten his outlook, John nevertheless wishes to share this enlightening daily affimation.