Sunday, March 16, 2008
« If you want to be sloppy and do whatever... | Main | Do we really need the web to be so secur... »
For all the ranting and raving I do about agile and how it's the best thing since sliced bread, you might think that I am of the belief that in order to create great software you HAVE to be doing agile.  After re-reading my post yesterday about the sloppiness of Agile, I realized that the post, and likely many others I've written, could lead people to think that I believe the only way to create great software is by pair programming, having weekly iterations, having retrospectives, and doing everything else that the agile guide book tells you.

Not so.  While I do believe that the agile principles and practices that many of us follow greatly increase our chances of success, they are by no means a silver bullet, and they are by no means a prerequisite for great software.  If you're doing waterfall, RUP, scrummerfall, or whatever else and creating software that your customers love, then keep rockin the process you're using.

My experiences give me a bias towards agile, and the many practices that it recommends.  I've seen it work well in ways I don't think waterfall would have.  I also really believe in many of the core coding practices that agile recommends.  Most especially: test driven development (TDD), continuous design, refactoring, YAGNI, and keeping it simple.

I think agile gives me a better chance at creating great software and that's why I use it.