April 3, 2008
Commentary on The Art of Agile Development's Retrospectives practice.
Continuous reflection and improvement are the keys to successful agility. Actually, I'd guess that they're the key to successful anything. As inventor Charles Kettering supposedly said, "Failures, repeated failures, are finger posts on the road to achievement. The only time you don't fail is the last time you try something and it works. One fails towards success."
In other words, learn from your mistkaes.
Actually, there's a bit more to it than that. Not only do you need to learn from your mistkaes, you have to apply what you've learned. If you don't, you'll just keep making the same mistkae over and over again... fully aware of how silly you're being, perhaps, but not actually improving.
That's why I think the most important part of the retrospective is what happens after you leave the room. During the retrospective, you'll reflect on the past and imagine the future. You'll conduct root-cause analysis and come up with solutions. That's great. But don't forget to pick one of those solutions and follow through on it.
That's harder than it seems. Take this website, for example--I've had minor spelling problems in my essays for years. It was only last month when I finally took the time to find and turn on the "Spell Check" feature of my text editor.
It's not that following through on your retrospective ideas is particularly difficult. It took me all of three minutes to find that Spell Check feature. The problem, I think, is that they're not directly related to the work at hand. When I'm writing a blog entry, my focus is on writing, not text editor preferences. Fixing the spell check problem felt like a distraction, and it wasn't strictly necessary for me to get my work done, so I put it off.
So, how do you follow through? It's the easiest thing in the world--and the hardest. Just set aside time for it. Make your retrospective objective part of your iteration plan, create a habit of updating your big visible charts at the end of the day, or something similar. This works best when you keep your retrospective objectives small, and only choose one per iteration. A few hours per week is enough.
Continuous reflection and improvement are the keys to successful agility. Regular retrospectives help with the reflection. Don't stop there, though--set aside a bit of time for improvement, too. If you do, you'll steadily get better... and that's no mistake.