BI软件: 购买还是自建?

“是直接购买套装软件,还是自己组织力量开发?”随着各种新选择的出现, IT业这个最古老的话题变得更加复杂起来。本文将研究MCI、Motorola、Visa和其他一些公司在这个问题上是如何处理的。

这是一个绝大多数IT经理都无法回避的问题: 是支付License费用以购买那些能满足你75%需求的应用程序,还是组织自己开发,以保证最大程度地满足你的需求?

经过几十年来的摸索和尝试,其间不乏失败和挫折,理论家们得出了一个近乎一致的结论: 当你希望实现通用业务流程的自动化时,可以通过购买商业的应用程序来实现,而当你要处理的是与其他公司不同的核心业务流程时,你就应该自己研发。

而实际操作过程中并非如此简单。也许公司自己研发的那些笨拙而复杂的业务系统只是用来处理一些很普通的任务, 但如果要用商业软件来替换这些自己开发的程序,就会面临难以估计的转换成本,这一切使得这种替换变得很不现实,而且,在某些情况下,软件外包或者软件租用可能更适合企业的战略计划。“购买使其标准化,而自己研发体现竞争优势”作为一种思维方式是非常可怕的,实际操作中,一个公司在现实中面临的选择要凌乱得多,需要仔细决策。

“是自己研发还是外购”,MCI、Motorola?isa等企业对此表现出两种截然不同的态度。事实上, 随着软件供应商们将各种各样的软件推向市场(从通用的CRM软件到细分的行业软件), 企业在购买和整合方面的经济压力在持续上升(甚至包括软件租用)。当公司决定自己动手研发软件时,他们必须尽力确保他们所开发软件的功能能在整个组织中尽可能被重复利用。

Price waterhouseCoopers的前任全球CIO Mark Lutchen说:“每个人都知道,你的业务越标准,你所能购买的套装软件就越多,你实施和运维的成本就越低。”

然而,一些主管人员,如MCI的IT总架构师Bob Laird(MCI已经被Verizon收购)在谈到组织自己开发软件时并不这么认为,他说: “只要能带来更大收益或者有竞争优势,MCI还是愿意投资的。”与许多现代企业一样,Larid 和他的团队重新调整了他们的内部开发过程,引入SOA架构,以保证开发出来的应用能再次被利用,而不用每个新软件都要从头开始开发。他说: “做这样的决定部分原因是想看看那些老的应用程序中哪些仍有商业价值。”

究竟是开发还是购买,其考虑因素是一样的: 成本,上市时间,策略,架构,现有技术和战略意义,以及由于软件供应商的联合产生了新的定价模式从而带给用户更大的优惠。另外,开源软件提供了一种最佳选择,就是能将购买和自建两种方式有效地结合起来。事实上,几乎在每一个大型IT组织中,上述获得软件的方式都被广泛地采用。

成本是第一考核标准

大多数的IT经理认为,他们会优先考虑购买软件,尤其在上市时间和成本是重点考虑因素时。Price waterhouseCoopers公司的Lutchen说,“经验告诉我们,购买现存的软件可以最大可能地削减成本,从而腾出资源用于开发最需要的应用。”

在评估是购买还是自建的过程中,透彻地了解软件生命周期的总成本是非常关键的,特别是考虑到软件的使用周期一般为7到8年。Lutchen说,这一步是非常重要的,因为软件成本的70%都发生在实施以后。企业内部的研发人员在对软件生命周期的运维成本进行现实地、严格地评估后,通常会偏向于购买方式。

即使在涉及企业的消费者、产品或者服务的核心领域,以及IT部门对于自己研发软件有一种天生的偏向时,购买软件仍然占上风。例如,虽然Visa也有自已的软件开发中心这样一个IT部门,但这大部分原因还是出于对安全性、可靠性和隐密性的考虑,以及全球金融网络的巨大规模。在Visa已经做了三年CTO的David Allen说: “由于信息量太大,把项目外包给一个小的机构并不现实。”

然而,当Visa准备为它的会员银行以及自己的业务提供更大的支持,比如采用收益分析的应用软件时,它还是将软件供应商的解决方案和它自已开发这种最传统的方法结合起来,以改进现有的数据收集、分发和报告的方法(Visa正在组织内进行PMI认证,既可以用传统的开发方式也可以用迭代的开发方式)。考虑到外购比自己开发,其功能实现更快,其产品生命周期的成本更低,Visa还从Ab Initio公司购买了信息处理软件,又从Microstrategy公司购买了报表和分析软件。

