28 September 2006
I think my favorite bit in the whole thing (and there are a lot of good bits!) is this:
Bad Agile seems for some reason to be embraced by early risers. I think there’s some mystical relationship between the personality traits of “wakes up before dawn”, “likes static typing but not type inference”, “is organized to the point of being anal”, “likes team meetings”, and “likes Bad Agile”. I’m not quite sure what it is, but I see it a lot.
Like Steve, I am not a morning person, and this probably explains my general antipathy towards Agile Methodologies.
This antipathy is something I’ve struggled with at length.
I am a strong believer in responsibility-driven, behavioral, CRC OO design - and that is very compatible with the concepts of Agile. So how can I believe so firmly in organic OO design, and yet find Agile/XP/SCRUM to be so…wrong…?
I think it is because the idea of taking a set of practices developed by very high-functioning people, and cramming them into a Methodology (notice the capital M!), virtually guarantees mediocrity. That, and some of the Agile practices really are just plain silly in many contexts.
Rigorous unit testing? Slam dunk! Writing the tests before writing your code? Totally optional.
Pair programming for intense, multi-threaded framework code? Absolutely! Pair programming to retrieve a DataSet using ADO.NET? Yeah right…
See that’s the thing. Formalize a set of practices into a Methodology and the practices lose their meaning. Each practice in Agile really is good – in a specific place and for a specific purpose. But when wrapped in a Methodology they become “good at all times and in all places” – at least to most practitioners.
This isn’t Agile’s fault by the way. I’m not entirely convinced that Waterfall Methodology isn’t rooted in a set of perfectly good practices, which were subverted and corrupted by becoming a Methodology.
Nah, on second though Waterfall really is just plain bad.