产品还是服务?
作者:Bertrand Meyer编译:SnowedForest (SnowedForest@263.net)
Rektor先生,尊敬的同事们,女士们,先生们:承蒙大家来参加我的软件工程Ordinarius教授的就职演说,我深感荣幸。今天,我要讨论一个困扰很多著名人士多年、并牵扯到我们从事工作本质的一个问题:软件是产品还是服务?
法官的回答
显而易见,在法律上软件是产品,而不是服务。一个人如果不能意识到这一点,那他一定是在过去的20年中都骑着飞马的Walkure*。之所以会是这种答案,原因只有一个:软件具有版权,甚至可以取得专利权。有谁听说过为服务取得版权吗?假如软件是一项服务,那么你每次开始这种服务都应该是新的。(但是)并没人提供服务,也没什么服务可言。
这么定义软件并不合适。你把一个软件分发给你的用户,接着他就一遍遍地运行,这就不关你或你公司里的人就的事了。(应该)尽量将其与服务联系起来――昨天晚上与几个要好的同事品杜松子酒的时候,我一直在想这个问题。我告诉老侍者Hans,这与他所从事的工作是同理:我喜欢他的服务,但我更喜欢他提供的产品(酒)。待我将另一杯酒一饮而尽后,我指出:没他提供的服务,我就不能使用他的产品。我动用了点策略,做了些退让,以换取他给我了另一份他的产品的拷贝,紧接着我就回答…其实我究竟怎么回答的,我也记不大清了,我所知道的就是晚些时候我已躺在了床上,思考着产品和服务了…
从法律上讲,软件当然是一种服务。每个人都很清楚,除了一些已在他们迷失方向的船上航行了20年的Flying Dutchmen(*)。以专利为例吧。Amazon为他们的一点即购( one-click purchasing)技术成功的申请了专利,使得Barnes和Noble都不能使用类似东西。他们从未声明过Barnes和Noble拷贝了他们的产品(据我所知,他们的技术中使用了另外一种编程语言,并且可能内部使用了一种完全不同的算法)。能让法庭深信浏览者在Barnes和Noble所见的特殊过程与在Amazon上的浏览经历是如此相象就足够了。这最终证明,在法律上,软件是服务。法庭除了给了Amazon专利权,还有什么?
那么,从法律角度讲,软件确实是一种产品**。我是指,是一种服务。对不起,是我的口误。我的讲话可能犹犹豫豫,但我的思路是清楚的。只是(因为)在来这里的路上我曾在Hans那里停留来庆祝我的任命,他那里的moselwein不错,有时间可以去尝尝。别忘了要点trocknen,因为另一种过于甜。但不管什么样的甜品和烈酒都不会对我的专业分析能力产生影响。确实,从商业上讲,软件也是一种产品。是什么使微软成为巨无霸?他们出卖产品:Windows,Office,Project,Visio. Oracle这样的大公司也是如此。现代软件先驱者不仅包括微软,也包括开发出以前的Turbo Pascal、Lotus1-2-3的Borland和一些别的公司。现代软件业就是他们从IBM那种70年代的模式永久地脱离出来开始的。当时,IBM的将软件作为服务的模式就是一次性要用户付清所有的软件费用。
当然,让我们看一下像EDS,Cap Gemini,Accenture等这样成功的软件公司,就足以理解软件在商业上确实是一种服务。他们想成为“应用服务提供商”。在法语中表示“软件工作室”的词组是Société de Services*,这绝非偶然。他们是软件公司,但假如你问他们每天都做什么,他们会告诉你他们在编程方面花的精力越来越少。有些人会说事实也说明这一点,但我并不是在这里批评我们尊敬的(软件)业的伙伴们。问题的关键是服务已经是他们经营的核心,并且他们中的许多人也尽量回避任何听上去与出卖服务**有关的事。我指的是(出卖)产品。Oracle这样的大公司深知这一点:它的主管会告诉你,(Oracle)将来要为用户运行综合解决方案-使用户避免和任何与产品和产品版本、配置、平台、纠错以及升级有关的事接触。
文化的帝国主义
另一个真正认识到软件是一种服务的群体是我们软件业著名寡头。当然,我指的是GUN。他们提供编译器免费下载,这使得在这一他们已取得成功的领域,除了服务以外,再没有更多的空间留给其它的商业模式了。在Unix领域没有留下C/C+市场:全都是GCC。你问是利还是弊?兼而有之。无论是谁,想得到(C/C++)编译器都易如反掌,但这种编译器已多年没有真正的改进了。为什么垄断者要自找麻烦?(因为)在面向服务的产业中,要生产一种更好的新产品对商业的发展来说并不是什么好事。
喜欢冒险的富豪们深谙此道。他们对任何有关生产工具的谈话都置若罔闻,因为没人关心这个。这种情况已达到了一种荒唐的程度。甚至在当前的经济发展中,各个公司对开发者都求贤若渴,而一个花费$3000的开发工具就会令他们暴跳如雷。好的工具的花费数倍于开发者减薪与调试费用,(产品)延期推向市场看起来好象也不会打动潜在消费者与支持者。在服务业中,生产投资是一种过于奢侈的举动。在关于如何应对开发人员缺乏的讨论中,每个人对法人心理学和向开发人员提供宝马车来留住他们这类事都滔滔不绝,却没人提到显而易见的一点:好的产品可以减少开发人员。
产品也是服务的另一个例子是Postscript向PDF的转变,在Adobe世界中被称为提取(distilling)。名字听起来不错。你可以从Adobe买Distiller产品,也可以向Adobe基于网络服务提交订阅,来提取你的个人文件。我们的小镇上曾经有一个酿酒厂,在那里你可以带去樱桃,制作你自己的樱桃酒,这当然是要付费的。尽管Hans 的里屋有几瓶不错的酒,(但我还是要说),自己的酿的酒比商业原料酿的要好得多。许多像Adobe这样的产品卖家都将他们的产品作为服务。从经济上讲,是什么从法律上避免了Peter,Paul和Ludwig在他们着站点上使用了产品的拷贝以后开始相同的服务呢?这是一个有趣的问题。当然,他们没有原始卖方的那么容易(在网上)被找到,但多花点钱建立一个类似Napster的pear-to-peer系统可以让客户更快地找到他们的站点。
然而对于大多数面向产品的公司来说,这种向服务的转变看起来也是时下的潮流。根据记者们的意思-尽管不是公司本身-微软的.Net正在全面向所谓的软件服务模式转变,MSDN也成为其中的一股力量。
如果微软真这么想,它就错了,因为有一位来自澳大利亚的家伙,名叫Szyperski(Clemens to his friends),他曾在软件部分力推这种思想-基于组件的开发,这也是他的叫法。夫人,我还不想回答问题。这是我的时间,不要打断我的就职演说。我听不见你在说什么。什么?Szyperski不是澳大利亚人?糟糕,我还想对他那里不错的Shiraz恭维几句呢?好吧。不是每件好事都是澳大利亚的。Szyperski主张我们应该建立独立的、可扩展的组件。这好象与当前流行的将软件作为服务的观点不符。他的确知道一些微软不知道的东西。但愿他们(微软)能听取他的意见。先生,能不能等我说完。你说Clemens事实上是为微软工作?Go figure*。
最终结果
从各位面部表情(you resemble the party guests in Die Fledermaus when they find themselves in jail for nothing else than a trifle too much Sek*)上,我就知道你们一定料到我现在讲到最后的前沿部分-技术。这里要再证实一下我的论题。技术上,软件也是服务**,我指的是产品。毕竟,我属于那代为“软件工程”冲锋陷阵、摇旗呐喊的人。我们所有的职业生涯、我们的整个人生观都奉献给了建立一个真实的工程学科的技术基础。如果这句话听起来有点像唱高调,那就这样讲吧:如同其它工程建设一样,实实在在的技术是软件工程的重头戏。当然,工程上也经常用到服务,但它是以产品的基础结构为根本的,并常常来源于此基础。在一定程度上,我想我可以这样说:经过几十年的努力,我们已经开始能够成功地仿效我们的前辈,并且如果说我们今天的软件开发大大好于10年、20年甚至30年前水平的话,那至少在某种程序上是因为我们使用了更好的开发工具。现在力图将服务作为将来的发展道路的话就如同在拥挤的大街中央高喊“Plisner Quell!*”一样罪恶。
正如我所讲-我想这就是我正在讲的,服务将会一直处于统治地位。在软件的历史中,(人们)曾经试图将软件结构视为钉子和木板(这样的东西),否认其创造性甚至艺术性。自从“自动编程(automatic programming)”开始,首次产生了像汇编和后来的COBOL这样的杰作。后来又有了报表生成器和“第四代语言”。再后来又有了“无自我程序设计(egoless programming)”。对象技术-如果没有标准化的小产品,哪有类(classes)呢? 还有组件技术。是程序员和他们的服务追随着所有这些梦想使得软件具有了活力并且能够运行,至少能够在某个阶段能够运行,尽管这也与管理者们对产品生产线与新式产品的洞察力有关。
那么结论清楚了。我们将这个场喋喋不休的争论毕其功于一役,结果就如同一杯葡萄酒一样清澈。说到酒,我们忠实可信的Birgit向我暗示他已准备好了,我也渴了,能在教员俱乐部和大家一起庆祝这一刺手问题的最终解决,真高兴。
*是翻译不出的,请各位补充。
**是作者“口误”,后面作者都作了说明。