对于基础架构和工具这样的东西,Allen要求Visa购买。他说: “对此,我们只要它们可用,在这方面我们自己开发没有什么竞争优势。因为这些系统的开发需要综合应用众多公司的技术。”

而另一方面,开源运动也在软件开发、运行、数据库和程序语言等方面给Visa带来很有好处。

Allen说: “开发工具便宜,而且可以获得源代码,让我们可以充分发挥购买和自己开发这两者的好处。”

不要大幅修改商业软件

尽管开源软件的实现可能涉及各种各样的定制开发,但上个世纪90年代ERP的教训依然在目: 对于商业软件,最好不要修改,否则,系统的维护成本将接近甚至超过自己开发系统。

MCI公司的Laird 说,许多公司也包括他自己所在的公司都犯了一个错误,就是对购买的软件进行修改,其修改程度之大甚至接近于自己开发。他不禁要问: “既然你是购买软件,为什么还要做那么大的修改来适用于你的业务,早知如此,还不如从一开始就自己开发?” 在一些并非MCI独家拥有的业务领域,如销售和财务等领域,Laird的选择是让MCI去适应购买的软件。“购买的软件必须能与我们的业务过程紧密配合。如果不是,我们会让业务过程去适应所购买的软件。”

对于定制,Lutchen推荐购买一些插件产品,比如很多ERP软件商都提供这样的产品。他说: “如果你能避免对核心部分进行修改,这种策略可以使你的维护成本降低。”

SaaS(Software as a Sevice)这种通过浏览器来完成应用的解决方案,其本身的特性有助于避免对程序进行大规模的修改。Motorola分别使用了Salesforce.com和Rearden Commerce提供的SaaS解决方案,其策划、架构和电子商务副总裁Toby说: “SaaS是企业值得考虑的一个较好的采购模式和利润回报模式。”Redshaw说,部分原因是因为SaaS的提供者通常以功能模块的形式是让用户自己挑选所需的功能,然后购买,而不像那些传统的套装软件,用户常常需要为软件中的一些根本不可能用到的功能支付费用。

Redshaw认为SaaS模式对于企业的IT应用将有巨大的影响。商业软件自称比公司自我研发有更短的上市时间和更低的维护成本,而SaaS则没有硬件和软件的资本投资,而且维护成本也较低。Redshaw预言企业软件的价格将持续下降,因为企业在ROI方面的压力越来越大,而在软件采购方面更加谨慎,同时软件供应商之间的竞争也越来越激烈。

最新而有吸引力的购买选择使得企业在自我研发软件方面更趋于保守,企业甚至倾向于采用那些业已证明是好用的商业软件来替代那些已有年头的自己开发的应用程序。

基于套装软件进行开发

在过去的几年里,哥伦比亚特区政府一直在忙于制定地区级的规范,以将政府部门的系统转换成Ariba、PeopleSoft和其他一些公司的标准的商业应用系统。然而,特区政府DC-Stat商业智能集团主任Dan Thomas仍然决定自己开发一个BI 系统,因为其功能要求是单单商业软件所不可能达到的。

在开发过程中,Thomas基于SOA架构,将自己研发的软件与商业软件结合起来,为管理人员、分析师、普通职员和在外的工人提供了一种基于Windows和Web的分析工具。Thomas说: “我们购买核心软件,然后自己开发系统所需的连接部分和工具。”

首先,他购买了一些基本的软件: 从Oracle和ESRI购买地理信息系统,从Business Objects购买商业智能应用程序,从Sonic购买ESB(企业服务总线)程序,从Plumtree购买门户系统。然后,DC-Stat的研发人员用Java和.Net来创建服务和把上述核心程序连接在一起的界面。

Thomas选择公司自己开发而不是购买的一个主要原因是因为股东们需要四个应用程序,而这四个应用的用户界面各不相同。Thomas解释说: “我们尝试了采用快速开发方法,包括敏捷开发方法。我希望马上就能让系统用起来,哪怕现在只能满足80%的需求,也不愿耗费很长时间以后才达到100%的满足。”

