Martin Fowler is among other things the Chief Scientist for ThoughtWorks. He gave an interesting keynote that consisted of 3 mini-talks. I thought it was very effective since it was accessible to those new to Agile as well as interesting for folks like me.

Here are my notes containing the juicy bits:

One problem Agile suffers from is Semantic Diffusion where the meaning of Agile is getting diluted. As we grow, there is increased miscommunication and less understanding. I see this struggle on mailing lists where well-intentioned people sometimes mis-explain things.

Martin then made the case that Agile requires Evolutionary Design. It goes like this: requirements change, so you need adaptive planning and hence evolutionary design. Play the Marshmallow Challenge to experience how this can work.

The next topic (middle of diagram) was about people. He touched on Taylor’s anti-pattern of process-centric view where people are replaceable parts and contrasted this with the research of Alistair Cockburn who classified people as non-linear and variable. Martin suggests that each team must own it’s process and evolution. Not sure how he reconciles this with the enterprise view.

The final topic was on code branching strategies and how continuous integration is the best of all strategies. Heed his call or suffer the despair of code decay in your feature branches.