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.

Sunday, March 23, 2008 4:55:54 PM (Eastern Daylight Time, UTC-04:00)
well put. I like agile, but I've always been of the mind that you have to pick parts of whatever grouping of methodologies best fit the project and your management. You can be successfull without agile.

My last project took 2 years, started out with a waterfallish BDUF phase, moved into a more agile process toward the end, and is now very scrummish in maintenance/upgrade mode. And I firmly believe it wouldn't have been so successfull without that evolution.
Monday, March 24, 2008 9:13:56 PM (Eastern Daylight Time, UTC-04:00)
Scott,
I absolutely agree. While it's nice to think that picking a particular methodology would be a guarantee for success, I'm afraid we aren't so lucky. In the real world there are endless circumstances that determine whether or not the software we create can be considered great. While a particular methodology can definitely increase our chances for greatness, it certainly doesn't define our greatness.
Cheers,
Steve
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):