A martial art for a programmer
kschua: I can only speak for the Chinese Martial Art I have trained and been exposed to - Wing Chun and Choy Li Futt. It is now a way of life for me. Primarily, I am a Wing Chun practitioner.If you are using the Agile methodology, Wing Chun would be good. It emphasizes 
1) adapting to change - This is especially true in the second form "Chum Kil" which transition from one position to another
2) least wastage - punch is a straight line to the target
3) cooperation to achieve a single target - a punch in Wing Chun is the utilization of the powers of your leg, hips, torso, shoulder, elbow transferred to the fist
4) getting immediate feedback - the chi sao (sticking hands) exercise trains you to be sensitive and look for places to enter
5) respect of difference of opinions - a tan sao can be used as to defend or attack depending on the personIf your SDLC is a waterfall method, try Choy Li Futt. Things I learned from this are
1) Commitment to a set of combination early - I have combos in Choy Li Futt which I carry through all the way, regardless of what the opponent does. The decision of what to do is made after assessing the situation (aka requirements gathering) and before the first strike2) Using a different approach to a problem - My favorite strikes from this style is the spinning elbow and using the forearm as a striking weaponThe primary difference to me is that Choy Li Futt is a brute force solution to a problem and Wing Chun depends more on an algorithm to resolve the problemGood luck!