海外的软件开发

来源:互联网 发布:玻璃尺寸计算软件 编辑:程序博客网 时间:2024/04/27 07:47

作者:Edward Yourdon(美国)
翻译:iasc & bornworm(AKA)

转自:http://www.aka.org.cn/Magazine/Aka2/developoversea.html

目前在世界上的其它国家,当地软件开发者正在开发出和美国生产的质量相当的,甚至更优秀的软件。让我们来考察一下这些海外软件产业的成长方式。

  大约在六年前,我就开始警告人们,美国的软件业很可能将要面对来自发展中国家的不断增强的竞争。这一预见目前已被证实。海外软件生产者正力图从全球软件业这张饼上分割不可忽视的一块。虽然美国仍会支配着整个工业,但可以预期,在未来的几年里,非美国制造的软件将在国内和国际市场上占据越来越多的分额。并且,其中相当数量的产品将来自第三世界的发展中国家,而不是工业化的西欧国家。这一运动的领导者将包括印度,新加坡,菲律宾以及俄罗斯等国家。这些国家拥有大量的熟练程序员,而劳动力的价格则十分低廉。

  发展中国家软件业的发展道路是可以很清楚地预见到的,这条道路将分成四个阶段,且每个阶段都提供了一些吸引人的机会。

第一阶段:下现场开发的合同制程序员

  首先,第三世界的程序员们将会找上门来,提出利用软件用户所在地的工作队伍进行软件开发。这一方式的的主要优势在于其低价格。即使考虑路费,住宿和管理上的开销,(开发商)客户还是会发现他/她付出的费用只有付给美方开发队伍的一半。在某些情况下,可用性比费用更重要。如果该项目涉及一个“热门”的技术(例如,在一个C/S类型的应用中使用VB),则开发商可能很难在普通的劳力资源中找到适合的人。除此之外,还有稳定性的问题要考虑:提供海外程序员的中介公司常争辩说,他们的人在一个关键项目的过程中退出而转向另一个工作的可能性较小。

  和软件开发第一阶段相关的问题大多数都是很明显的:旅费等开销并没有给软件开发商或供应商提供任何好处,却降低了低工资带来的竞争优势。签证和工作许可的获得需要大量的公文,而工期拖延对于有时限要求的开发商是不可接受的。语言问题,文化差异以及当国外程序员试图维持一种和高薪的美国同事相当的生活方式时所面临的困难--所有这些都是很明显的问题。此外,开发商还经常会对雇佣一个没有经过现场面试的国外程序员持强烈的保留态度。这对于无论海外的软件供应商还是开发商(取决于谁来支付旅费)来说都意味着财政风险。

  一个更微妙的问题涉及国外的“人才流失”现象。从长远看,也许美国应该为这样一个事实感到高兴:它的软件行业正在成为一个“熔炉”,正如它的制造业在十九世纪所经历的。但这同时又是令发展中国家的规划者们头疼的:他们正在失去其最优秀和聪明的人才,因为很多到美国参加软件项目的程序员再也没有回来(具有讽刺意义的是,一份研究表明,菲律宾政府实际上是支持这一行为的,因为到国外做工的人会定期给家里的亲戚寄回现金。和传统的修建工厂的机制相比,这被认为是使硬通货币流入该国的一种更有效的方式。

第二阶段:现场分析,海外编码

  第二阶段的工作方式是,由几个系统分析员形成一个小组,和用户直接接触,定义系统需求,然后将需求传达给海外的程序员。大多数在第一阶段雇佣海外程序员的开发商正在考虑向这种方向转移。使用少数几个现场分析员将节省大量的旅费和管理开销。利用海外的软件工程师完成设计还会使人才流失问题减至最低程度,并且使得海外软件公司能够建立其自己的基础设施,并积累起在软件技术上的专长。

  第二个发展阶段的问题和不利之处在于:最终用户不会放心让一个几千里以外的海外公司去承担关键的项目。用户会怀疑软件开发者是否能理解他或她提出的需求中的细微差别,也不能确信开发者是否能对开发过程中的需求变化作出适当的反应。

  在大多数发展中国家,通信设施建设水平不高,其官僚机构和作风也使美国人大为挠头。不久前,我曾费了很长时间才和一个印度的同事建立起电子邮件的联系,我的同事抱歉地向我解释说,为了在某人的INTERNET节点上获得一个电子邮件地址,需要向政府进行申请并获得允许。在理论上,现代的技术使得从New York到Bangalore的传真和电子邮件象从Bangalore到New York一样容易,然而实际的情况却不是这样。

  第二个阶段并不是一个要么全有要么全无的时期:它在某些情况下出现,而在其它情况下却不出现。它对于接口和最终结果被很好地理解和定义的系统开发项目非常适合。例如,为UNIX硬件平台做C++编译器的软件工程师无需和产品的最终用户进行很多交流。这说明了为什么许多美国硬件和软件公司采用第二阶段的组织模式。当然,如果你受雇于一个已经处理好和海外分部的远程通信问题的跨国公司(如最近在马尼拉新开办公室的Anderson Consulting),你在开发软件项目时可能将不会遇到很多新的问题。

  如果你的用户和开发者习惯于采用CASE工具所支持的严格的软件开发方法,那么你能从根本上减少通信带来的问题。法国里昂的一家公司,PACT GROUP,已经采用了这种方法。它和欧洲的客户一起工作,采用智能软件ADW CASE工具做用户需求文档。ADW信息库随后被传到马尼拉,在那里的一个软件工厂中,由菲律宾程序员进行设计,实现和测试。其中每个程序员都配备了智能软件CASE工具。

第三阶段:海外开发的一般性软件

  在海外软件业成长的第三个阶段是开发一般性的软件产品-如字处理软件包,电子制表软件,以及数据库程序等,这些软件可以同时在当地和其它国家出售。

  这一阶段常常以海外软件开发者为当地市场开发软件开始。这之所以可能,是因为流行的美国软件会由于种种原因而不适合当地的使用。例如,美国的软件巨人们可能会认为乌拉圭的软件市场太小了。同样,微软的高层管理者曾对我说,一个新的产品在产生五千万美元的年收入之前都无法成为会计系统中的一个点;然而这对于发展中国家的一个软件制造商来说却意味着不小的成功。他们甚至会为获得其中的一小部分感到满足。类似的,美国软件商们可能会由于政府的官僚作风或猖獗的盗版行为而放弃巴西的市场。由于政治的原因,或是由于不能或不愿处理复杂的阿拉伯文字,他们可能已经忽略了北非和中东的国家。

  在进入国外市场时,美国制造的软件还可能引起其它的,更微妙的问题:LOTUS和微软这样的软件巨人提供的标准的PC软件包主要是为在美国制造的硬件平台上进行操作的讲英语的程序员定制的。无论软件发行商们如何吹嘘他们对非英语语言和非通用PC系列的支持,在诸如墨西哥,巴西,智利的发展中国家的程序员们发现事实并非如此;他们和我详细谈论过使“标准的”软件(如,字处理器,或表单处理软件)在他们的机器上工作的困难。有时问题出自硬件或操作系统,有时却是出自外文字典或saurus.

  当海外开发者决定把他们的软件带入北美市场时,第三阶段变得更有意思。显然,在开拓欧洲,日本或其它任何已经拥有大量懂计算机的用户的市场时,他们会遇到同样的问题。即使新软件是没有错误的,开发者的文化背景仍可能会带来问题(例如,用户手册和GUI界面不符合美国用户的习惯)。

  不过,真正的问题来自市场。即使是将最小的PC应用软件推向美国市场,其开销也足以使刚起步的美国软件公司怯步,更不要说来自蒙特维多或圣保罗这样的第三世界城市的同行了。

  也许NT太庞大了。那么字处理软件又怎样?许多发表在商业报刊上的文章抱怨说,微软最新发布的WORD和WORDPERFECT60中“臭虫”太多,且过于臃肿。这些知名软件,仅DOS版本就需要8到10M磁盘空间,而WINDOWS版本会占到15至30M。可以很容易地想象,如果一个海外软件商能够推出一个价格100美元的字处理软件,提供百分之八十的知名软件的功能,但是只需256KB的磁盘空间,那么他会获得成功。即使该软件需要1M空间,仍然比这种臃肿的产品要轻巧高效得多。

  有人会认为这种设想即使不是完全不可能,也是不现实的——这是一种很自然的反应。但是,这难道比日本在70年代利用Honda Civic和Toyota Corolla击败底特律的gas-guzzler更不可置信吗?平心而论,我应该指出,在进入美国市场之前,日本为国内市场生产汽车已经有20年的历史了,并且,他们比典型的在第三世界国家涌现的“车库中的两个年轻人”类型的软件组织拥有雄厚得多的资本。另一方面,在大约十年前,出于各种现实原因,微软和LOTUS就是车库中的两个年轻人。在软件业,事情在迅速地发生变化。同时,在国外开发的紧缩包装的软件可以嵌在美国造软件的外壳内。对于用户,将不会知道是俄罗斯的程序员开发了该软件(参见“俄罗斯的软件”)。

第四阶段:充分利用本土技术特长

  软件业发展的第四个同时也是最后一个阶段涉及到最大限度地利用本国独特的应用技术领域。我已经看到了发源于埃及,巴西,智利,印度,新加坡和菲律宾的独特的应用技术。这些技术完全独立于软件技术本身,并且都被包装成供商业销售的产品。

  埃及:多媒体和国际金融。埃及为我们提供了一个利用本土特长的很好的例子。他们开发了一些优秀的多媒体应用来分类,管理和展示其浩瀚的历史文物宝库。这可能比美国人在国内开发出的任何应用都复杂得多。

  当然,多媒体技术正在hollywood和硅谷被大规模开发,但是多媒体应用却常常依赖于本地的环境。每个国家都有博物馆,甚至美国也有一些可以追溯到几百年前的历史文物-但是很难想象任何其它国家拥有象埃及那样悠久的历史。在美国,大概只有无聊的退休人员会对历史文物感兴趣,而在埃及,博物馆和历史文物是主要的旅游名胜,并因此成为主要的财政来源。此外,它们对于希望在发源地开展研究的学者来说是持久的研究目标。如果你是在希腊,罗马,中国,印度,或任何其他拥有可以利用多媒体进行分类,组织和展示的悠久历史,文化和历史文物的国家,你几乎毫无疑问地能在开罗的博物馆买到比Cleveland的更好的多媒体系统。

  具有讽刺意味的是,埃及也开发了一些世界上最复杂的金融应用软件用来管理来自各个国家,国际金融机构和救济组织的贷款和财政补助。其它的第三世界国家可能发现这样的软件是非常有用的,而且当然是在Borland,Apple,或者MicroSoft的产品目录中找不到的。

  香港:赛马风行。皇家香港骑师俱乐部每年在赛马和其它形式的娱乐项目上获得将近100亿的收入。俱乐部的MIS组织显然具有和美国最好的同类组织相当的实力,它利用了最新的面向对象方法和C/S体系结构,而MIS为赌马提供的计算机支持却是独一无二的;类似ATM机的投注点分布在香港各处,且其复杂程度令人叹服。许多美国城市也允许赌马,但是他们的系统需要支持多少种语言和字符集?多少种现金?骑师俱乐部处理了比这更多的问题。结果是,它控制了向澳大利亚,吉隆坡等盛行赛马的中心的主要市场。

  新加坡:出口表单。在过去的十年中,新加坡已经成为知名的高科技制造业的中心。许多电子公司和计算机公司在当地设立了总部。但是在计算机时代之前的很多世纪中,新加坡是一个深水港口和供往返于欧洲和东方的船只进行交易的中心。结果是,新加坡人对海运和转移货物上下船所需要的报关单,货物清单等表单的处理工作有很深的了解。这些文书资料被处理得越及时,船只就能越快的卸载货物,装载新货,既而驶向下一个港口。

  新加坡花费了几年的时间来为它的深水港口建立一个极其复杂的计算机化的管理系统。这一系统由国家计算部协助开发,成为该机构更大的利用专家系统技术使新加坡在下个十年内成为一个“智能岛”的计划的一部分。目前,新加坡正将港口管理系统出售给鹿特丹,香港,纽约以及世界其它主要港口。

  巴西:高通货膨胀率的银行业。让我们考虑一下美国在革命战争以来就没有经历过的高通货膨胀的影响。象巴西这样的国家已经和这种现象进行了几十年的斗争,它不仅对巴西的整个经济发生了普遍的影响,也影响到各种用来处理相关经济领域内的商务的计算机系统。还记得在80年代,当利息率在百分之二十左右徘徊时,你是以怎样的一种焦虑心情试图在你的银行帐户上多获得一天的利息吗?还记得由于银行的无能,使得在房租从你的帐户转移到房东的帐户上的三天时间的过程中,你的存款金额发生莫名其妙的变化时,你的气恼状态吗?

  好吧,想象一下生活在一个通胀率在每月百分之三十的国家的情形,按当地的笑话,你可以通过观察人们是坐公共汽车(在行程开始时车费)还是坐出租(到达目的地后付费)来判断通货膨胀的状况是否严重。在巴西和其它一些国家,另一个值得考虑的事实是,银行是属于国家的,而不是象在美国,州立银行星罗密布。最终的结果是,对于那些经济情况和巴西相似的国家来说,在巴西开发的一些银行系统要比在美国开发和大量销售的系统优秀得多。

  美国:仍然是有竞争力的。仍然有美国可以维持其竞争优势的应用领域。例如,美国控制着基于PC的操作系统,且在可以预见的未来,这种情况还会继续保持。正如涉及信息高速公路的任何东西一样,在多媒体技术,代理和向导,基于光笔和无线/移动技术的计算,以及虚拟现实等领域的应用和系统是美国的强项。另一方面,在几年以前,你同样可以称C/S技术,面向对象,以及各种其它很多技术是美国的强项,而现在,这些技术在世界各地得到了广泛的利用。

挑战性的新世界

  软件行业全球范围的竞争不是一个独特的现象。发达国家的软件工程师能够和第三世界的同行进行竞争,正如美国和欧洲汽车公司所学到的那样。但是如果发达国家的工人和管理者意识不到严肃竞争的可能性,这一过程甚至无法启动。事实正是如此。软件业还没有意识到这一点,但是我们一定会看到,它将在未来的几年中发生。