文章来源:http://kingdee.e-works.net.cn/document/200809/article6486.htm
Tags: 软件产品线软件产品线 | ERPERP
2008-9-16 19:48:16 | 编辑
软件产品线与ERP产业链组织模式
1 软件产品线的演变
1.1 软件工程的发展
软件产品线是软件工程发展的高级阶段。软件产业从其发展伊始,就存在所谓的软件危机(Software Crisis)。为了应对软件危机,美国航空航天局(NATO)于1967年引入了软件工程(Software Engineering)的概念,并将传统的工程理论引入软件的设计、开发、实施和维护过程,从此开始了对软件生产过程管理的研究。
第一次的软件危机发生于ERP产业链的作坊式发展阶段。应对该危机,软件工程的改进集中在如何提高程序员的生产率和减少程序中的错误两个方面,目标是交 付"零缺陷"的软件产品。研究成果有指导软件开发过程改进的软件能力成熟度模型(CMM),指导程序员标准化软件开发过程的个体软件过程(PSP)等。
第二次软件危机存在于ERP产业链的工厂式发展阶段。此时软件工程的研究重点转向了如何保证按时向用户交付"正确"的软件,即软件在功能、性能和成本几个 方面都能满足用户的要求并且无缺陷。单系统开发方式的改进已经不能满足大量的并且是个性化的用户需求,必须引入新的软件生产流程。借鉴制造业大规模定制 (Mass Customization)的生产方式,美国卡耐基o梅隆大学软件工程研究所(CMU/SEI)推出了软件产品线(Software Product Line)模型,为软件产品的大规模定制奠定了基础。
1.2 软件产品线的内涵
软件产品线是指具有一组可管理的公共特性的软件密集性系统的集合,这些系统满足特定市场或任务需求,并且按预定义的方式从一个公共核心资产集开发得到。
软件产品线生产的每个产品都是由来自公共资产库中的组件(Component)组成,然后按预定义的变化机制,如参数化或继承,对这些组件进行必要的剪 裁,添加必须的新组件,根据一个产品线范围内的公共架构来组装这些组件。因此,构建一个具体软件产品(应用系统)的主要工作是组装或繁衍而不是创造;主要 的活动是集成而不是编程。
产品线的内容包括三大基本活动:核心资产开发(Core Asset Development)、产品开发(Product Development)和技术组织管理(Management),核心资产的开发也称为领域工程(Domain Engineering),利用核心资产进行的产品开发又被称为应用工程(Application Engineering)。

图 1 软件产品线的三大基本活动
图1显示了这三大基本活动的联系,三者连接在一起并且持续运作,反复循环。在核心资产与产品之间,存在强势的反馈循环,不仅核心资产用于开发产品,而且产 品的开发过程又会促进核心资产版本的更新以及新的核心资产的加入。在这种反复的循环当中,核心资产随着新产品的开发而更新;资产的使用情况被跟踪,其结果 被反馈到资产开发活动;核心资产的价值通过由核心资产开发出来的产品体现出来,通过对未来产品的需要的考虑,核心资产更为通用。迭代是产品线活动所固有的 特征,因此产品线的运行需要持久的、强有力的、有远见的管理。
1.3 软件产品线的三大基本活动
(1)核心资产开发

图 2 软件产品线核心资产开发过程
核心资产开发活动的目标是建立产品线的生产能力,图2显示了核心资产开发活动及其输出和必要的输入。和其它部分一样,核心资产的开发过程也是循环迭代的。
根据输入端的产品约束、框架、生产约束、生产策略和遗留资产清单,核心资产开发活动产出三项输出:
第一,产品线范围(Product Line Scope)。产品线范围是关于构成产品线的产品或产品线所能包括的产品的描述,该描述列举出了所有产品的共性和他们之间彼此的差异,包括产品所提供的特征或操作、产品所表现出的性能和其它品质属性等。
第二,核心资产(Core Assets)。核心资产是产品线中产品生产的基础。这些资产包括产品共享的架构,以及为贯穿产品线进行系统化重用所开发的软件组件。前者指定了产品线中产品的结构,提供了将纳入资产库的组件接口规范。
第三,生产计划(Production Plan)。生产计划描述了如何从核心资产中生产产品。每种核心资产都有一个附属过程,其中定义了如何将其运用到产品开发中。生产计划描述了一个整体方案,说明如何将这些单个的过程装配在一起构建产品。
(2)产品开发
成熟的产品线组织优先考虑整个产品线而不是个别产品的健壮性,但是生产最终产品的活动才是产品线的最终目标。产品开发活动依赖于核心资产开发的三个输出以及目标产品的个性化需求。图3描述了这些关系。

