Software Development And Extreme Sports

For people who don't like the name ExtremeProgramming and want to ChangeTheName: http://uncyclopedia.wikia.com/wiki/Extreme_programming ...

Developing code in an uncertain, fast changing environment is a bit like an extreme sport (surfing springs to mind). You have to keep in dynamic balance with constantly changing factors getting thrown at you. There is is a high probability of failure and there are no guaranteed successful strategies because each situation has its own peculiarities, that said there are basic practices that can seriously reduce risk and maximise chances of success.

Surfing is not extreme per se. Surfing the Banzai Pipeline in winter is extreme. -- Pete Hardie

Funny thing about Extreme sports is that most practitioners are seriously into risk control. There is the basic premise that what you are doing (jumping out of a plane, riding a wave, flying off a hill, jumping a cliff, whatever) is 'very' risky, so you spend a lot of time minimising the risks you can control. Among hard core skydivers most of the discussions in the evening (after the ego puffing was out of the way of course) are about accidents, near accidents, what would you do if..., new best practices etc.

A common thread running between those sports is that you are best at what you do a lot and best when you are 'current'. Analogies with Relative Work (RW) skydiving (I think its Freefall Formation now?) are intriguing. RW is a team sport where no one can do better than the team but anyone can screw up. It is therefore in everyones best interest to get the best people and help anyone on the team who has a problem.

Venturing into the realm of high risk also means venturing into the realm of failure, and so a healthy attitude toward failure characterizes people who successfully engage in extreme sports. I have a friend to says "I describe my skiing style as a series of linked recoveries". Extremeness is about training and learning, neither of which can occur without failing. The trick is to size the failures so that they are not catastrophic, and so they can be corrected in real-time. Fully operative closed feedback loops are essential, as are certain amounts of alertness and adrenaline.

Question is, can you do anything extremely all of the time?


EditText of this page (last edited November 29, 2008) or FindPage with title or text search