利器何以为先

铁比铜坚硬,这是常识。在春秋战国时期,燕国的铁剑,锋刃部分已经达到了今天高碳钢的硬度。这已经非常可观了。中原地区,则以棠溪剑为九大名剑之首。棠溪地处西平,春秋属楚,战国归韩。铸剑名师曾有欧冶子、干将、莫邪等,工匠曾达七千之众。《史记》中说:“天下之剑韩为众”,说的就是棠溪。所以燕、楚等地,都以利剑著称。

但在另一个方面,从兵马俑坑中出土的四万件兵器,几乎全由青铜铸成。然而,大家都知道结果:秦国用武力统一了中国。

是铁剑砍不过铜剑?当然不是。

从史料和实物中,我们都可以发现:秦军的青铜剑比其他国家的更长。经兵器专家分析,产生这种需求的原因,可能与一种实战技法有关系:以相同的力量,刺比砍更致命,刺死砍伤。

你会在很多场合看到这种技法。例如《魔戒》这部电影,你会发现兽人拿大刀,人类则用长剑。在开始时两边都举着兵器高喊,冲向敌人。但接下来交战时,兽人还是在砍,人类则尽可能用剑去格挡,然后刺。

高明的剑士是不会用剑去砍的,剑刃多数拿来削苹果,真正有效的是剑尖。因而更长的剑可以更容易刺击到敌人。

无缘无故地产生一种更加“费工费料”的兵器,在战争史上是绝无可能的。因此秦军应当有相当的实战技法,来发挥这种长剑的优势以击敌。这种技法,与剑本身是铜是铁无关,与剑刃是锋利或钝拙也无关。技法产生了“长剑”的需求,进而把长剑的优势发挥得淋漓尽致。最终,铸剑技术不敌燕、楚的秦国,却灭了燕、楚。

由此可见,使用工具的方法,比工具本身更关键。所以“欲善其事,先利其器”这样的言论,未见得是全对的。

神乎其技又有什么用呢

然而,非但最坚利的剑不出在秦国,连最高明的击剑技艺也不出在秦国。

先秦历史中,最有名的剑术家当数在越国论剑的越女。《论衡》中说她是“剑技之家,斗战必胜者”①。她讲述剑道,说是“内实精神,外示安仪”,神情气度,巍巍然大家风范。在赵国,有连荆柯都敬佩,并前往讨教剑道的名家盖聂。再有宋国,以剑术为艺的兰子(艺人),竟然可以在奔跑中同时舞弄七把剑。

翻遍先秦史书,你会发现这种奇怪的现象:无有死士是秦的,无有铸剑名家是秦的,也没有什么技法通神的大剑师是在秦国的。

关于精妙的技艺,宋朝欧阳修记录的《卖油翁》大概是真人真事: 陈康肃公善射,当世无双……翁曰: 无他,但手熟尔。’康肃愤然曰: 尔安敢轻吾射!’……(翁)乃取一葫芦置于地,以钱覆其口,徐以杓酌油沥之,自钱孔入,而钱不湿。因曰:‘我亦无他,惟手熟尔。’”

我们回顾这个故事,卖油翁的技法再高,也无过于将油从更小的钱孔中注进去。他永远不会想到两件事:

油其实只需要装到壶里,从不从钱孔中注进去根本不重要;

如果买油者只是因为欣赏他倒油的技艺而买油,那么他就根本不需要卖油,厅众之下献艺即可获利了。

再说“陈康肃公”者,即当时的状元陈尧咨,四川东北部阆中人。陈尧咨文状元出身,箭技却有“当世无二”之称。也因此在后来的仕途之上,常任武官。

在当时,射箭多数是游戏之技。陈尧咨对卖油翁能“笑而遣之”,一方面是性情豁达,另一方面是视射箭为小技而已。他中状元之后,宋真宗拟改授他武职,与辽国使者比试箭技,他母亲不但不同意,还因此而责打他。再后,他荆南知府任满回家,母亲又问有什么特别的政绩,他回答道:“往来的客人都称赞我的射技。”

陈母“怒曰:‘一夫之技,岂父训哉。’击以杖”。

陈尧咨其人善射,却不知为何而射。他持“一夫之技”娱人娱己,空有“当世无二”之称,从未见他征战建功、平寇立业。他追求箭技,却从不知箭技并不是拿来射钱眼的,而是拿来征战杀敌的。如同卖油翁只知练就倒油的绝技,却不知他的目的只是卖油而已。

要知道陈尧咨并非没有军事才能。他晚年任天雄(河北东路的军防重地)的知军,虽然坚辞不就,但真的到任之后,却能注意到城防败坏、军器短缺的现状。虽然当时宋辽修好,没有战事,他却很有远见,认为北方有强敌,这样大意是非常危险的,遂将军事防务、装备修葺完善,整顿一新。所以他在军事上其实是颇有才略的。

影响陈尧咨精忠报国之路的,不但有社会崇文抑武的风气、其母以孝报国的教育原因,也源于他自己把射箭作为“一夫之技”的心态。

秦无剑技而一统天下,宋有康肃而痛失半壁!不知用法,不知用处,如同那习得屠龙之术者,神乎其技又有什么用呢?

工具的本质

真正让秦国强大起来的,并不是工具或者技法,而是在近三百年的战国中期才开始的商鞅变法。

