机遇与挑战 | 竞争力模型 | 竞争力分析 | 成长之道 | 案例研究 | 下载电子版

软件开发商竞争力成长之道

竞争力提升战略分析

企业的需求越来越复杂,业务流程的扩展也非常广泛,传统的产品项目开发模式已很难快速响应用户需求。在多变的市场环境下,锁定自己的核心竞争力在对客户业务的理解和快速交付上,而非解决技术架构问题,这种模式已经被越来越多的软件开发商所认同。

基于对中国软件开发商现在所处阶段的调查取样分析, IDC发现近70%的公司尚处在1.5~2.5阶段,其中服务型公司平均为1.8阶段,产品型公司平均为2.4阶段。通过分析服务型公司和产品型公司在当前阶段的特征,IDC给出了两类公司在提高竞争力四要素的行动建议。

服务型软件开发商在这个阶段的特征,是已经同一些客户建立了稳固的关系,并且自身的项目管理能力具有了一定的基础。此阶段业务发展的战略重点是基于策略的市场拓展,增强业务咨询能力,并获得规模化生产实施的能力。 为此,配合此阶段的战略重点,IDC建议服务型软件开发商在4个关键因素上采取如下措施:(参见图11)


图 11 服务型软件开发商在4个关键因素上的战略重点
来源: IDC, 2008

产品型软件开发商在这个阶段的特征,是公司采用职能管理模式,公司发展由研发部门主导,开发了公司的主要产品。此阶段业务发展的战略重点是公司关注点的转变,从关注自身技术和产品转向关注市场和利润上面。需要专门的组织基于市场和财务去规划产品线和产品,并将产品开发和技术开发分离,技术上核心要建立产品平台。 为此,配合此阶段的战略重点,IDC建议产品型软件开发商在4个关键因素上采取如下措施:(如图12)


图 12 产品型软件开发商在4个关键因素上的战略重点
来源: IDC, 2008

技术平台,竞争力提升战略重点

在通过上述提升手段来增强企业竞争力时,技术平台及其与产品平台的分离正是当前软件开发商竞争力得以差异化并提升的战略重点。实际上,在技术开放的今天,当把技术作为一种生产要素来看时,技术本身已无法让开发商产生差异化。客户最终需要的是解决方案——只有那些对客户业务有着精深理解、以及基于此理解,有着对客户业务的抽象、建模、软件化的能力的软件商才具有差异化的竞争力。

本白皮书中给出技术平台和产品平台的定义:

产品平台:产品系列的公共平台,一系列的产品是在产品平台的基础上加上各自的特征而形成的。

技术平台:指为不同产品、不同应用系统从开发、测试、部署、运行到管理的全生命周期提供支持的底层平台,其核心包括一套技术框架、快速开发工具以及运行时的管理监控。

技术平台是竞争力提升的重要一步

当软件开发商处在较低阶段时,开发商需要快速弥补技术短板,而将更多精力放在对客户业务的把握上。技术平台在这种需求下,成为一种必然的选择。调查数据显示,有技术平台的公司更多地处于高阶段,或者说高阶段的公司中,有技术平台的占多数(如图13)。

 
图 13 技术平台与公司所处阶段的关联分析
来源:IDC中国软件开发商竞争力调研,2008年5月

软件开发商选择技术平台的背景分析

我们通过对十家软件开发商的深访发现,在实际情况中会有各种因素促使他们选择技术平台,但主要是围绕着客户需求与产品可维护性和复用度来展开的。

项目实施遇到风险,需要引入新的技术平台实施产品重组。

将客户的现有应用系统集成到统一平台中,降低客户的维护难度。

降低系统对技术人员开发水平的要求,节省人力成本,提高效率。

技术平台提高技术先进性, 使得公司产品或方案的竞争力提高。

公司希望集中精力在对客户业务的理解上,通过在技术部分与第三方成熟技术平台开发商的合作,可将更多的资源投入到核心业务系统的开发中。

公司转型,产品需要重写。从长远来看,可维护性与提高复用度是产品开发中要考虑的重要因素。

技术平台的价值综述

技术平台对于软件商的价值,从技术层面来看,无疑可以直接提高软件开发的复用度和敏捷性;从管理层面来看,则可降低对人员的依赖性并最终提升软件的规模化、流水线式的生产能力。从技术和管理两方面进行的提高,最终使得软件开发商可以关注客户业务,形成自己的核心竞争力。

可控的软件过程:通过技术平台提高软件复用度和敏捷性

软件需求的变更无时不在困扰软件的供应商和需求方。这种变化的复杂度,体现在产品开发时,研发周期往往变得不可控;体现在项目开发上时,则往往表现为项目需求的发散。

