现代制造业为了应对大规模定制(Mass Customization)的需求,大部分公司都采用了“产品线”管理模式。所谓“产品线”是指一群相关的产品,这类产品可能功能相似,销售给同一顾客 群,经过相同的销售途径,或者在同一价格范围内等,采用产品线的典型案例有丰田、福特这样的汽车制造商,华为、思科这样的电信设备制造商,Nokia、 Moto这样的手机制造商等等。B·约瑟夫·派恩(B·Joseph Pine II)在《大规模定制:企业竞争的新前沿》一书中写到:“大规模定制的核心是产品品种的多样化和定制化急剧增加,而不相应增加成本;范畴足个性化定制产品 的大规模生产:其最大优点是提供战略优势和经济价值。”
借鉴制造业大规模定制(Mass Customization)的生产方式,在软件架构实现上,卡耐基梅隆大学软件工程研究所(CMU/SEI)推出了软件产品线(Software Product Lines) 模型。SEI对软件产品线定义为:A software product line (SPL) is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way。
软件产品线具有如下如下一些重要的特征:
- 一个软件产品线应该由一系列产品成员组成,即产品家族;产品家族中的所有产品都是服务于一些特定相似的领域,例如电信、教育、航空、数字娱乐等
- 一个产品线的定义是基于市场策略的,而不是基于它的成员产品之间的技术相似性。
- 产品家族成员在构建时候都利用了相同或相似的功能,这些功能来自一些公共的、固化的、并且是受严格管理的核心软件资产
- 软件产品线每个产品都是由来自公共资产库中的组件(Component)组成,然后按预定义的变化机制,如参数化或继承,对这些组件进行必要的剪 裁,添加必须的新组件,根据一个产品线范围内的公共架构来组装这些组件。因此,构建一个具体软件产品(应用系统)的主要工作是组装或繁衍而不是创造;主要 的活动是集成而不是编程。
1、产品线基础知识
产品线中产品、组件、架构、商业目标关系
产品线核心活动
Software Product Line Practice AREAS
软件产品线的基础知识可以参考A Framework for Software Product Line Practice, Version 5.0
2、互联网产品线管理策略
对于互联网平台化产品而言,最佳的实践模式也是软件产品线的模式。平台上的各个产品一般由同一公司不同部门或不同合作伙伴来运营、维护,具体可以体 现为栏目、频道、产品、地区版块等。平台化产品中各个产品运营维护团队的不同,实际上是各个公司组织机构的映射,例如按客户群划分、按产品划分、按职能划 分、按地域划分等等。为区分组织架构层面的产品线管理架构和软件产品线架构,后续将软件产品线都统一成为产品平台、平台。
这些产品依托于统一的产品平台(产品线),平台提供了各产品间能够复用的业务组件、技术架构、信息架构、运营支撑体系等。通过这些公用架构、元素的复用,可以相对快速地满足各产品公用需求,在竞争上获得较大的优势,包括:
- 降低产品维护成本
- 加快产品上市速度
- 提高产品质量
- 降低新产品开发风险
- 有利于产品需求持续积累,为产品创新提供素材
另外一方面,产品平台上的不同产品对公用组件的个性化需求、产品上线频率、产品维护能力、需求优先级、用户体验等要求都不尽相同,无法采用统一的、 相对固化的策略来满足所有需求。尤其是各产品线对平台提供的公用元素也存在定制化需求,这些需求对平台的统一性、稳定性也存在较大挑战。如何在保证统一平 台的前提下,能够敏捷响应各产品线的共性需求、个性化需求,充分复用已有业务沉淀的资产(产品资产、业务资产、技术资产),保证产品能够低成本、高质量、 快速上市成为互联网企业的核心竞争力之一。
在产品平台的管理上一般可以采用如下几种模式:
1、产品平台由专职的平台管理维护团队来维护
有专门的产品产品平台管理团队(产品、技术、UED等)来统一对平台进行管理维护,各产品线的共性需求、个性化需求都由这个平台维护团队来完成。
优点:平台的策略相对延续,能够保证平台相对稳定性。
缺点:由于互联网产品需求变化快、迭代周期较短,但按照平台管理流程,需要经过繁琐的审核流程,很难满足各产品线的敏捷响应的要求;各产品线间需求(个性化、共性)优先级的排序很难满足各产品线需求,对某个产品线至关重要的需求可能在整个排序中优先级很低