Metaphysics of Software Development

Some insights on the software development craft, from a philosophical viewpoint.

Tuesday, January 26, 2010

 

Common sense agile

"Agile is mostly common sense", reads the title of a blog post written by Brad Feld a few years ago. I completely agree and go further: the agile principles, as published in the Agile Manifesto, are self-evident truths. There is simply no other way of efficiently developing software, as every college student may easily acknowledge.

I use to think of it by an analogy: everyone knows by their own experience that if you bathe a piece of cloth in water, it will come out wet. This is obvious! Nevertheless, one can come up with all sorts of scientific proofs of that fact. All these proofs, however, are not meant persuasion. Instead — supposing someone has actually produced such proofs — they are mere scientific puzzles; little games with the sole intent of testing one's own fluency in the matter.

And why is this so? For two basic reasons: the first one (as I already mentioned) is that every single person in the world has known that fact ever since they were born. The second one is that if anyone who has never had that simple experience (supposing there is one such person) could not even start following a complicated chemical explanation. Knowing a fact is a prerequisite for understanding its proof.

The same holds true for software development. Every time I see an eloquent presenter quoting the Agile Manifesto, showing the tree swing cartoon or exposing statistical data from the 1995 Standish Group report, it is as if they were saying that the water makes clothes wet. Those in the audience who do not know that instinctively are not able to understand a word of what is being said. And those who are already acquainted with the presentation contents are just losing their times. I myself have spent some time trying to convince people that agile software development is important. But now I recognize how vain it is.

In spite of the obviousness of Agile, we all know people who advocate for those heavy, complicated, waterfallish processes as the panacea for software projects. They do it by writing those boring and completely unreal academic books, speaking in conferences, teaching at university courses about the matter and so on. Worse, some of them are senior managers who impose those processes on projects under their supervision.

Since what they propose is so anti-natural and obviously flawed, we can come up with some hypotheses for such phenonemon: either these people are 1) extremely stupid, 2) evil-minded or 3) totally laymen as far as software development is concerned. The last hypothesis, though, is far more likely than the previous ones. In either case, developers should be wary of those harmful ideas, that start off as academic vices and then spread out to the IT community, leading to miserable project failures.

Labels:


Comments:

Post a Comment

Subscribe to Post Comments [Atom]



Links to this post:

Create a Link



<< Home

Archives

January 2010   February 2010   March 2010   August 2011   November 2011  

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]