IDC调研显示,针对困扰产品型公司面临的最大问题是“产品研发周期长,稳定期太差”,服务型公司则更头疼于“客户的需求变化大,不好把握”。通过“提高技术人员的效率以及对其的管控”被认为是解决上述问题时,技术平台所能带来的最大价值。通过部署技术平台,软件开发商可实现更好的复用,从而可以缩短项目实施周期、降低项目风险,并提高对应用系统变化响应的能力。根据IDC的调查显示,在项目按时完成率高于80%的软件开发公司中,拥有技术平台的公司比没有技术平台的公司多43.0%。此外,对软件最终用户来说,成熟的复用机制使得外包管理变得更加容易和可控,并可积累企业软件资产,提高应用系统的稳定性、可靠性和运行效率。


图 14 复用 - 软件开发事半功倍的关键
来源: IDC, 2008

软件业的福特模式:通过技术平台降低人员流失风险与开发成本

和传统制造产业一样,软件产业在一个项目或产品的开发中也会有很多规范。传统制造业利用流水线式的生产方式,可保证所有规范的准确落实和充分执行。随着软件业分工的变细,也需要一种工具来保障项目或产品的流水线式的生产,从而让各种技术、管理规范有效实施。

由于其统一封装的平台化架构,技术平台有利于软件生产的构件化和规模化。这使它成为软件项目或产品开发实施中有效管控的主要工具。此外,技术平台所提供的流水线式的软件开发模式,可让各种封装构件、代码和文档得以更好共享,从而大大降低软件项目或产品的研发成本。

在制造业中,人只是众多生产要素中的一种,还会结合其他生产要素来说。而在软件产业中,人才几乎是唯一的生产要素,软件商对人员的依赖程度远远高于制造企业。这一点是与制造业不同的。软件开发商要么依赖人,要么以某种方式把人的知识固化下来。由于人员高流失率的存在,软件开发商“以人为本”的理念似乎很难坚持,因此固化知识成为软件开发商降低风险的主要手段。技术平台的引入可以使得软件开发商能够将以往的项目或产品积累用统一的规范保存下来,并生成详细的技术文档。一旦当有技术人员离开后,与其相关的项目或产品成果并未流失。根据IDC的调查显示,在认为人员流失对企业影响较小的软件开发公司中,拥有技术平台的公司比没有技术平台的公司多22.2%。对此,IDC建议:软件开发商需要引入技术平台,通过基于平台的流水化开发,在提高生产率、降低成本的同时,也降低对技术人员的依赖。

技术平台与产品平台的分离符合流水线式的软件生产思想(参见图15)。通过技术平台与产品平台的分离,软件开发商可更关注于产品的需求管理和设计,直接面向客户,而技术的实现则可采用第三方封装良好的、成熟的技术平台和构件组装完成。这样的分离提高了开发效率,压缩了产品上市时间,并降低了研发费用。


图 15 技术平台和产品平台分离的软件开发模式
将技术平台与产品平台分离,锁定自己的核心竞争力在对客户业务的理解和快速交付上,而非技术架构问题的解决,这种模式正被越来越多的软件开发商所认同
来源: IDC, 2008

转变为哑铃型企业:通过技术平台优化企业资源配置

大部分软件开发商的人力结构目前仍以橄榄型为主。橄榄的一头是那些能做市场需求分析和产品(方案)设计的高手,他们往往较少。而由于技术架构的复杂性,产品开发实现中所需要的技术骨干需要很多,成为橄榄的中间层。橄榄的另一头是那些技术要求不高的开发人员,他们也较少。

这样的橄榄球型结构类似于手工作坊;市场需求分析和产品(方案)设计的高手较少,容易导致产品(方案)与市场脱节、竞争力低;产品(方案)实现过程中的中层技术骨干过多,容易导致产品(方案)实现成本高、过程难以控制,难以规模化(参见图16),并给公司内部运营带来不稳定性。我们常能在软件开发业中发现师傅带徒弟,即高级技工带初级人员的方式。这种方式造成了如下特点:

过度依赖于关键员工:这是传统依赖于人的方式,技术掌握在几个人手中。这几个人走了,就能自立门户,不仅造成企业自身损失,而且会造就新的竞争对手。

内部知识共享困难:每个人都有自己的风格,代码难以共享,更缺乏延续性。


图 16 橄榄型结构 来源: IDC, 2008

为强化成本优势,提高产品(方案)竞争力,IDC建议:

软件开发商采取哑铃型人力资源结构(参加图17)。“哑铃”的一端是市场需求分析和产品(方案)设计的高手,另一端是产品(方案)实现的低级开发人员(这一部分也可以考虑外包),中间的部分则是少量的项目管理和高级技术人员。

