Methodology is one of those IT topics that generally make my eyes glaze over. There is currently a hefty thread over on the altdotnet community rehashing the old debates about waterfall vs. agile vs. particular flavors of agile. The topic follows this well-worn pattern: waterfall, which dominated the application development life cycle for so many years, simply didn’t work, so someone had to invent a lightweight methodology like XP to make up for its deficiencies. But XP also didn’t always work, so it was necessary to come up with other alternatives, like Scrum, Rational, etc., all encapsulated under the rubric "Agile". (Which agile methodology came first is a sub-genre of the which agile methodology should I use super-genre, by the way.) Both Waterfall and the various flavors of Agile are contrasted against the most common software development methodology, "Cowboy Coding" or "Seat-of-the-pants" programming, which is essentially a lack of structure. Due to the current common wisdom regarding agile, that one should mix-and-match various agile methodologies until one finds a religion one can love, there is some concern that this is not actually all that distinguishable from cowboy coding.
For an interesting take on the matter, you should consult Steve Yegge’s classic post, Good Agile, Bad Agile.
I have a friend who, in all other ways, is a well-grounded, rational human being in the engineering field, but when the topic of Druids comes up, almost always at his instigation, I feel compelled to find a reason to leave the room. The elm, the ewe, the mistletoe, the silver sickle: these subjects in close constellation instill in me a sudden case of restless legs syndrome.
Not surprisingly, discussions concerning Methodology give me a similar tingly feeling in my toes. This post in the altdotnet discussion caught my eye, however:
I also don’t believe it is possible to do the kind of planning waterfall requires on any sufficiently large project. So usually what happens is that changes are made to the plan along the way as assumptions and understandings are changed along the way.
Rather than belittle waterfall methodology as inherently misguided, the author expresses the novel notion that it is simply too difficult to implement. The fault in other words, dear Brutus, lies not in our stars, but in ourselves.
Rabbi Gershom Ben Judah, also known as the Light of the Exile, besides being a formidable scholar, is also notable for his prohibition of polygamy in the 10th century, a prohibition that applied to all Ashkenazy jews, and which was later adopted by Sephardis as well. The prohibition required particular care, since tradition establishes that David, Solomon, and Abraham all had multiple wives. So why should it be that what was it good for the goose is not so for the gander?
Rabbi Gershom’s exegesis in large part rests on this observation: we are not what our forefathers were. David, Solomon, and Abraham were all great men, with the virtue required to maintain and manage polygamous households. However, as everyone knows, virtue tends to become diluted when it flows downhill. The modern (even the 10th century modern) lacks the requisite wisdom to prevent natural jealousies between rival wives, the necessary stamina to care for all of his wives as they deserve, and the practical means to provide for them. For the modern to attempt to live as did David, Solomon, or Abraham, would be disastrous personally, and inimical to good order generally.
What giants of virtue must have once walked the earth. There was a time, it seems, when the various agile methodologies were non-existent and yet large software development projects were completed, all the same. It is perhaps difficult for the modern software developer to even imagine such a thing, for in our benighted state, stories about waterfall methodology sending men to the moon seem fanciful and somewhat dodgy — something accomplished perhaps during the mythical man month, but not in real time.
Yet it is so. Much of modern software is built on the accomplishments of people who had nothing more than the waterfall method to work with, and where we are successful, with XP or Scrum or whatever our particular religion happens to be, it is because we stand on the shoulders of giants.
I find that I am not tempted, all the same. I know my personal shortcomings, and I would no more try to implement a waterfall project than I would petition for a second wife. I am not the man my forefathers were.