People who have known me for a while have remarked that there’s less of me these days. They’re right. See for yourself:

People who have known me for longer also know that my weight has gone up and down over the years. Having kids, work stress, and eating out too much pushed my weight up; periodic fits of healthy living pulled my weight back down, but only temporarily. This time, though, I got it right. The weight has come off slowly and I’ve made permanent lifestyle changes. (And if you want to test me on this, check back in 5 years. I’ll bet I still look like the “after” picture.)
Why am I sharing this? Because I see a parallel between getting healthy and going Agile.
Agile is a lifestyle. It’s a commitment to doing things that keep the code in good shape: refactoring, continuous integration, continual testing. It’s also a commitment to doing things that keep the team connected: collaborating, communicating, making progress visible and making visible progress.
Teams that toss out all documentation, compress schedules, and code up to the last minute are like people who go on crash diets. (Anyone remember the Grapefruit Diet? Or how about the All You Can Eat Cabbage Soup Diet?) Crash “Agile” might result in short term progress, but it wreaks havoc on the long term health of the team and the code base. And the burden of accumulating technical debt will make the team even slower than ever before, just like the feelings of hunger and deprivation will make a crash dieter gain back all the weight plus ten pounds.
On the other hand, teams that embrace Agile practices as a lifestyle change tend to stick with them. They know that even if TDDing feels slower at first, it will make a big difference later. They recognize that the immediate gratification of calling something “done” even when it is untested isn’t nearly as satisfying as delivering fully tested code that won’t come back to haunt them. They know that working with the Customer to really define and understand the acceptance criteria, even if that means delaying implementation a little, is preferable to getting into a Never Ending Story that needs “just one more fix.”
Mary Poppendeick says that speed requires discipline. The discipline of Agile practices is like the discipline of a healthy lifestyle. Both require commitment. The principles seem simple: Communicate, collaborate, iterate. Eat less, move more. Although it’s easy to say, it’s hard to do. It takes practice to find the right combination of practices that will work for a given individual or team. And it takes time. But the rewards are worth it.




congratulations on the lifestyle changes/discipline. Also, thanks for lots of fascinating reading.