在哑铃型人才结构中,更多的市场需求分析以及产品(方案)设计高手能使企业的产品(方案)更具竞争力;而技术平台的引入采用,将低层技术封装,使得大量低技术水平开发人员也能快速开发出稳定的产品(方案)来,从而有效降低产品(方案)成本,使规模化成为可能;在哑铃的中间,基本上只需要少量的项目管理和高级技术人员,他们重点负责把高层的设计思想传递下去,并对低技术开发人员进行指导、管理。


图 17 哑铃型结构 来源: IDC, 2008

由于技术平台高度集成技术的特点,软件开发商通过引入技术平台,能够大大减少项目实施和产品组件编程人员,节约人力成本。“技术当家”的思想也将由于技术平台的引入而在企业内部失去土壤。企业可以把资源分配的更合理,向市场开拓和产品研发倾斜。

企业保留下来的技术高手将会分流到哑铃型人才结构的两端。一部分向软件开发商的业务端发展,成为熟悉客户业务并同时具有产品(方案)设计能力的产品(方案)经理。这部分人在很大程度上将壮大企业的咨询和服务队伍,增强企业对外提供高端咨询和服务的能力,进一步拓展企业的利润空间。另一部分则继续关注技术,成为基于平台的技术高手,并为企业竖立明确的技术路标。这将帮助企业市场部门制定清晰的企业战略和市场策略,并建立与之相匹的产品路标。

当这样的人力结构和企业管理方式形成后,软件开发商的方案实施或产品生产能力将大大增强:前端的理解客户业务能力和产品(方案)设计能力将大大加强;后端的实现成本则大大降低。软件开发商的整体竞争力提升将进入一个良性循环。

如何选择技术平台

在公司竞争力提升的路途中,部署技术平台成为重要一步。 IDC就目前市场中有哪些技术平台,以及如何进行选择、部署给出了分析。

技术平台的三种模式

目前开发商采用的技术平台,分为三类:自有平台,开源平台或第三方商业平台。三种平台各有特点。

自有平台:许多公司在开发部署一系列产品和项目后通常会考虑自己开发平台, 包括抽取一些公用模块(如权限)以供复用,或将产品或解决方案中的公用部分提取并进行优化 。相对高效和可控,这是自有平台的好处。

开源平台:一般是指Struts、Spring、Hibernate等技术框架。由于缺乏支撑架构的一系列工具如IDE等,开源平台并非完全意义的平台。开源平台的特点是获取成本几乎为零。

第三方商业平台:定位于解决某一领域技术性问题的产品。第三方商业平台通常涵盖软件开发全生命周期管理,即把设计、开发、调试、部署、上线和管理监控都一体化、集成化。商业平台通常包括:底层架构、开发环境、应用框架、工作流、报表等全系列工具集。第三方商业平台一般收取许可证费用和服务费用。

产品/服务型公司选择技术平台的考虑因素

成本、服务、技术特性成为受访公司选择技术平台前三大考虑因素(如图所示)。

对于服务型公司,成本是选择技术平台最大的考虑因素。成本控制历来最为服务型公司所看重,这和软件项目的高度定制化以及合同中服务报价不清晰有关。服务型公司在控制成本时常用的技术手段,是通过项目设计、部署过程中不断迭代进行的模块化设计,来提高设计成果的可复用性。通过技术平台来降低项目总体成本,这是服务型公司的最大期望。

对于产品型公司,则最看重技术平台能否提供完善的文档、培训和支持服务。完善的服务支撑体系保证技术平台可以将承载的核心业务功能顺利实现。

此外,由于跟踪最新技术规范将需要额外的成本并且风险较高,技术平台的技术先进性这是两种类型公司所共同关心的一点,技术领先与否也应是客户选择技术平台的考虑因素。

 
图 18 成本、服务、技术特性成为受访公司选择技术平台的前三大考虑因素
来源:IDC中国软件开发商竞争力调研,2008年5月

自有平台拥有成本高昂

在调研过程中,我们发现70%的软件公司拥有某种“技术平台”,这些技术平台往往脱胎于某类项目需求,自主开发或者基于开源框架改造。这些平台最初通常仅仅是为了适应现有项目需要。但是,随着业务的发展,这些平台的架构往往难以适应新的要求,很多时候都需要进行适应性改造,很难做到完全复用,从而造成多个不同版本,维护更加困难,最后软件商发现,技术平台反而成了一块沉重的负累。

