This post originated from an RSS feed registered with Ruby Buzz
by Obie Fernandez.
Original Post: My Agile Apologia
Feed Title: Obie On Rails (Has It Been 9 Years Already?)
Feed URL: http://jroller.com/obie/feed/entries/rss
Feed Description: Obie Fernandez talks about life as a technologist, mostly as ramblings about software development and consulting. Nowadays it's pretty much all about Ruby and Ruby on Rails.
Uncle Bob's response to Cedric's dismissal of Agile made me think of why I was attracted to Agile in the first place: I think Agile practices lead to more ethical behavior in our industry.
I learned of XP from Martin Fowler during his Refactoring talk at JavaOne 2000. I had recently jumped ship from my second "clueless" employer to my third. Around the time of the conference we were in the process of figuring out that the 9 million our bosses had spent to get a year's worth of analysis compiled into at least 4 inches worth of specification documents was completely useless. Not useless in the occasionally refer to it kind of way. Useless in the throw it in the garbage, never looked at it again kind of way.
I walked out of the Refactoring talk and straight over to the bookstore setup in the hallway, where Martin's book had just sold out. (I remember being quite annoyed by that!) So I bought Kent Beck's XP book instead. My fellow architect Stan also picked up XP at that JavaOne, and when we got back to our startup we proceeded to kickoff a 1-2 year attempt to do eXtreme Programming. Looking back, we ultimately failed for a number of reasons:
Management never bought into it
The development group exploded from 6 people to 30+ in about a year
Many of the new hires were utterly devoid of talent (some I would dare say devoid of intelligence)
All of the XP practices, including TDD, never came together at the same time, so we lost many of the benefits
Stan and I and the others that eventually carried the Agile banner were too inexperienced and/or immature to understand how to make it succeed.
Of course failure can be a great teacher. I learned a lot from that failed XP attempt and subsequently (since joining ThoughtWorks) been lucky enough to work with clients and coworkers that DO understand how to make Agile work brilliantly. In particular, my last couple of teams have worked on Ruby-based projects and managed using pure eXtreme Programming methods. My confidence in Agile as a better way has been strengthened. I have proven to myself that the factors that attracted me to Agile in the first place are true. Agile is a more ethical way to practice software engineering.