尽管综合采用现存的商业软件和公司自己开发软件这个方法能降低风险和成本,但企业总会有一些对企业的业务非常具有战略意义、非常特殊的内容是不可能考虑商业软件的。Laird说,对MCI而言,特殊的内容就是那些与它的电信网络相关的东西,如网络提供、网络管理和网络修复等。

在20世纪80年代, MCI自己开发了一个网络自动修复系统,因为当时根本就没有这样一个商业软件存在。Laird说,这个系统是非常成功,它使MCI的FCC(美国通信委员会)网络中断投诉次数在业内达到最低。直到现在,公司仍然还在使用这个系统。

将开发的软件投向市场

当现有的套装软件不能满足你的要求时,也许一个小小的创造就能降低自己开发的成本,减少那些专有的应用程序的维护费用。一种方法就是和竞争者合作共同开发行业应用软件,最终获得应用许可。

Lutchen说: “市场和规模效应迫使竞争对手之间更频繁地合作。” 比如,他娱乐业的一个客户正在和他的竞争对手、风险投资商和一个软件公司合伙开发一个版税信息系统。他说,现有的版税信息系统很难满足需求,因为每个合同都是不同的,跟踪和付款过程都非常复杂。现在,他们正在根据如此复杂的需求共同开发这个系统。

匹兹堡医疗中心大学(简称UPMC)也是这样在做。在20世纪90年代后期,UPMC一直在寻找一个图像存档及通信系统(PACS),用于将放射影像转变成数字图像,以便于存储、观察和分析。可问题是当时没有一个PACS供应商能提供将图片展现在标准PC机上的软件。

在大学信息试验室的帮助下,UPMC自已开发了一套PACS系统,至今仍然在使用。此后不久,UPMC与风险投资商合伙开办了一家公司,名为Stentor,共同拥有该项产品的开发成果。这家公司后来获得了菲利浦医学奖。

UPMC企业中间件的主任Duane Falk说: “我们看到,让这套软件在相当长的时期内保持成功的惟一方法是将它放在UPMC外面,使其完全商业化。因为商业化有助于降低了长期支持和维护的风险。”

Falk也提到,由于有丰富的人才资源(总共900个IT人员中就有250个开发人员)、专业的软件开发文化(依赖于卡内基·梅隆的能力成熟模式)和背后的实验室支持使得大多数的开发决定都是理智的,而不是在冒险。他说: “我们并不是毫无基础地从头开始研发。”

第三种选择: 购买构件

另外一种模式介于在自己开发和购买之间。例如,在SOA架构中,业务处理系统被分解成一些的应用组件,像StrikeIron这样的独立软件开发商正在对这些组件进行标准化和提供一些构件。而一些大的软件供应商,包括Oracle、SAP和Siebel也在向基于组件的模式靠拢,尽管目前还不太清楚是否这些供应商将来能让用户单独购买所需的组件。

DC-Stat的Thomas说: “我相信软件产业正在走向一种新的商业模式,在这种模式下,组件能像普通商品一样购买,最终我们将能买到我所需要的服务。”

但是企业的IT并不能彻底地忘掉过去。“我总是说,现在企业的IT系统并不是从零起步的。”Paini Computer System全球保险行业解决方案副总裁John Pierce说。Paini Computer System是一个面向大中型企业市场,为之提供在线和离线的软件外包服务的供应商。

Pierce说: “你不能低估那些老的业务系统,正是它们在日复一日地支撑你的业务。” Pierce说,定制软件的成功始于正确的方法定义自己的业务处理过程。他告诫说: “业务处理过程通常分为关注企业自己和关注企业的用户两类。”

现在,利用数据来帮助决策的资产管理方法在IT领域中备受关注。Lutchen评价说: “单有电子表单还不够,你需要一个系统的方法来集中处理这些数据。”

像IT资源规划这样的工具软件(Lutchen称此为IT部门的ERP)能够帮助IT组织形成一个完整IT资产视图,包括人才、技能、需求、预算、软硬件、技术架构等。Lutchen建议,最好的方法就是根据详细的选项和结果来为股东们组织和展现数据。最后,让他们来做决定。

这个方法有助于减少政治纷争,但是无法避免,政治是潜伏在任何技术决定表面下的一只凶猛的野兽。Motorola的Redshaw提议,尽可能地领会固执的股东们的意思,并且学会在那些不怎么重要的项目上进行妥协。他说: “有时会有一些根本就不值得的纷争,但最好将你的精力集中在那些方面你认为能做到与众不同的地方,比如节约成本。”