IDC认为,正是这种从项目入手的方式,造成很多公司对技术平台认识不足,其自有平台的开发往往具有很大的局限性。一个完整的技术平台,必须考虑三个关键方面:首先,需要提供一体化的全生命周期支持(从设计、开发、部署、运行到维护),从而能够帮助软件商提高开发效率,降低开发和维护成本;其二,必须考虑同自身项目管理体系结合,能够帮助加强对项目和人员的管控能力;其三,能够有助于建立复用的体系,这要求技术平台具有良好的封装性,可通过持续积累,不断提升效率,降低成本。一个具备这三个关键特性的技术平台,才能充分发挥功能,帮助竞争力提升。

技术平台的开发如果真正达到满意的水准,需要大量的投入。在项目/产品开发中不断调试、平台适用性修正、新技术规范的满足,以及各类基础环境的升级,这些导致的平台更新,每次都需要大量的资金投入。

推荐与第三方商业平台合作

IDC发现,软件开发商采用技术平台的成本,更多集中在使用之中。自有平台的维护需要持续的投入,不断的更新,而平台开发人员的成本以及对他们的依赖,对公司来说也造成了额外的成本。如果考虑开源框架的初期学习成本和后续服务的获取成本,其零获取成本也不再突出。

技术平台作为次核心能力或非核心能力,从总体拥有成本和专业分工角度来审视,IDC推荐软件开发商采用第三方商业技术平台产品。这样通过专业分工、优势互补,软件商可更经济地提升竞争力。

未来展望

技术平台在提升软件开发商整体竞争力方面无疑是一把利器,但机遇和风险总是并存的,中国软件开发商在以各种方式开始关注或应用技术平台的时候,不能忘记这同时也是一把双刃剑。

采用平台的成本和风险。技术平台的开发一般需要大量投入,包括大量的技术开发资源投入和人力管理资源投入,其特点是研发周期长、投资回报周期长、项目进度可控性差和风险高。技术平台的这一自身特点决定了软件开发商用户在购买技术平台时所必须面临的高价格。而对于软件开发商用户本身来说,在短期内技术平台对单个项目的积极作用不会马上显现出来,软件开发商用户的高投入需要一个相对较长期的时间才能获得回报。在此之前,软件开发商用户的项目开发成本、人员培训成本以及管理成本都会有所提高。这些额外成本和风险是软件开发商用户必须尽早警觉和充分权衡利弊的。

平台供应商的持续服务能力与公司生命周期。提供持续、全面的服务对技术平台这样的复杂产品来说至关重要。从前期的人员培训、平台实施(或者从软件开发商原有平台的过渡),到后期的平台维护升级、辅助软件开发商开发项目,这一系列的服务决定了平台供应商必须具备强大的咨询、服务能力和团队。此外,软件行业的洗牌浪潮一直都没有停息,平台供应商的公司生命周期也是软件开发商用户不得不面对的一个风险。

平台供应商的发展路线走向。在软件开发商踏上竞争力升级之旅的过程中,一开始就选对技术路线和合作伙伴至关重要。好的伙伴会一路支持彼此走向成功。软件开发商的发展路线图与作为伙伴的技术平台供应商的发展路线图必须保持一致,这样才能开发出满足各个发展阶段要求的,以业务驱动的技术平台。IT系统架构体系种类繁多,各类编程平台交错在各个项目中使用。技术平台供应商对各类技术语言能否有持续的支持将直接影响他们的用户承接和开发项目的能力。此外,当今IT技术发展迅速,各类技术更新换代的速度远远超过了技术平台的研发速度,平台供应商在后续服务中如果不能满足软件开发商对新技术的需求,将削弱软件开发商的竞争力,从而造成损失。

组件化与平台的关系和趋势。业务组件化和技术组件化的概念被越来越多的中国IT企业所接受,其所产生的价值也逐渐被业界人士认识到。通过采用组件化的逻辑模式可以:让企业不断地规划企业战略、积累项目经验和梳理不同层次上的技术构件、业务构件和业务流程,从而达到组织级能力的提升。软件开发商引入技术平台将对自身的技术开发流程和组织管理有显著影响。因此,技术平台对组件化的支持力度将在很大程度上决定软件开发商在未来市场中的竞争力。

结论

正如同本白皮书所做出的关于中国软件开发商竞争力调研和阶段分析那样,开发过程不可控和成本居高不下、人员流失造成的不稳定性、企业资源结构不平衡等问题成为中国软件开发商所面临的突出压力。根据软件行业的发展趋势以及中国软件市场的特点,中国软件开发商应借助技术平台,将核心竞争力锁定为对客户业务的理解和快速交付上,而非技术架构问题的解决。这一核心竞争力以及技术平台及其与软件产品平台的分离将推动和实现中国软件开发商对自身产品、流程、经营和业务模式的全面创新和提升,从而踏上竞争力升级和企业迈向卓越之旅。