Confusion of goals and perfection of means seems, in my opinion, to characterise our age.
It's becoming an epidemic! They're springing up everywhere. We've got them coming our of our ears. It's as if you can't write a line of code, kick off a development process, or even think about the act of coding without signing up to one.
With all these manifestos for software development, our profession is in danger of becoming more about politics than the actual art, craft, science, and trade of software development.
Of course, a large and important part of professional software development is the people problem. And that necessarily involves politics, to some extent. But we're making even the foundational coding principles a political battle. Is this for the best? Or is it just a fashionable, sound-bite-sized way to get your point across, and to try to garner support for your pet hobby-horse?
These “development” manifestos are often too ambiguous for people to sign up to in any meaningful way. They're so general that they simply must be right. Akin to a development horoscope, if you will. Very few of them break new ground, or introduce anything genuinely radical. And, sadly, when a manifesto becomes popular we see factions form around it, leading to disputes about what the manifesto really stands for. Whole debates spring up around the exegesis of the particular manifesto items.
Software religion is alive and well.
Whether or not manifestos are a good idea, they seem to be springing up for any conceivable purpose. So, in order to stem the flow, and make it easier for future software activists who'd like to pen their own manifesto, here I present the one, the overarching, generic software development manifesto. Manifesto
if you like.
A generic manifesto for software development
We, the undersigned, have an opinion about software development. We are concerned about the future of our profession, and our passion leads us to draw the following conclusions:
- We believe in a
fixed set of immutable ideals
over tailoring our approach to each specific situation.
- We believe in concentrating on and discussing only the things that interest us
over the bigger problem.
- We believe in our opinion
over the opinions and experiences of others.
- We believe in arbitrary black-and-white mandates
over real-world scenarios with complex issues and delicate resolutions.
- We believe that when our approach is hard to follow
then it only shows how much more important it is.
- We believe in crafting an arbitrary set of commandments
over the realisation that it's just never that simple.
- We believe in trying to establish a movement to promote our view
over something that will be genuinely useful.
- We believe that we
are better developers than those who don't agree with us
because they don't agree with us.
That is, we believe we're doing the right thing. And if you don't you're wrong. And if you don't do what we do, you're doing it wrong.
Alright. I'll admit it. I exaggerated for effect. And my tongue is in my cheek. Mostly.
- The Agile Manifesto http://agilemanifesto.org/
- The Craftsmanship Manifesto http://manifesto.softwarecraftsmanship.org/
- The Refactoring Manifesto http://refactoringmanifesto.org/
- The SOA Manifesto http://www.soa-manifesto.org/
- The GNU Manifesto http://www.gnu.org/gnu/manifesto.html
- The Software Testing Manifesto http://www.softwaretestingmanifesto.org/
- The Library Software Manifesto http://techessence.info/manifesto/
- The OpenCloud Manifesto http://www.opencloudmanifesto.org/
- The Mozilla Manifesto http://www.mozilla.org/about/manifesto
- The Cluetrain Manifesto http://www.cluetrain.com/
- The End-User Manifesto http://alistair.cockburn.us/User+Manifesto
- The Experience Design Manifesto http://www.brazandre.com/manifesto/
- The Hacker Manifesto http://en.wikipedia.org/wiki/Hacker_Manifesto
- What foundational development “principles” do you hold dear?
- Do you sign up to, or align yourself with, development streams like “agile”, “craftsmanship” and so on? How closely do you agree with each of the items in their manifesto?
- What do you think these manifestos do have to offer the development community?
- What kinds of harm might they really be able do, if any?
- Or do you keep your head down and ignore this kind of thing? Should you actually follow these software fashions and fads to maintain personal development?