Confusion
of goals and perfection of means seems, in my opinion, to
characterise our age.
Albert
Einstein
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.
OK, OK
Alright. I'll admit it. I exaggerated
for effect. And my tongue is in my cheek. Mostly.
References
- 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
Questions
- 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?
3 comments:
I'll be starting my own Diabolical Developer manifesto soon, just to see if I can get more people signed up than some of the others ;-)
I do what Uncle Bob tells me to do. How can I go wrong? ;-)
You forgot the Manifesto for Half-Arsed Agile Software Development http://www.halfarsedagilemanifesto.org/
But seriously, though it's easy to poke fun at the Agile Manifesto, the principles behind it have really helped me & my teams over the years.
Post a Comment