IPD是一套产品开发的模式、理念与方法。既然是方法,肯定有她的背景、体系和核心思想。在华为引入IPD流程后,从管理上看确实规范很多,一切都有据可循,有规章制度去规范和约束各个产品团队,不能再像过去小作坊式的野蛮生长。
背景
1992 年IBM在激烈的市场竞争下,遭遇到了严重的财政困难,公司销售收入停止增长,利润急剧下降。经过分析,IBM发现他们在研发费用、研发损失费用 和产品上市时间等几个方面远远落后于业界最佳。为了重新获得市场竞争优势,IBM提出了将产品上市时间压缩一半,在不影响产品开发结果的情况下,将研发费 用减少一半的目标。为了达到这个目标,IBM公司率先应用了集成产品开发(IPD)的方法,在综合了许多业界最佳实践要素的框架指导下,从流程重整和产品 重整两个方面来达到缩短产品上市时间、提高产品利润、有效地进行产品开发、为顾客和股东提供更大价值的目标。
IBM公司实施IPD的效果不管在财务指标还是质量指标上得到验证,最显著的改进在于:
1、 产品研发周期显著缩短;
2、 产品成本降低;
3、 研发费用占总收入的比率降低,人均产出率大幅提高;
4、 产品质量普遍提高;
5、 花费在中途废止项目上的费用明显减少
核心思想
IPD作为先进的产品开发理念,其核心思想概括如下:
a) 新产品开发是一项投资决策。IPD强调要对产品开发进行有效的投资组合分析,并在开发过程设置检查点,通过阶段性评审来决定项目是继续、暂停、终止还是改变方向。
b) 基于市场的开发。IPD强调产品创新一定是基于市场需求和竞争分析的创新。为此,IPD把正确定义产品概念、市场需求作为流程的第一步,开始就把事情做正确。
c) 跨部门、跨系统的协同。采用跨部门的产品开发团队(PDT:Product Development Team),通过有效的沟通、协调以及决策,达到尽快将产品推向市场的目的。
d) 异步开发模式,也称并行工程。就是通过严密的计划、准确的接口设计,把原来的许多后续活动提前进行,这样可以缩短产品上市时间。
e) 重用性。采用公用构建模块(CBB:Common Building Block)提高产品开发的效率。
f) 结构化的流程。产品开发项目的相对不确定性,要求开发流程在非结构化与过于结构化之间找到平衡。
PS:
(1)最重要的就是“一切市场决定”,不是老大拍个脑袋,说做这个做那个的。
(2)设立“决策评审点”每个阶段都要审视,此产品是否还有继续下去的必要,或者要做什么改动才能适应市场的变化,或者是调整优先级;
(3)“跨部门、跨职能协作”,打破部门、职能的限制,产品线经理领导产品研发,各职能经理协调与配合;
(4)重用性,这个类似于一些软件公司的产品复用中心,就是之前研发的项目,所用的框架、工具、测试用例,尽可能的重用,减少不必要的花销;
(5)结构性流程,产品研发过程中虽然变化多,需求经常改动,但是可以经过流程上控制,保持相对的稳定,这样团队成员的满意度会大大提高,至少无休止的加班会得到控制。
团队
PS:产品开发中,什么最重要? 产品经理可能会说,用户最重要;但是做IT项目管理的人可能都会说,团队最重要,没有团队,产品开发就是一句空话。所以,要尊重团队中的每一位不同职能的成员,没有他们,设计做的再牛逼,又有什么用呢?
组织结构是流程运作的基本保证。在IPD中有两类跨部门团队,一个是集成产品管理团队(IPMT),属于高层管理决策层; 另一个是产品开发团队(PDT),属于项目执行层。
(1)IPMT和PDT都是由跨职能部门的人组成,包含了开发、市场、生产、采购、财务、制造、技术支援等不同部门的人员,其人员层次和工作重点都有所不同。
(2)IPMT由公司决策层人员组成,其工作是确保公司在市场上有正确的产品定位,保证项目保证资源、控制投资。IPMT同时管理多个PDT,保证将公司有限的资源投入到高回报的项目上,适时终止前景不好的项目;
(3)PDT是具体的产品开发团队,其工作是制定具体产品策略和业务计划,按照项目计划执行并保证及时完成,确保小组将按计划及时地将产品投放到市场。
(4)PDT是一个虚拟的组织,其成员在产品开发期间一起工作,由项目经理组织,可以是项目经理负责的项目单列式组织结构。
流程
IPD产品开发流程被明确地划分为概念、计划、开发、验证、发布、生命周期六个阶段,并且在流程中有定义清晰的决策评审点。
这些评审点上的评审已不是技术评审,而是业务评审,更关注产品的市场定位及盈利情况。决策评审点有一致的衡量标准,只有完成了规定的工作才能够由一个决策点进入下一个决策点。
下面是典型的产品开发流程:
a) 在概念阶段初期,一旦IPMT认为新产品、新服务和新市场的思想有价值,他们将组建并任命PDT成员。
b)
c)
e) 完成详细业务计划以后,PDT提交该计划给IPMT评审。如果评审通过,项目进入开发阶段。PDT负责管理从计划评审点直到将产品推向市场的整个开发过程,PDT小组成员负责落实相关部门的支持。
f) 在产品开发全过程中,就每一活动所需要的时间及费用,不同层次人员、部门之间依次做出承诺。
管理
项目管理是使跨部门团队集合起来更好地行动的关键。首先要有一个目标即项目所要达到的效果,一旦我们将客户的需求转换为对产品的需求时,就可以制定详细计划。该计划中的各部分将具体划分为每个职能部门的工作,即这个计划不只是研发部门的计划,也是公司各个部门共同的计划。 一个产品从概念形成到上市期间会涉及到许多不同的紧密相联的活动,就好像不同职能部门彼此之间是有关系的。同样在一个项目中他们彼此之间的活动也是有关联 的,所有的活动加起来就是整个的产品开发。
接下来安排活动的时间,然后对每个活动进行预算和资源的调配,在项目实施过程中还需要不断地与计划对 照,因为没有任何一个计划是完善的,所以可以在细的层面上对计划进行一定的调整,但是PDT做出的承诺不能改变。
整个项目的进行过程都需要PDT的参与,因此,PDT在产品开发全流程中自始至终存在。管道管理类似于多任务处理系统中的资源调度和管理,指根据公司的业务策略对开发项目及其所需资源进行优先排序及动态平衡的过程。
重构
IPD提高开发效率的手段是产品重构。产品重构主要关注于异步开发和共用基础模块(CBB)。
开发
异步开发模式的基本思想是将产品开发在纵向分为不同的层次,如技术层、子系统层、平台层等。不同层次工作由不同的团队并行地异步开发完成,从而减少下层对上层工作的制约,每个层次都直接面向市场。
通常,在产品开发过程中,由于上层技术或系统通常依赖于下层的技术,因此,开发层次之间的工作具有相互依赖性,如果一个层次的工作延迟了,将会造成整个时间的延长,这是导致产品开发延误的主要原因。 通过减弱各开发层次间的依赖关系,可以实现所有层次任务的异步开发。
为了实现异步开发,建立可重用的共用基础模块是非常重要的。
模块化
共用基础模块(Common Building Blocks, CBB)指那些可以在不同产品、系统之间共用的零部件、模块、技术及其他相关的设计成果。由于部门之间共享已有成果的程度很低,随着产品种类的不断增长, 零部件、支持系统、供应商也在持续增长,这将导致一系列问题。 事实上,不同产品、系统之间,存在许多可以共用的零部件、模块和技术,如果产品在开发中尽可能多地采用了这些成熟的共用基础模块和技术,无疑这一产品的质 量、进度和成本会得到很好的控制和保证,产品开发中的技术风险也将大为降低。 因此,通过产品重整,建立CBB数据库,实现技术、模块、子系统、零部件在不同产品之间的重用和共享,可以缩短产品开发周期、降低产品成本。 CBB策略的实施需要组织结构和衡量标准的保证。
不管是异步开发还是共用基础模块的实现,都需要很高水平的系统划分和接口标准制订,需要企业级的构架师进行规划。
PS:我在华为赛门铁克防火墙项目组的时候,开发了低、中、高三代防火墙,各种型号加起来几十种,但是底层基本上是一个平台,到上面再适配不同产品,例如:Web区分不同产品,有三种适配,根据License来控制显示的功能菜单。或者采用硬件模块插板式来区分型号。
后面的贴不上了,说什么有敏感信息? 囧!
来源:oschina
链接:https://my.oschina.net/u/1021405/blog/630885