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.