商鞅变法中有一项是与战争相关的:废除爵位的世袭制,而改为按军功大小授予爵位。另外有一项也隐含地与后来的战争有关,那就是“允许人们开荒,土地可以自由买卖,赋税则按照各人所占土地的多少来平均负担”。正是这两项变革直接产生了后来使秦国强大的“耕战”政策。即所谓亦耕亦战,以耕养战,以战促耕。秦国先占领了蜀国(今四川),然后任用李冰兴修水利,使蜀国的农、商、织等民事空前繁荣。灭蜀后近六十年,秦国一举灭楚,继而统一六国,平定天下。

但这与软件工程有什么关系呢?或者与工具的本质有什么关系呢?

我们先来看看欧冶子的剑,与秦国武器之间的区别。欧冶子一生铸剑,才为越王铸了五柄,为楚王铸了三柄。秦国并不追求这种制剑之艺,而采用当时(战国末期)材质上显得有些落后的青铜剑。但制作工艺却很成熟,据说长度、硬度和韧性,以及铜锡的配比等,都已几乎完美。但在另一种主战武器“×××”上,秦国却显得“工于巧技”:弩机及部件和箭头达到了相当的标准化生产水平,弩机的部件可以互换,箭头底边宽度的平均误差只有正负 0.83 毫米。而在同一时期,赵国闻名天下的徐夫人,制(铁)剑一柄,价值百金;韩国棠溪的宝剑,存世者也不过十余柄。

秦国并不看重剑的材质,以及过于复杂的、艺术化的制剑方法。秦国关注于剑的长短特性、青铜工艺的成熟度,以及×××部件的“构件化”,本质上则是基于他们对“战争全局”的理解:如果只是个人喜好的玩物,而不是大多数人能得到的兵器,对战争有何益呢?

我们再来看看越女的剑技,与秦国的战术之间的区别。越女之技,未论及剑刺于何处,剑行于何方,无招式方法,是一种理论、思想。而秦国的战法则简单快捷,就是:快速奔袭,一剑刺敌,枭首而进。

工具的使用,一旦上升到“技艺”、 方法论”的高度,就难于理解掌握了。如果战士们都要花数十年来悟剑,那么还没等它悟成,国也就灭了。因此,秦国不看重“同时舞弄七把剑”这样的技艺,而注重能否以剑尖快速地刺杀敌人这样的技术。实在是秦国的用兵者,深知实战技法是一,论道传艺是一,不可概而论之。

如同工程与编程,单以编程而论,讲究技法之精妙,追求细节与枝节是可以的;但对于工程来说,能让团队理解、统一执行、迅速有效的实战技法,才是真实所需的。就像战争一样,团队化的工程中,技法的优劣并不是关键。关键在于某种技法是否能为团队带来整体的成效,而不在于某个人是否喜欢,或者深谙于此。如同陈康肃公,有当世无二之技,不能用于“群战”,也是无益。

秦国把战争当成数百年的工程,因此并不仅仅关注工具与技法。事实上,秦国是典型的以法治国的国家,因此与战争相关的所有活动,例如军令如何传达(兵符制度)、兵源如何补充(兵役制度)、士气如何激励(军功爵制)、后勤如何保障(耕战制度),等等,都有法令规范,都可以付诸实施并检测成效,进而在工程的整个团队(军队)中推而广之。

在这其中,兵器只是作为一种征战的工具,在秦军中起着相当重要的作用。但秦国并不迷信兵器,而是把兵器作为工具取而用之,并透析剑、弩等武器的本质,了解具体特性的成因与功用,进而规范成方法技术(而非技法技巧)。这些构成了秦军的军事基础,成为战争——这个浩大工程的组成部分。

工具之于工程,本质在于关注并发挥有益于工程全局的那些特性。一人一技,一器一物,又岂能是工程的要义?因此,我们最终看到拥有利器巧技的六国都不在了,最后只剩下一个强秦统一了天下。

惟手熟尔

很多的高手,对于工具的本质并不是了解的。他写程序快,只是记忆中读过的、写过的代码多于别人;他思考问题比别人细致,只是因为他有过比别人更多的错误;他能带领项目团队,只是因为他经历过足够多的项目团队。

这样的人可以算是能人:有能力的人。但未必真有见识,真有才略。

我们看到:卖油翁一生卖油,临老了只得了四个字“惟手熟尔”。一个人的经验与技术,如果到了“手熟”的程度,便也就进无可进了。

陈尧咨所谓的高妙之处,与卖油翁一样都不过是手熟之技罢了。卖油翁把油勺举得再高一些,可能多卖几许油?陈尧咨把箭靶树得更远一些,可能多杀一个胡虏?

浸淫于技法越深,便越容易忘记使用这种技法的最初目标和应用场合——就如同陈尧咨仅仅把射箭看成技艺,而看不到它作为战场武器的本质;亦如同卖油翁一味演练技法之高妙,而不考虑卖油才是目的,而技法只是表面。万幸的是,卖油翁终能悟到自己的神乎奇技,不过是手熟而已。而如今芸芸之中,众多的高手、熟手,可有多少还在卖弄那技法之事,技巧之事啊?

“尔安敢轻吾射!”当我在论及 RUP(Rational 统一过程)、UML(统一建模语言)这些具体的工具只是“工程之末”的时候,很多人愤而所言,与当时陈尧咨说过的话,又是何其相近?


 

 你看得到工具的本质吗_软件工程

 

本文节选自《大道至简——软件工程实践者的思想(典藏版)》

周爱民 著   

电子工业出版社出版