链接一:开源软件的影响

开源软件怎样影响公司开发还是购买的决定?从专业的角度,Geronimo项目的创始人、LogicBlaze的高级架构师Bruce Snyder提出了自己的看法。LogicBlaze是一个SOA和业务集成的开源解决方案,其中包括ServiceMix ESB和ActiveMQ信息平台。

问: 开源软件能在多大程度上影响企业是购买还是自己开发企业应用程序的最终决策?

Bruce Snyder: 我认为开源有助于企业自己开发软件,尤其是在你公司有自己的专业人员的情况下,因为它使所有的业务都在你的掌握之中。而且在某些可重复利用的软件基础上开发一个新的软件要比一点基础都没有容易得多。

问: 你如何看待开源软件的定制?

Bruce Snyder: 总的来说,今天确定业务需求然后找到一个开源软件来满足这个需求,或者至少是部分的满足,比过去要容易得多。如果你认为可以把它作为你将要开发软件的基础的话,那是一个非常好的起点。

问: 开源软件有什么竞争优势?

Bruce Snyder: 如果你能充分消化软件,而且你的研发团队有能力满足你业务中不断增长的需求,在我看来,与那些选择某些供应商提供的软件的竞争对手相比,你更具有竞争优势。但是这时你就要知道,维护那个软件的责任就在你和你的研发团队身上。当然,你也可把它委托或外包给一个专业的服务提供商。

问: 利用开源软件有哪些方式?

Bruce Snyder: 从最底层开始有操作系统,如Linux,在此之上,有关系型数据库,如MySQL、PostgreSQL等,接下来是中间件,有JBoss等。另外,还有工具,包括Eclipse、NetBeans等。除此之外,就是自己开发的应用,你可以使用开源软件提供的各种库来完成各种任务,比如数据保存、数据的展现和网络通信等。

问: 我们该怎样评估开源软件?

Bruce Snyder: 没有通用的方法,而要具体项目具体分析。但在许多方面与评估商业软件基本相同。你必须考量它有多成熟、文档化有多好。例如,如果你评估一个开源的应用服务器,你就得看大量的开源代码。而如果没有人指导你工作,如此大的工作量自己摸索往往令人畏缩。

问: 有哪些问题需要考虑?

Bruce Snyder: 许多人把开源软件看成银弹,其实也就是一种软件而已。我非常强调开源社区,事实上,如果没有各种各样活跃的社区,开源软件的文档和技术支持都没有办法做到,软件本身也就好不到哪里去。在这方面,你必须睁大眼睛仔细辨别。


链接二:MCI的决策过程

在过去的几年里,MCI不得不决定是购买还是自建一个系统来跟踪第三方的服务。下面一系列的问题阐明了公司是怎样最终决定购买系统的。

● 我们应该自已开发吗?

Q: 自己开发有竞争优势吗?

A: 没有。

Q: 这个项目是核心的业务流程还是一般业务流程?

A: 一般的。

Q: 公司内部有资深的业务人员能创建世界一流的软件吗?

A: 是的。但是资源是紧缺的,本项目不具优先权。

Q: 公司内部或市场上有资深的技术人员来创建世界一流的软件吗?

A: 是的。但是资源是紧缺的,本项目不具优先权。

Q: 总体拥有成本是什么?

A: 低到中等。

● 我们应该购买吗?

Q: 商业软件所提供的功能能满足或接近于满足我们的需求吗?

A:有两种软件可以满足我们的需求。

Q::这两套软件适合我们的业务流程吗?

A: 适合。

Q: 供应商可以提供长期的支持吗?最佳解决方案常常来自于较小的软件提供商,对它们有必要评估其财务状况。

A: 对,两个供应商都可以。

Q: 两个供应商是否适合我们目前的基础技术架构(对MCI而言,在门户上采用的是.NET,而在后台采用了IBM的Webshpere)?

A: 两个都适合。

Q: 两个软件供应商的未来发展是否与我们对软件未来的需求相一致?

A: 非常适合,甚至有些超出我们的预期。

Q: 供应商有足够的证据表明他们能按时交付软件吗?

A: 对。

Q: TCO怎么样,比自己开发和维护成本低吗?

A: 经过协商,供应商做了比较大的让步,TCO可以接受。

你可能感兴趣的:(软件)