从前,有一个A型血的程序员和一个B型血的程序员去登山。显然A和B有着不同的登山方法。

    A 到了山脚下,总是先停下来,仔细打量山势。接着,围着山脚转转,看看哪些是小山包,哪个是主峰。然后,设计几条不同的登山线路,并选择出最好的登山线路作为首选计划。同时,他还考虑到如果首选计划出现问题,则可以启用第二计划或第三计划... 

  而此时的B几经爬上了第一个小山包。B登上小山包的时候,发现这个小山包不是去主峰的路。B并没有气馁,稍微打量一下环境,立即从小山包上下来,往更高的一个山峰进发... 就这样,B无时无刻不在后退中前进,在下坡中上山,已经将A远远的甩在后面。 

  后来,当B成功地登上梧桐山(深圳)主峰的时候,而A还在半山腰艰难地攀登。 

  最后,当A也终于登上主峰之后,B说了一句很有很有意思的话:你现在知道极限编程和敏捷开发的威力了吧! 

  A默然不语...

    一位想学登山的新手来向A和B请教登山的方法。A把他的线路图和计划全部给了新手,没有说一句话。 

  新手看都没看,就跑去问B。B意味深长地说:努力,努力,再努力,当你到达山顶的时候,就知道了登山的方法!新手由衷敬佩。 

  ... 

  多年以后,A成功地登上了珠穆朗玛峰。 

  据说B倒下的地方离一号营地只有一百米远... 

  当那位新手千辛万苦再次找到A求教的时候,A还是将所有的登山线路和计划交给了他,依然没有说一句话。

    但新手明白:这就是设计!

李战(leadzen).深圳 2005-7-1