Today's DailyWTF is The Great Pyramid of Agile which is really an attack on crappy analogies rather than agile methodologies. I don't have a lot of experience with agile development. I have a lot of experience with places that claim to use agile methodologies.
Just this week I turned down a second interview at a company that claimed to use agile. The thing that sent alarm bells ringing for me was that the only aspect of agile offered was "we do two week sprints". So what they're saying is they expect me to work 24 hours a day two weeks out of four, and still end up with a pile of crap.
The horror stories that are giving agile a bad name are all due to companies like this. They pick and choose the elements of agile that sound good: no documentation, no (up front, but they miss that bit too) design. All sounds good from a business perspective, and with the promise of it being a better end result and faster! Except that losing those bits needs to be balanced by other features: close iteration, self-documenting code, up-front tests, pair programming, actually doing testing.
So I'd love to see some agile programming where people are actually doing the whole process. XP sounds great, this new "lean" that's all the rage sounds nice, though once again the name is sucky and misleading.
What's really interesting about all this discussion on software methodologies is that we're talking about the meta of development. Realising that 90% of the problem is actually understanding what we're solving, getting a handle on what the customer is aiming to do. The take-home is that if you interview a programmer who shows no interest whatsoever in methodology, don't hire that programmer! Even if you use a crappy method of development, and most places too, having someone who's passionate about improvement can only be good!
I might go and talk to ThoughtWorks. Simon seems to enjoy working there and I've now met some of the people in the Sydney office. Might need to brush up on UML though.