图 3 软件产品线产品开发过程
从根本上讲,软件产品线就是一组相关产品,但是它们如何存在却取决于具体的资产、生产计划和组织环境,并且其产品生产过程通常不是线性的,产品的创建对产品线的范围、核心资产、生产计划,甚至对特定的产品需求都会产生强烈的反馈作用。
(3)管理
管理对于产品线的成功至关重要。活动必须有指定的资源、协调和监督。管理必须在技术和组织上为软件产品线服务。
技术管理负责监视核心资产和产品的开发活动,其工作方式是保证各开发组成员都在从事所要求的活动、遵循产品线所定义的过程,并收集足够的数据,跟踪进度。组织管理必须建立起适当的组织结构,并确保各组织单元得到足够的适当资源。
1.4 软件产品线的实践域
基于三大基本活动,SEI又定义了软件产品线的29个实践域(Practice Areas),实践域描述了产品线实施主体必须要掌握的一整套活动。实践域通过定义比基本活动更小且更有指导性的活动,使关键活动更加易于实现,并且为企 业在使用软件产品线方法中不断取得进步提供了起点。表1总结了这29个实践域。
表 1 软件产品线的29个实践域
2 软件产品线对ERP产业链组织的影响分析
软件产品线的提出背景虽然局限于软件厂商内部,但其更大的影响却在供应链层面。软件产品线对软件开发过程的重新划分和规范,对于ERP产业链的最终形成具有决定性作用。
2.1 领域工程与应用工程的分化为软件供应商基于流程的分工奠定了基础
软件产品线出现以前,不同软件厂商偶尔会围绕某一应用系统的开发展开合作,但这种合作关系是离散的、不稳定的,并在很大程度上需要用户来组织。由于合作局 限于产品层面,因而软件厂商并未实现生产流程上的分工与合作。从供应链的角度来看,存在大量重复劳动,效率低下。
随着Java等面向对象编程工具的出现,传统的软件工程也开始关注通过提高代码的重用率来提高软件开发的效率。但由于缺乏合理的模块划分方法和组件封装标 准,其代码重用不仅成本高,而且效率低。大量不规范的代码重用又增加了软件系统的复杂性和维护难度。更为重要的是,这种代码重用仅局限于组织内部,不同企 业之间的软件代码很难相互重用,并且涉及到公司的知识产权问题。
软件产品线对软件开发过程的重新划分为软件供应商间基于生产流程的分工合作奠定了基础。首先,领域工程和应用工程虽然相互依存,但各成体系,都有一个闭环 的开发过程,这就使得软件供应商可以独立完成某一部分,集中于该领域的活动。其次,从总体上看,领域工程与应用工程之间形成上下游的供给关系,领域工程产 生的核心资产为应用工程中软件产品组装提供原材料,因而,软件厂商间就形成了软件生产的上下游关系。
2.2 核心资产的重用为独立软件供应商核心能力的培育提供了动力机制
不同于以往软件代码的偶然小粒度重用,软件产品线中将可重用的软件代码封装为组件,并对其进行有计划的、能够实现的和强制的重用。组件(Component)是一个合成体,仅具有契约指定的接口和明确的上下文依赖性。软件组件可独立配置,并服从于第三方的组合。
软件组件是不透明的,正是因为这种不透明性,使得一个公司可以使用另一个公司的私有信息和算法,而不需具体访问其内容,这一方面解决了使用其它公司软件程 序的知识产权问题。另一方面,遵循一定的标准,使用方能够容易的将某一组件与自身系统及其它组件组合在一起,而不需要专门的环境或工具,这促使越来越多的 软件企业开始采用成熟的商业组件,促进了组件市场的发展。
商业组件的粒度已从小的、低盈利的组件,逐渐增长至能够提供完整功能的组件。这些新的、大粒度的、更复杂的组件要价更高,对开发投资产生了诱人的回报。拥 有某项核心技术但不具备全面开发实力的独立软件供应商得以剥离非核心的系统开发及营销等活动,专注于优势组件的开发。组件的重用不仅为独立软件供应商带来 了稳定的收益,而且在其不断的重用过程中,可以对组件进行不同环境和应用框架下的测试,使得软件供应商有更多的机会对组件进行持续的改进。
2.3 组装式应用开发为实施服务公司的发展提供了保障
信息技术产业作为一种知识密集型产业,存在两种商业模式,如表2。
实施服务公司作为技术供应商,他们首先考虑的是软件产品的适应性而不是先进性。实施服务公司通过全面分析用户企业的信息化需求及内外部环境,为用户选择适 合的产品。要提供最适合的产品,服务公司必须能够从整个供应市场上自由选择组件及平台,所有的软件都来自一个供应商显然是不可能的。而在传统的产业模式 下,虽然不同软件供应商的系统存在应用领域上的不同,但都各成一个独立的体系,软件与软件之间缺乏统一的数据接口,因而服务公司的选择只能局限在采用何种 产品之间,而不能对其进行裁剪组合。结果就是要么选择的系统不能完全满足用户的需求,要么系统存在功能上的浪费。因此,传统ERP产业链中,系统集成商的 地位并不独立,只能作为ERP实施过程中的辅助公司或者某个软件供应商的附属部门或子公司而存在。
表 2 信息技术商业模式的差异
软件产品线的出现为实施服务公司的独立工作提供了现实保证。管理咨询公司可以更加专注于对用户生产、管理过程的研究,为用户提供既支持总体经营战略,又切 实可行的信息化战略;系统集成商则可以从繁琐的集成开发中解脱出来,充分利用产业链上游提供的系统框架和组件,结合自身对某一行业的深入了解和丰富的实施 经验,组装有针对性的行业解决方案。
实施服务公司的独立弥补了ERP产业链渠道层的缺失。作为产品渠道,实施服务公司直接与用户接触并参与到ERP实施的全过程当中,利用其专业的服务知识和 经验,根据不同需求提供相应质量和成本的产品,为ERP项目的顺利完成提供了保障,提高了ERP产业链的整体服务水平。
2.4 系统平台的出现为在线软件服务提供商拓展了发展空间
平台屏蔽了ERP系统的实现细节,为用户提供了统一的服务接口。传统交付模式下,用户购买软件,将软件安装到公司内部服务器中,最终用户通过公司局域网或 者其他专用网络连接到系统平台以获取软件提供的功能。互联网的迅速发展,为用户接入系统平台提供了新的途径,用户只要能够接入互联网,就可以连接到系统平 台获取服务。这种情况下,服务器地理位置不再重要。因此,用户完全可以将系统平台及应用软件的维护外包出去,然后通过互联网获取软件所提供的功能,而不影 响ERP的应用效果。
在供应端,平台扩展了网络外包服务提供商的服务范围。不再局限于简单的主机托管,服务提供商可以为用户提供全面的IT应用服务。传统模式下,服务提供商必 须为不同用户的ERP系统提供不同的服务和连接方案,系统间的专用性使得存在大量功能重叠模块。平台使得服务提供商可以对原有独立的ERP系统重新整合, 或者直接采用新的应用组件,为用户提供统一的软件应用服务。另一方面,通过"一对多"的服务模式,服务提供商可以提高软硬件系统的利用率,从而获得规模效 益。图4展示了软件服务提供商的发展历程。
图 4 线软件服务提供商的发展
服务提供商的发展带动了在线软件应用模式的发展,进而催生了ERP产业链组织模式的创新。2.5 软件产品线促使核心企业专注于产业链的架构和管理
传统软件开发模式下,虽然大型软件厂商尝试通过联合其他企业发展其供应链,但由于原有开发模式的限制,企业间形成的是一种控制与被控制的依附关系,而不是 供应链层面的合作关系。这种模式下,上游软件外包企业从事的是十分底层的代码编写工作,并不能形成自己的产品和在某一应用领域的专业优势;下游渠道商由于 软件产品经营范围限制,其实施方案的适应性和灵活性也受到了极大影响。先入为主的实施方式影响了渠道商实施方案和服务的质量的提高。在这种情况下,有实力 的软件企业更多采用纵向整合的方式,通过对软件开发实施过程的全面覆盖,保证产品和服务的质量。
引入软件产品线软件开发模式后,上游原材料供应商(组件开发商)和下游渠道商得到了创建核心竞争力和独立发展的机会。上下游企业的成熟使得核心企业能够集 中精力于系统整体架构的设计和供应链的管理。产品线的成功运作基于健壮的系统框架,灵活的集成平台以及领域工程与应用工程之间的反馈循环。有了上下游企业 的支持,原先有实力的软件企业可以专注于系统架构的设计,集成平台的开发,以及已有成功应用模块的改进,并通过一系列的应用接口标准,协调ERP产业链各 参与主体之间的活动。同时,将自己不擅长的应用模块的开发和客户服务工作外包给上下游的合作伙伴,从整体上提供整个产品线的产品质量和供应链的服务水平。
3 基于软件产品线的ERP产业链:制造业模式
3.1 制造业模式的内涵
制造业是指对原材料进行加工和再加工,为国民经济其他部门提供生产资料和全社会提供日用消费品的生产部门。制造业企业的生产运作活动,是一个"投入-变换 -产出"的过程,即投入一定的资源,经过一系列或多种形式的变换,使其增值,最后以某种有形或无形的形式提供给社会。制造业的生产经营活动和管理活动都是 以产品为中心进行的。制造企业根据市场需求和用户订单制定生产计划、采购原物料、安排生产设备和人员进行生产,并根据生产计划对产品的生产进度、质量和成 本进行控制。
从单件生产到流水线式的大规模标准化生产,再到大规模定制生产,制造业的产业组织模式相应地经历了作坊式、工厂式和供应链式三个发展阶段。并且随着精益生 产(JIT)等先进管理思想的融入,制造业供应链得到了进一步地优化:在体制上,形成了以核心企业为龙头的利益共同体;在运行形式上,形成了从各级供应 商、核心企业、分销商到最终客户的物流和信息流网络。企业间的竞争已经演变成为供应链间的竞争,竞争力不仅表现在核心企业的能力,更取决于供应商和分销商 的能力,以及整条供应链的协调运作能力。
管理软件产业的发展就是一个不断向制造业学习的过程。从工程理论,到供应链组织模式,传统软件供应商借鉴制造业的成功经验,结合软件产品的特性,不断调整 和优化组织模式,正在形成以大型软件供应商为核心的,由上游组件供应商和下游系统集成商为支撑的,以软件开发为重心的ERP产业链制造业组织模式。ERP 产业链的制造业模式具有以下特征。
第一,以软件开发为重心。制造业模式下,产业链的运作围绕软件的开发流程展开,各参与主体之间相互分工和合作,共同完成软件的开发工作。
第二,以大型软件供应商为核心。制造业模式强调对生产流程的管理,大型软件供应商凭借其强大的系统架构开发能力,指导产业链分工,实现对供应链上下游合作伙伴的领导。
第三,为用户提供完整的软件系统。产业链的输出是具体的、封装好的、针对某一用户或行业的ERP软件。
第四,定制式软件开发。根据用户需求,提供专业的、预集成(pre-integrated)的软件系统和解决方案。
3.2 制造业模式的参与主体与分工
根据各自的分工不同,ERP产业链的制造业模式主要由四类参与主体组成。图5展示了这四类参与主体之间的关系与各自的贡献。
图 5 ERP产业链制造业模式示意图:参与主体与分工
(1)核心企业(Architect)
核心企业是整条产品线的架构师,同时也是ERP产业链的核心企业。ERP产业链中的核心企业多为产业中有实力的软件供应商,他们凭借其成熟的产品、丰富的 开发经验和广泛的客户基础,能够完成产品线SOA架构(Service-Oriented Architecture,面向服务的系统架构)和集成平台设计、开发工作,架构和平台作为一种标准和明晰规则,为产业链参与主体之间的分工合作提供了依 据。
如图6,SOA是产品线的组件模型,它将应用程序的不同功能组件通过定义良好的接口和契约联系起来。SOA凭借其松耦合的特性,使得系统中的组件可以以一种统一和通用的方式进行交互,并且可以方便地添加删除组件或更新现有组件。
图 6 SOA架构和集成平台
集成平台(Integrator Platform)是SOA的服务基础平台(Service Infrastructure),集成平台包括了来描述服务的WSDL,用来注册和查找服务的UDDI和在消费者和服务提供者之间传送消息的SOAP等基 础部件,以及保证各应用组件交互的API接口。不同于单系统的设计,SOA架构和集成平台的设计要求更加全面的需求分析和细致的服务(组件)界定,以保证 其可以应用于广泛的已知和未知应用领域。
在软件产品线分工的基础上,核心企业领导各参与主体进行广泛的合作。通过对资源、最佳业务实践、服务网络等的重新整合和不同行业、领域的专家之间的合作,实现合作伙伴之间的信息共享和利益共享。
(2) 独立软件供应商(ISV)
传统的ISV是指"独立"于计算机生产厂商的专门从事软件开发、生产、销售和服务的软件开发商,在ERP产业链中,ISV的"独立"体现在对软件开发过程 的专注。有了核心企业和系统集成商在技术和服务方面的支持,ISV可以剥离不擅长的软件销售和服务工作,从而专注于应用组件的设计、开发和测试工作。
ISV可以专注于各种层次的组件开发,包括低层次的功能类组件,如各种中间件,和高层次的可实现某一业务应用的总成(Assembly)组件,如财务应用组件等。ISV也可以根据核心企业和系统集成商的需求,进行定制的应用模块的开发。
(3)系统集成商(SI)
系统集成商负责定制化ERP系统的组装和交付工作,担当产业链中渠道商的角色。
系统集成商拥有丰富的行业专家和ERP实施专家,具有某一行业或者某一业务应用的软件集成和实施经验。系统集成商与最终用户直接接触,获取具体的用户应用 需求,并利用已有组件为用户组装ERP系统。参照行业标杆和最佳业务实践,系统集成商同时能为客户提供信息化过程中必要的业务咨询、IT战略规划等服务。 通过大量的实施案例,系统集成商能够识别具体行业或应用的信息化需求,从而开发和完善专业的ERP应用系统和行业解决方案。
(4)用户
用户在ERP产业链中的地位也由原先的被动接收者转变为主动参与者。软件开发是一个持续改进的迭代过程,每一轮迭代的动力都来源于对前一版本的改进和更 新,而用户在的应用测试,以及用户生产管理流程的创新,都是ERP改进的依据。因而,在制造业模式中,用户通过不断的提供创新需求促进了ERP的更新、升 级。
在制造业模式中,ERP软件最终交付给用户。虽然用户可以将包括软件在内的所有IT设施托管给第三方,但用户对ERP系统的运行、维护负有最终责任。
3.3 制造业模式的优劣势
ERP产业链制造业模式给软件供应商和用户带来的优势如表3所列。
表 3 制造业模式的优势
作为传统软件开发过程的一种改进,制造业模型同样具有一些根深蒂固的缺点。一个最主要的问题就是对于用户来说,实施和应用ERP系统的总拥有成本 (TCO)很高。在制造业模式下,用户首先要支付相当数量的软件许可费用,获得软件的使用权;其次,为了运行ERP系统,用户还要购买相应的服务器、操作 系统等软硬件基础设施;最后,使用过程中,用户除要承担全部的系统运行费用,还要雇用专业的技术人员来进行系统运行的维护工作。
3.4 制造业模式的目标客户
制造业模式的ERP产业链主要目标客户是大型企业,如跨国公司等。大型企业业务覆盖面广,业务部门多,流程复杂,标准套装软件很难满足其全面的信息化需 求;另一方面,大型跨国企业往往是行业中的领先者,拥有其他竞争者难以模仿的核心竞争力,信息技术对这些核心竞争力的建立和维持有着直接或间接的影响,因 而大型企业通常选择将这部分信息技术保留在企业内部。同时大型企业拥有相当的财力、人力来支持系统的开发和维持系统的运行。与此同时,制造业模式也适合执行差异化战略的企业的ERP系统开发。