无论在汽车制造、建筑业、玩具业、时尚界、移动互联,还是软件行业,平台改变了传统的生产模式与商业形态,以最大程度的重用实现规模化快速定制,满足不同受众的个性化需求。平台,正在改变世界。
汽车制造的最初,是为特定用户手工打造。当客户对汽车的需求量增多以至于产品交付难以满足时,制造商开始专注提高生产效率,降低成本。福特的流水线实现了产品的高速生产,并进一步激发了汽车产业基于平台,甚至模块化的先进生产理念,为不同客户的个性化需求提供大规模产品交付。
建筑的最初,是思考一栋房子的规划、设计与建设。当客户需求占据主导,建筑周期与质量成为决定商业价值的关键指标时,建筑商开始考虑:如何通过标准化的建筑构件在满足个性化需求同时,实现规模化的定制,从而满足集约性经济效益。一如中国古代建筑集大成著作《营造法式》中的理念,和现代领先企业万科的花园洋房“模块化”造房实践。
玩具的最初,是迎合固定需求的设计和制造。为扩大受众必须提高产品多样性,乐高的设计理念发生了变化:通过标准化的玩具模块,组合成“房子”、“汽车”、“飞机”、“游乐园”,玩具不再是一成不变的样子。也如当今更热的“平台玩具”,在一个空白的玩具素体上进行不同主题、颜色的创作涂鸦,并可进行改造,增加场景、工具、佩饰……不同的需求主宰不同的产品形态。
时装的最初,设计师的思想,服装的定位、面料与工艺完全决定了竞争力。但时装成为成熟产业,各方面因素开始趋同时,ZARA将思考的重心放在了供应链平台的整合,如何让买手快速追踪时尚潮流、如何以标准化的纽扣配件为各款衣服提供最大程度的重用、如何快速实现端到端的物流体系……从而成为“快速时尚”的先锋。
移动互联的最初,是通过自主创造更多的内容和更多的产品,用以吸引更多的用户,并保证长期持续的影响。但当用户可选择的范围扩大,需求分散且数量众多时,运营者需要思考:如何满足不同的受众用户,更快的交付内容和产品(应用),并达到规模化影响。苹果、Facebook、谷歌引领了开放平台的潮流,从技术层面提供接口、框架、业务模块,从商业层面聚合生产者、使用者和传播者。随之而来的不仅仅是企业商业模式的改变,不仅仅是移动互联行业的改变,而是整个世界的改变。
如果我们把平台定义为任何一种在其上可以构建其他应用(内容)的技术基础,这种理念本质上是一种更先进的生产模式。无论在汽车制造、建筑业、玩具业、时尚界,还是移动互联,当一个产业成熟到一定阶段后,都可以通过此种模式,将成熟的、共性的工艺进行抽象集成封包成为“平台”,基于平台实现最大程度的重用,从而实现规模化定制——一方面极大地提高了生产效率、降低了成本;另一方面为用户提供了基于平台的个性化、多样化应用定制。这种理念,我们称之为“平台模式”。
那么在软件业,软件最初是程序员的代码“手工艺活”。当产业成熟到一定阶段,同样可以借鉴平台化理念,将软件实现与运行的共性技术抽取集成封包成为“技术平台”,从而实现软件的规模化定制生产——这一点,对于大型企业的多软件系统、多产品线状况尤其重要。从而一方面实现软件系统的快速、低成本、高质量研发;另一方面满足了业务部门的个性化、多样化的创新产品定制需求。对此,我们称之为“软件平台模式”。
“人狼之群”
大型企业的软件应用是复杂的。1999年,计算机科学家布鲁克斯(FrederickPhillipsBrooks,Jr.)以近70岁的“高龄”获得了图灵奖——这位数十年来蜚声世界的软硬件专家、教育家曾在其《没有银弹》(1986)一文中提出了一个著名论断:“没有一种单纯的技术或管理上的进步,能够独立地承诺在10年内大幅度地提高软件的生产率、可靠性和简洁性”。布鲁克斯用形象的比喻来论述软件工程中存在的“陷阱”——“在所有恐怖民间传说的妖怪中,最可怕的是人狼,因为它们可以完全出乎意料地从熟悉的面孔变成可怕的怪物”,而“大家熟悉的软件项目具有一些人狼的特性(至少在非技术经理看来),常常看似简单明了的东西,却有可能变成一个落后进度、超出预算、存在大量缺陷的怪物”。惊悚故事里,人们只有用银弹(银质子弹)才能消灭人狼,而布鲁克斯认为,在软件工程中,“没有银弹”,没有一种能够遏制软件向“怪物”变异、同时还可大幅提升开发效率和产品质量的武器。
某种意义上,布鲁克斯的观点(抑或预言)是正确的——如果不能对基于项目代码的软件体系进行彻底的革新,那么在今后10年(甚至更久)的时间里,我们仍会在繁复迂曲的代码迷宫中遭遇“怪物”。
事实上,大型企业的软件系统往往不是单项目,而是面向复杂创新业务的多系统多产品线。举例说明,全球最大的银行——中国工商银行每年要上线部署多达几百个应用系统。对于大型企业来说,遭遇的不仅仅是布鲁克林所言的应用代码“人狼”,由于其软件规模庞大、新旧系统交织、技术架构复杂、业务环境多变、生产组织关系复杂,大型企业在软件工程领域遭遇的其实是更叵测的“人狼之群”。
不仅如此,随着企业间竞争激烈,运营效率挤迫大型企业的软件总体投资也将越来越精益。上海移动的IT负责人蔡加琪对此感受很深。
“未来几年,每个电信运营商的ARPU(AverageRevenuePerUser,每用户平均收入)可能都会降低。但这不是最糟糕的,每用户网内的通话量下降,这才是最糟糕的。”蔡加琪如是说。“你可能会问每用户的通话量怎么会下降?不是人人通话的时间都更长了吗?是的!但是这些用户可能在用SKYPE,可能转网到竞争对手那里去。这导致在网内的通话量降低。”
在蔡加琪看来,对于一些中心城市,如北京、上海,过去几年中单纯靠用户规模化增长的好日子已经过去了。那个时代,城市移动用户的覆盖率还远未饱和。每个地方运营商靠不断的用户规模增长就可保持足够好看的业绩增长。但这些年,随着中心城市移动用户规模的饱和,平均每个用户拥有的电话甚至超过两个。这种情况下,用户的ARUP值以及显示用户还在网内的忠诚度指标(通话量)就变得非常重要。如果这两个指标双双趋缓,那该区域运营商在业绩增长方面的将会有非常大的新压力。而这,反过来就会挤压运营商在IT上的投资。
“这将会推动运营商软件投资进入精益时代。”蔡加琪说,“现在的基本原则是,能不上的系统就不上,能重用的系统就通过SOA的理念,重构重组重用。更多的IT投资都向能带来生意的渠道和营销倾斜。”
事实上,梳理企业的软件应用世界,我们会发现这样一些特征。如在电信运营商、银行领域,企业由于业务复杂,IT依赖程度高,软件系统数量繁多。一方面,多系统建设遭遇“人狼之群”;另一方面,运营效率的提升需求挤压软件总投资。不同力量使得企业的CIO必须思考一个本质的问题——如何在有限的软件投资范围内,通过有效的方法,围攻“人狼之群”,实现多系统规模化定制。
举例说明,市值达1.5万亿的中国工商银行,分布在全国的软件研发中心近10个,软件团队人员多达数千人,每年要上线部署的软件项目超过几百个,遗留系统繁多。同时,随着业务的融合创新,银行金融产品不断出现,新系统也将不断增加。如何快速实现新业务系统更好支撑银行产品创新?如何低成本、高效率管理软件团队以实现应用交付?新旧系统如此之多,如何创新整合应用集成?除了银行自有IT人员,外围还有大量软件应用开发商,如何统一规范管理?诸多问题都会出现。
这些问题最终将多个维度呈现。从财务角度,表现为多项目软件管理的ROI;从业务角度,表现为对业务部门的更佳支撑;从管理角度,表现为对精细化的追求;从风险角度,表现为对架构、内部人员组织、外部开发外包的管控。但其实这些问题的背后都有着共同的商业目标:即如何快速实现高质量、低成本、灵活、低维护的好产品。从软件工程的角度,都可以折射到一个终极命题——即大型企业如何更好的实现多软件系统的规模化定制。
引入软件平台
如今,产品的生产方式已经发生了很大变化,从以前为单个客户手工生产,转变成为越来越多的客户的提供产品。在汽车制造领域,这种状况导致福特产品线的产生,它使得生产大批量产品的生产成本比为单一客户手工生产的成本低得多。但同时,产品线降低了生产多样化产品的可能性。
同样,在软件领域存在两种类型的产品:独立生产的和大批量生产的产品,分别称为单一定制产品和标准套装软件。两种类型的产品都有各自的缺点,单一定制产品相当昂贵,而标准套装软件则缺少足够的变化。
客户一段时间内对大规模生产的标准化产品可能是满意的,比如套装软件产品集成的所谓“最佳实践”,但是由于业务的个性化和多变性,不是所有的需求都能被套装软件满足,正如不是所有人都想要一种黑色的汽车一样。一些汽车是供单个人使用的,而另外一些是供家庭使用的;一些汽车是供城市中的人使用的,其他可能是在乡镇所用;有人想要第二部、第三部,或者比邻居要好一些的汽车。因此,工业生产面临对个性化产品的大量需求,这就是规模化定制的开始,即需要考虑成本、效率的约束下为用户提供个性化、多样化的产品。
对于用户来说,规模化定制意味着可以拥有一个个性化的产品;对于公司来说,规模化定制则意味着更高的技术投资,导致个性化的产品价格昂贵或公司利润降低,这两者都不是公司所希望的。因此,从汽车制造业开始,通过预先设计,为不同种类的汽车引入通用平台,达到将不同部件应用在不同种类的汽车上的目的。
汽车业的通用生产平台最初包含了底盘、悬挂结构和仪表盘,后来加入了更多的部件。在相机生产中,柯达也采用了平台理念生产型号多样的相机。3M公司的“post-it”算是办公耗材领域的平台,从这个平台上,产生了很多个性化产品,如具有公司标识语的“post-it”笔记本和能在书中选择书页的书签等。平台可以在不同行业中表现为不同的应用场景。我们这里将平台定义为任何一种在其上可以构建其他技术或过程的技术基础(TechTarget,2004)。
将规模化定制和通用平台相结合,使得我们可以重用通用的技术基础,同时又能紧密的根据用户需求生产多样化产品。对于企业CIO来说,将基于平台的软件研发和规模化定制相结合,快速实现高质量、低成本、灵活、低维护的好软件产品。就是我们所说的“软件平台模式”。
“软件平台”并非一个新鲜的词语,它由来已久,也早为人们所知,并在软件开发中有着很长时间的应用。例如,操作系统、数据库、WebLogic等中间件都是人们早就熟悉的软件平台。但“软件平台”的定义是什么,一直以来业界都没有一个很明确的说法。这在某种程度上阻碍了“软件平台”的健康发展。
综合现有软件平台的内涵及特征,可以这样来定义软件平台:软件平台是指用来构建与支撑应用软件的独立软件系统,它是开发与运行应用软件的基础,是任何一个应用软件得以实现与应用的必要条件。软件平台有两个基本要素,即支撑环境和开发体系,其中支撑环境是指应用软件系统开发与运行的基本条件,开发体系是指开发与维护管理应用软件的工具与方法。
具体来讲,面向业务的软件平台将大量成熟而实用的应用组件和模块进行高度封装,并内置功能强大的工作流管理系统、电子表单管理系统、信息门户系统、统一用户管理系统、消息管理系统、知识管理系统等各种成熟的应用系统和开发工具。开发人员在进行软件开发过程中,绝大多数开发与应用无需特殊的代码编写,只需按照项目需求选择相应的组件或模块进行“拖拽式”配置,而捏合过程由系统自动完成,正如统一规格、统一标准的机器零部件,只需按要求简单的拼装即能成为完整的机械设备一样。因而大大提高了软件开发的效率,降低了软件开发与应用的难度,并且应用可立即部署,大大缩短了应用开发的调试期。
一个好的软件平台不是为实现小粒度的重用,而是对软件全生命周期中的所有核心资产实现战略性复用。这些核心资产可以包括:需求和需求分析、领域模型、软件架构和设计、文档、性能工程、测试、计划用例、数据、人、知识和技能、预算、日程安排、生产计划、流程、方法和工具,以及业务组件和服务等。
事实上,软件平台化趋势已成共识。工业和信息化部软件服务业司司长陈伟在“2011年全国软件和信息技术服务业工作座谈会”上说,“十二五”期间,软件技术和产业格局孕育着新一轮重大调整,软件产业面临五大发展趋势。其中,软件平台化将是趋势之一,是软件技术和产品发展的新引擎。操作系统、数据库、中间件和应用软件相互渗透,向一体化软件平台的新体系演变。硬件与操作系统等软件整合集成,可降低IT应用的复杂度,适应用户灵活部署、协同工作和个性应用的需求。在平台化趋势下,软件的竞争从单一产品的竞争发展为平台间的竞争,未来软件产业将围绕主流软件平台构造产业链。
仔细探究企业引入软件平台的主要动机,我们发现:企业通过引入软件平台,可以快速实现高质量、低成本、灵活、低维护的好软件产品,即以规模化定制的方式,实现在合理成本的约束下提供可定制、个性化、多样性的软件系统。
正如在电信运营商竞争中发生的事实,由于对IT运营绩效的追求最终将迫使企业去寻求更加性价比的解决之道。软件平台的引入在总体成本控制方面效果斐然。当一个软件平台的资产在多个不同系统中复用时,这意味着降低了每个系统的成本。
需要强调的是,在核心资产能被复用之前,往往需要投资建设这项可以复用的资产,即软件平台。再就是对于复用的方式也需要预先加以计划,以使得复用时可以被管理的。也就是说,公司要预先投资建立一个可复用的技术平台,然后通过复用平台中的资产来降低每个产品的成本。
上图反映了开发N个不同系统所需要的累积成本。细线为单一产品开发时的累积成本,白色粗线为引入软件平台实现规模化定制开发的累积成本。我们会发现,当开发系统的数量很少时,引入软件平台的成本相对较高,而当开发的软件系统数量很多时,成本就会大幅降低。两条曲线的交点代表了平衡点,在这点上,开发单一产品与引入平台多产品开发的成本相当。
经验表明,当企业开发的软件系统数量在3-4个时,就可以达到软件开发的平衡点。平台最适合大型企业的多应用定制开发。对于单一项目引入技术平台实现,短期看,往往是不经济的。而对于超过3个以上的多应用定制开发用户,引入平台就成为一件相当经济的事情了。
缩短交付时间也是大型企业有必要引入软件平台,实现规模化定制开发的另一个重要动机。我们假设每个单独系统开发的交付时间几乎是固定的,多数情况下就等于系统的开发时间。但对于引入软件平台后,在平台的建设期会有一个时间,包括对平台的学习和适应期。一旦平台学习应用的阶段过去后,新开发的软件系统的时间将显著缩短。
同传统“项目外包”的软件开发模式对比来看,基于软件平台实现多系统的规模化定制开发,目标、方式与效益都会有明显的区别。传统“项目外包”开发模式:目标是特定项目开发,主要基于代码编写和框架引用,从软件工程角度强调的是代码复用。而以软件平台进行规模化定制开发,则是面向一组特定的业务领域,生产过程完全基于软件技术平台展开,其中的90%以上的核心资产可以得到重用。对比发现,后者极大地提高了软件核心资产的重用率,从而快速实现高质量、低成本、灵活、低维护的好软件产品交付。
如何开始
对于大型企业的CIO如何引入软件平台?我们勾画了一个美妙的目标图景,但是如何结合不同企业的具体实际,如何与其自身IT应用建设规划、已有IT系统环境、IT组织结构和人员现状、过程规范等相切合,采取合适的实施路线和步骤,却需要仔细斟酌。
从一些客户的实践看,按客户规模和定制软件应用数量的不同,引入软件平台一般有三种路径:
第一类,项目级引入软件平台。此类适应那些目前规模中等,应用数量还较少,但是预期未来数量会较多的用户。它们可以先从项目级引入开始,同时着眼于为未来应用增加,以平台实现来未雨绸缪。
第二类,规划级引入软件平台。此类适应于那些目前应用规模已较多,主要以项目外包方式,通过第三方软件开发商完成大多数应用开发的企业。它们可以规划级引入,以统一的技术平台约束和管控开发商,从而实现多应用的快速、高质量实现,并较好的解决了软件架构统一的问题。如国家开发银行的软研发中心。此类引入软件平台的主要工作集中在:“建平台”、“成方法”方面。
第三类,企业级引入软件平台。此类适应于那些应用规模众多,IT组织庞大,软件自身研发能力强,统一平台未能充分满足自身定制软件开发管理需求,需要增加或完善较多平台能力的客户。它们可以通过定制软件平台的方式,补充和完善打造完全自主知识产权的自有平台,更好的满足自身大规模软件开发团队需求。如建设银行、工商银行等都是如此。在此种路线下,引入软件平台可以概括为:“定方向”、“立标准”、“建平台”、“成方法”。
平台改变了什么
在行业分析人士看来,CIO引入软件平台一方面通过分层法简化了应用系统的实现方式,同时照顾了用户的个性应用;另一方面,围绕软件平台将会形成一种新的“生态链”。软件平台模式将提升客户、软件开发商、平台产品商三方的价值。
第一,在企业CIO价值方面:在平台模式中,在平台的左端是业务部门,我们可将其理解成内部客户。右端是应用的开发者(他们或是自己的IT开发人员,或是外部的应用软件开发商)。左端的需求是满足业务的大量的、低成本、高质量、快速交付的创新应用。右端的需求则是如何低成本、规范、高效地快速实现应用开发。
CIO领导的IT部门居其中成为“类平台运营者”。他需要思考如何引入软件平台,将大量复杂共性的软件技术集成封包,以实现更大范围的共享复用。这种共享复用不仅仅关乎项目代码,而是从需求、框架、架构、业务模块、引擎、测试等软件全生命周期的资产复用,从而如苹果模式般,一端激发和规范应用开发者,可以创新、规范、低成本的交付应用;另一端则输出面向业务的大量、高质量、低成本的业务应用系统。
第二,在软件开发商方面:平台的推出,意味着开发商将获得一个能够快速实现客户价值的软件工具。开发商可以深入开发行业应用,可以借助彼此的渠道推广产品,同时随着更多的合作伙伴加盟,彼此之间将获得更多的产品和解决方案,多方面满足客户需要;开发商不再是仅仅依靠销售软件许可获得价值,而可以变成一个独立开发商,也可以是一个软件服务商,彻底改变盈利模式。
“作为管理软件厂商,我们不可能推出涵盖所有行业的解决方案,因此在某些行业,ISV将会进行行业垂直开发。”普元软件平台产品总经理刘尔洪说,“它们可以利用我们的技术平台进行开发,然后把产品卖给客户。”业内专家也认为,具有核心技术的应用平台是管理软件厂商商业模式的重要基础,那些ISV、SI将在成熟的平台技术基础上通过行业应用解决方案,在细分市场上获得成功。
第三,对于平台开发商而言:平台开创了中国软件规模化定制生产的个性化时代。刘尔洪认为,普元未来的销售模式将不再单一,在云时代,平台完全可以成为云平台。“软件平台市场的增长才刚刚开始!”刘尔洪并不掩饰自己在软件平台方面的野心。
在移动互联的世界,苹果通过实施Appstore平台计划,撬动了多达10万名软件开发者的热情,开发出多达30万个创新而便宜的应用。我们相信,在企业软件的世界,这一事实也迟早会发生。不仅仅因为它是趋势,更重要的是它代表了一种能激发产业链上下游的先进生产模式。
平台,正在改变世界。
网友评论