I’ve really been digging on the game Skate, a fantastic skateboarding simulation with incredible game play. Meanwhile in the coding/learning slice of life, I’ve been working through Agile Web Development With Rails the cover of which features a picture of a skater either grinding up a rail backside or grinding down a rail frontside. I just completed the ScrumMaster course delivered by Jeff Sutherland and Joe Little (recommended, even if you’re anti-certification or certification-skeptical like me) where the workbook had a picture of an old skool skater doing some kind of lip trick.
Is this plain old woo woo or do skateboarding and Agile development have something in common? I smell metaphor!
Skateboarding is an activity where persistence pays; it’s a hard, hard thing to do well. You have to try a trick over and over again to get it right. Not only that, getting something right once, say a kickflip, rarely counts. It’s only when you’ve made it instinct that you can take it off the carpet and start doing it at speed in combination with other tricks or landscape features like stairs, rails, ramps, etc.
This repetitive pursuit of perfection reminds me of the path to mastery in Test-Driven Development. Think about it: you’ve got to learn the vicissitudes of refactoring, design patterns, mock objects, test frameworks in order to be intentional about good software designs. Both activities require a psychology capable of coping with frustration and a drive to try and fail many times just to experience the rush and subsequent Zen that mastering a maneuver brings.
Another parallel between skating and Agile is in how they both rose up in a kind of grass roots way (almost counter-culture) from an elite, tight-knit community. Heck “eXtreme Programming” shares a word with “extreme sports!” It’s kind of amusing to think of the Agile signatories who pioneered better ways of working at places like Chrysler as the geek analog to the Z-Boys carving in the empty pools of suburban SoCal. Skateboarding has definitely crossed the chasm. It’s big business now. Agile methods are getting there too. They’re becoming more mainstream and less of a conceptual sell with each passing day and blog post.
On the people-culture tip, skating and Agile involve small, participatory groups that ply healthy peer pressure (at best) that encourages speed and progress. How does the grommet discover they can drop in on the big ramp? Their buddies are there pushing them on, ready to slap the coping when they get it right. Sure a youthful sense of fearlessness, invulnerability, or outright stupidity helps but it’s the group that finally pushes you over the edge. The same effect happens with the Agile team working along, improving iteration over iteration. That improvement can only happen when each individual improves and it helps to have a support system that both pushes and pulls along. Fostering this group dynamic is a big part of realizing the benefits of self-organization.
Any former/current skate rats turned developer out there? See any other connections? Let’s hear it!