Tuesday, October 10, 2006

Methodology Wars

Last week I read an article on Steve Yegge's blog entitled "Good Agile, Bad Agile" with a little bit more "bite" towards the Agile methodology of software development and in which he presented the Google way of doing things. This "little" article generated a whole bunch of reactions both positive and negative and lead to Yegge's follow up entitled Egomania Itself and to this counter article on the Coding Horror blog entitled Software Development: It's a Religion.

Now if you expect this to be just another one of these posts that takes one side and throws mud on the other, you should guide your direction elsewhere. I am not going to take sides in this war, nor I am going to praise one or the other, I am simply going to present my 2 cents on the whole thing, so here goes...

I don't like this whole pro Agile/against Agile, or as a matter of fact, any other methodology vs. methodology taken to an extreme of religious proportions. Wars have started for less :). My opinion is that there's really "No Silver Bullet" for software development so far and I think everybody should use what better suits their current needs be it pair programming, iterative development, index cards crap or whatever. Combine parts of methodologies if you like, pick something from there and something from somewhere else, adapt the "methodology" to your team's needs, not viceversa and don't start a Jihad just because you so zealously believe that your way is "The Way". What everybody could benefit from is the open presentation of your recipe without the "you'd better believe and use this or you're going to Hell" way of imposing your point of view. History is full of proof that fanaticism and inquisition doesn't lead anywhere, except to the "Dark Ages". I think that if you want to have a full picture of the whole methodology, you should experiment with as may as you can and, the good parts from here and there and make them work for you in a way you're comfortable with them, after all we all should be able to distinguish between the good the bad (and the ugly) parts of each of them and make our own informed decisions. All methodologies have a Dark Side and a Light Side, we can choose the path we walk ourselves.

Playing for Change