近乎不朽:Ed Yourdon

近乎不朽:Ed Yourdon

Ivar Jacobson曾经不乏自得地提到过一场“方法论之战”和它的休战。的确,上世纪90年代初,“软件工程”领域还处在群雄并起的局面——据OMG组织(UML、CORBA背后的那个帝国)统计,当时仅仅“面向对象”方法论,就有27种之多。“圣人出而黄河清”,Jacobson自诩,他本人、Grady Booch、Jim Rumbaugh这“三位老友(the three amigos)”联手之后,应该天下一统,战事早该结束、硝烟也应散去了。
统一的最大受益者也许是开发者们——我们再也不用面对方法论学者们层出不穷的争执和分歧。但硬币的另一面,这个领域的景色也变得略嫌无趣:RUP已经变得过于稳定,像中晚期的罗马帝国,高踞宝座、打着呵欠、和SEI的CMM评估师们有一搭没一搭的调着情,自己都有些厌倦自己了吧;而新兴的Agile联盟,在短短几年内也变得丰满、成熟,它的前途不再无可限量,而在它的限度之外,我们还有什么呢?
Ed Yourdon可能是上述方法论之战的最大牺牲者,因而也是我个人私下最怀念的声音之一。在RUP还未一统天下的史前时期,Yourdon属于软件工程领域最有影响力的顶尖神祗。1979年,他(和另一位大师Larry Constantine合著)的《Structured Design》一书,廓清了“结构化开发”的王国。该书的故事也很有意思:这本书的原型是1975年Yourdon在一个炎热的小岛上完成的手稿(整个写作只耗时26天);而当该书由Yourdon自己的出版社YOURDON Press印行后,也就迅速成为当时软件界的圣经。人们根据该书的封面,给它起了“橙皮书”的雅号,这也是名著作者们能享有的最高荣誉之一。后来Yourdon把出版社卖给了大社Prentice Hall,后者重印该书时,不恰当地把封面改成了绿色——一个最能招致读者、作者愤恨的做法。时至今日,它还被残存的一些“结构化”开发人员喜爱。不过Yourdon自称,该书目前每年的版税,也就够他和Constantine享用些啤酒、比萨饼了。
如果Yourdon停留于此,他大概确实只能剩下这点儿零食。但在随后的面向对象大潮中,Yourdon仍是最重要的先觉者之一。90年代初的黄金岁月里,他和Peter Coad大师合著的《Object Oriented Analysis》和稍后的《Object Oriented Design》两书又成了这个领域中经典参考资料。而前者更奠定了以“Coad-Yourdon”命名的OOA方法。今天Yourdon本人自己对OO领域的贡献时认为,OOD中的大部分内容基本上已经被UML覆盖了(是呀,即使是Agile联盟的各种实践,也同样以UML为重要工具),但《OOA》一书则还是他的宠儿。Yourdon的妙语是:一本介绍全新方法论的著作,应该能在纽约/芝加哥的一趟飞行中读完——这也是他的《OOA》、Martin Fowler的《UML Distilled》、Kent Beck的《XP Explained》的最大好处。
所谓“食髓知味”,但感恩却不是开发者们的美德。当UML、RUP成为主流之后,Yourdon必须在新的领域证明自己,否则就难逃被程序员们遗忘的下场。Yourdon的几部近作,也确实在另一个方向上对软件业产生了影响:人们发现,这不是一位单纯的技术专家,毋宁说,他变成了思辩者,变成了先知或社会分析家。名著《Death March》(中译《死亡之旅》,译名不够恰当)直面软件项目管理问题,被很多人认为是最新版的《人月神话》(事实上从书名上我们也能追索出接近的风格);而Yourdon最受争议的两部著作又构成了名称上的对称:《Decline and Fall of the American Programmer(美国程序员的衰退和失落)》、《Rise and Resurrection of the American Programmer(美国程序员的崛起和复兴)》。试图扮演先知角色的Yourdon,致力于探究软件开发中的劳动力问题,在前一部书中,他认为IT外包将对北美程序员供求造成重大影响,开发者们应该早作准备——在经济膨胀的90年代末,这样的警告无异于危言耸听,不仅广大程序员不信,就连Yourdon自己也有些尴尬,连忙在后一部书中加以弥补,称赞RUP、CMM等实践的重要意义。
在警示者自己都怀疑的时候,狼还是来了——经济的衰退完美地符合了Yourdon的预言,但他在此前的一些过度言论(他认为Y2K问题非常严重,甚至为此从纽约搬家到新墨西哥)仍在他的名誉上投下些许阴影。你也会说,Yourdon从“技术专家”到“人文主义者”的转型并不完美(他甚至出版过几部纯虚构小说),但他的正直、广博、他对多个领域的贡献仍使他近乎成为一个不朽者,一个人们最需要倾听的声音。

你可能感兴趣的:(XP,OO,UML,出版,CMM)