I apologize for not being able to give you an earlier heads-up on the Ron Jeffries presentation at the XP West Michigan User Group last night. It was well attended (I’d guess that there were approximately 50 people), but it would have been great to see more familiar faces. This was a chance to hear from an important figure in the Agile universe, and those that were able to make it were treated to two excellent presentations.
For the first hour, Ron presented on delivering software Early and Often. You have to love the hand-drawn charts in his slide deck…they are a perfect fit for his personality. In addition to providing a good Extreme Programming refresher, he had some compelling arguments about delivering value to your customer early and often. With traditional, plan-driven methodologies, the payoff to the customer doesn’t show up until relatively late in the game, whereas the practice of Extreme Programming begins to deliver tangible value within a couple of iterations (weeks).
As the name implies, an Agile approach is able to quickly respond to shifting and changing requirements much earlier than a more traditional approach (like waterfall). If that weren’t enough, the Agile approach empowers the customer by allowing them to drive for a target date by jettisoning less-critical features or to bite off the remaining features in a predictable extension of the project timeframe. I don’t personally believe that Extreme Programming is a one-size-fits-all methodology, but in my opinion, it does make sense for a majority of the teams I interact with. Unfortunately, the word extreme turns a lot of people off much too quickly.
In the second presentation, Ron did some pair programming with his associate, Chet Hendrickson. They provided a live version of the classic Bowling Example (with follow-ups here and here). This is a great example for anyone who is not familiar with pair programming, test-driven development, refactoring, or Extreme Programming. Frankly, it’s a good example to work through on your own to appreciate the power of the process. It’s easy to understand, not too difficult to implement, but it also provides enough interesting challenges to illustrate an evolving design. As an intriguing side note (that happens to make a perfect unit test), Ron mentioned that a bowling champion who had attended one of his presentations stated that any game of alternating strikes and spares results in a total score of 200. Cool.
The meeting was scheduled from 6:00pm to 8:00pm, but many of us ended up keeping Ron and Chet until around 9:30pm. They were both great sports, and we had some invigorating and insightful conversation until they had to start their long drive home. If you missed the presentation or if you think that this is a process that you’d like to implement in your team, Ron and Chet are available for on-site training and/or coaching. I’d recommend them highly.
Oh…and Ron, in true “only build what you need” style has a much more efficient blog post about the event.