01
开发模式的变革
华为最早的开发模式是按功能组织的职责分工进行产品开发的。刚开始产品种类不多,开发相关人员大多认识,沟通和协调顺利,决策快速,效率高。随着公司人员增加,产品越来越复杂,开发新产品要求完成成百上千甚至更多项开发活动,其中很多活动都是相互关联的,需要各功能部门相互配合才能将产品开发并批量生产出来。
20 世纪90 年代,华为的产品开发是这样分工的:开发部负责开发产品,中试部负责测试和试生产验证,制造部门负责制造,采购部门负责采购,市场部门负责销售,服务部门负责售后服务。产品开发流程是先由研发人员确定产品规格并开发出样品,然后由测试人员熟悉产品,进行小批量试制后进行测试,发现问题返回研发解决,测试通过后由制造人员准备生产工艺,采购人员订购物料后批量生产发货。后续批量制造过程以及销售和服务环节发现的任何问题,包括功能、性能、直通率、销售、发货、安装、服务等问题,往往也要通过测试人员确认后反馈给开发人员进行修改解决。很多产品的开发人员还位于深圳以外的城市,如北京、上海,那时通信不发达,远程沟通很困难,往往需要开发人员飞到深圳的制造现场。不断重复发现问题、返回研发修改、再测试验证的过程,导致产品开发进度缓慢;产品开发工作需要不同部门人员参与,但因工作目标不一致导致各行其是,在交接点验收移交标准要求上,理解不一致带来沟通、协调和移交困难;下一道工序人员接收产品需要时间熟悉;测试、制造、服务、销售准备无法并行开展。
这种接力棒式的串行开发最终导致开发周期长,往往产品因不能及时上市而失去竞争力。
华为引进 IPD后改变了开发模式,采用跨部门团队来负责产品开发,它能有效地管理开发工作,保证开发工作和配套的工作同步进行,缩短开发周期。开发团队汇集开发、测试、制造、Marketing、市场、技术服务、财务、供应、采购、质量等功能部门代表及其所属领域的专业智慧和资源,通过项目管理方法,对产品从开发、测试、制造、上市端到端进行协同管理,共同对项目成功负责。从发展历史看,华为采用IPD跨部门团队项目管理模式进行开发取得了预期效果,从产品设计前期就关注产品的可靠性、可生产性、可销售性、可服务性等方面的需求,减少了因为修改这些方面问题返工导致的开发周期延长,降低了开发成本,产品质量也得到了提升。跨部门团队的模式也使得各部门能实施并行工程从而缩短开发时间。开发人员在开发测试产品时,制造人员可同时准备批量制造工艺和制造装备;采购人员认证新器件、确定供应商,为产品批量制造准备好所需物料;营销人员可以为产品上市和市场宣传销售提前做好准备;服务人员也可以在产品上市前做好产品安装和服务培训赋能。显然,这种并行开发模式比接力棒式的串行开发时间要短得多。
基于跨部门团队模式的项目管理方法,特别适用于大型、复杂项目/项目群的管理。比如阿波罗登月参与的人员多达42万人,只有研发人员要完成项目是无法想象的。通信产品就是大型复杂的产品,适合采用跨部门团队的并行开发模式。现在华为不仅是开发项目,所有项目都采用跨部门团队的模式管理和完成。
02
产品开发团队结构
产品开发团队(PDT)的基本组成结构是一种分层管理结构, 由来自开发、营销、财务、制造、采购、PQA(Product QualityAssuranceEngineer,产品质量保证工程师)和技术服务部门的代表组成核心组,由各功能部门的成员分组组成扩展组。核心组代表在 PDT经理的领导下管理各自负责的工作,共同对项目成功负责。
图3-3 是 PDT团队组成结构图。扩展组层级、成员数量、专业领域小组 划分根据开发的对象和工作任务及相关性来确定。比如开发团队由硬件、软件、系统工程师、UCD(User Centered Design,以用户为中心的设计)、测试、结构、资料工程师组成。当开发的产品复杂,需要参与项目的成员多时,扩展组可分成若干小组。由扩展组代表作为小组长负责管理本专业领域的工作,并对小组成员的工作表现给予评定,核心组代表对扩展组代表进行考评。
PDT经理和核心组代表通常是专职的,以保证开发工作的顺利进行和成功。扩展小组多少和资源投入视其工作范围、相关性和工作量确定,他们通常在项目需要时加入,在项目结束时释放,去接受新的开发任务。
PDT团队开发模式的好处是能快速解决沟通和协调问题,快速做出决策,开发工作大量是相互关联的,出了问题能快速反馈给小组长甚至核心组代表,并及时获得各领域专家的意见,涉及多领域问题可以在PDT会议上快速评估、决策和落实执行,因此这种模式打破了部门“墙”,能够高效地运作。
PDT跨部门团队模式还有利于同步的开展工作。开发人员在设计产品时, 测试人员在准备测试,制造人员在准备制造装备,采购人员在认证和采购物料。也有些工作必须同步进行,比如单板硬件和单板软件开发完成才能做单板测试,软件开发和硬件开发同步完成才能进行集成测试。另外跨部门团队还有利于在产品开发的前期就考虑产品的可靠性、可生产性、可销售性、可服务性等方面的需求,市场人员的参与能保证产品需求来自客户并减少变更对产品开发工作的影响。因此这种模式能大大缩短产品开发周期,降低开发成本,使产品及时上市,从而具有竞争力。
经过多年推行和实践,PDT 重量级非研发部门,如供应链和服务部门代表做得很好,都有专门的新产品导入部门投入资源,负责专业领域工作和赋能,产品 的可供应和交付性得到了很好的保证,支撑了公司产品及时、准确、优质的交付。
需要指出的是,PDT的结构是与开发产品的性质、难易程度和工作分解结构 WBS(WorkBreakdownStructure,工作分解结构,一种项目管理术语,是对项目团队为实现项目目标,创建所需可交付成果而需要实施的全部工作范围的层级分解)对应的,以便开发工作能分工清晰,责权对等。这种结构化的团队分解方法,与IPD流程和项目管理集成起来,可以灵活地适用于各种类型的产品开发。比如纯软件开发没有硬件、结构、生产装备开发工作,相应的PDT也就没有这些开发人员。
03
IPD流程模型
产品开发是投资,需要采用项目的形式,由PDT团队按照一致、规范、结构化的方法进行产品开发。这种方法将分阶段商业投资决策、项目管理、跨部门团队和结构化流程,这些业界最佳实践有机集成起来,形成的集成产品开发方法,就是 IPD流程模型。因此, IPD流程也被称为“基于项目的业务管理模型”。IPD流程通过分阶段,采用产品技术逐渐成熟的思想,明确每个阶段 的目标,清晰地定义各个 DCP和 TR点及其要求,使华为所有开发项目有一致、规范、可复制、可衡量的开发过程和相同的质量要求,能制度化地不断开发出满足客户需求,有市场竞争力的高质量产品和解决方案。
图3-4为华为 IPD流程模型简化的框架示意图,这个高层次的框架图有一个很形象的名字, 叫袖珍卡(PocketCard) ,意思是一张可随身携带的卡片, 随时随地都可以拿出来查看。这样一页纸概述了IPD流程的关键信息,非常有利于 PDT成员了解要完成的主要工作以及相互依赖关系(同步、先后及协同),在图中加上里程碑时间、活动起始完成时间,PDT团队就可以用它来从项目层面管理整个开发工作。
如图3-4所示,从纵向看,IPD流程分为业务流程和功能领域流程两大部分。业务流程主要包括 PDT团队管理商业计划的开发、优化,项目计划的制订和 监控执行,以及IPMT在每个 DCP点的商业决策等活动。功能领域流程则描述了有哪些功能领域要参与产品开发,以及各功能领域在产品开发各阶段要执行的主要活动和关键交付,以及关键质量控制点(TR和各领域评审点MR市场评审、MFR制造评审、SR服务评审 、POR采购评审等)。这是通用的产品开发流程结构,高层次上各开发项目可以保持一致,不同开发项目相关领域工作会有不同,可以裁剪,比如纯软件开发项目没有硬件、机械结构等开发工作。同时每个功能领域工作需要进一步分解细化,清晰定义这些工作和细化的活动由什么角色来负责完成,怎样 来完成以及交付质量要求,并与 PDT团队结构相匹配。每个领域细化的流程,在华为称为功能领域支撑流程。
从横向(时间轴)看,每个产品开发阶段都有清晰的目标:
概念阶段的目标是保证 PDT根据项目任务书 Charter,确定产品包需求和备选概念,对产品机会的总体吸引力以及各功能领域策略做出快速评估,形成 初步项目计划。
计划阶段的目标是清晰地定义产品方案及其竞争优势,制订详细的项目计划及资源计划,确保风险可以被合理地管理。
开发阶段的目标是对符合设计规格的产品包进行开发和验证, 并完成制造 准备工作。
验证阶段的目标是进行制造系统批量验证和客户验证测试,以确认产品的可获得性,发布最终的产品规格及相关文档。
发布阶段的目标是发布产品,制造足够数量的满足客户和质量需求的产品,以便在 GA(GeneralAvailability,一般可获得性,是产品可以批量交付给客户的时间点)后能及时销售发货。
生命周期阶段的目标是监控产品市场表现,采取措施,及时进行 EOM/ EOP/EOS,以使产品(构成产品的单板、软件,包括第三方软件)及系列版本生命周期阶段的利润和客户满意度达到最佳状态,详见第2.5 节。
综上所述,IPD流程是结构清晰、层次清晰,同时关系清晰、活动清晰,并有工作指导的流程,开发项目团队基于这个通用化的流程,经过快速适配,就能立即开展产品开发工作。
IPD流程是结构化的,将分阶段商业决策、项目管理和跨部门团队这些业界最佳实践有机集成了起来。通过DCP决策实现资源分批受控投入,既满足项目进展需要,又避免后期的开发不确定性带来更多研发投资损失。结构化的业务分层与项目WBS层级定义清晰,并和项目小组团队结构匹配,使得参与产品开发的各功能领域成员能并行有序地开展相关工作。项目经理及团队有了施展才华,即把产品及时、准确、高质量、成功开发出来的舞台。项目团队应用项目管理方法,管理跨部门团队进行开发,使得并行开发成为可能,缩短了开发周期,提高了开发效率。根据业务的复杂程度确定合适的层次结构,能使开发过程既规范、可复制,便于有效管理;又灵活,便于扩展,满足快速产品开发和动态多变的市场需要,交付成果也可不断被重用。合理的层次结构也使流程有了持续改进的基础和适应未来开发模式的发展机会。DCP决策标准和技术评审TR质量要求使得开发过程可衡量、可管理,输出产品有质量保障(详见第8.4.3小节)。IPD流程是业界最佳产品开发管理方法。
04
IPD各阶段流程要点
IPD流程对一个产品包从概念到发布上市、直到生命周期结束所需的端到端流程的主要活动进行规范和管理。流程的开端是产品线IPMT通过项目任务书授权项目的启动。项目启动时被任命的PDT经理会从产品线 IPMT收到一份项目任务书(Charter),授权启动项目,组建PDT,开始产品开发。当产品上市后,PDT释放大部分资源,由 LMT对产品包生命周期进行管理,直到停止对该产品包的服务时,流程结束。
IPD流程的前5个阶段:概念、计划、开发、验证、发布阶段属于产品开发阶段,生命周期阶段是对产品生命周期进行的例行运作管理,详见第 2.5 节。下面介绍IPD流程前5 个阶段的要点。
总的来说,IPD流程不仅是一个开发流程,还是一个跨功能部门的业务流程,它将开发产品包的全部主要活动按照逻辑顺序集成起来,保证开发工作的顺利进行,以实现公司的产品投资目标。因此,必须对产品包的相关方面工作进行规范和有效管理,以便按照开发项目的目标按时完成开发任务。
1.概念阶段
概念阶段起自 PDT经理收到 IPMT发布的项目任务书Charter,迄于CDCP决策通过确认书或项目撤销书。
PDT经理收到Charter后,组织任命的PDT核心成员,确定必要的扩展组成员,以便完成概念阶段的任务,对于新组建的PDT一般应进行团队组建活动,以便 PDT成员能尽快相互熟悉,高效地开展概念阶段工作。
概念阶段关键活动如图 3-5所示,PDT根据项目任务书,确定产品包需求, 选择一个备选概念(即方案),并基于此整合各领域如制造、采购、研发、营 销等策略,制订端到端WBS概要计划。对该项目进行概念性评估,完成制定 初始产品包 / 解决方案商业计划(O/SBP)的工作。
PDT对立项提供的初始产品包需求(详见第2.3.5 小节)进行整理分析,与市场、制造、服务等部门达成一致形成最终的产品包需求。基于产品包需求,定义产品概念。产品概念的选择应该建立一致的评分标准,定义权衡要素(包括战略符合度、市场吸引力、技术和产品竞争力、成本和开发难易等),对每个备选概念进行评分,选择一个最优概念。
PDT经理整合概念 DCP的汇报材料,提请 IPMT决策。如果获得批准,则进入计划阶段,否则取消项目或重新确定方向。
不同的产品备选概念决定了产品系列的技术方向、系统结构和可扩展性; 模块或关键器件的可获得性,决定了开发的难易、产品成本和竞争力。新技术、新平台、新架构会直接影响开发规模和周期、制造和采购策略、产品定价和营销方案等,如手机是不是折叠屏。非战略或非盈利的产品,CDCP决策可能会取消项目不再投资。
2.计划阶段
计划阶段起自 CDCP决策通过,迄于 PDCP决策通过确认书或项目撤销书。
PDT经理收到 CDCP决议后,与PDT核心组成员一起,落实必要的扩展组成员,获得批准,制订工作计划,及时地开展计划阶段的工作。
计划阶段关键活动如图 3-6所示,主要是基于选定的产品概念进行架构与系统设计,确定产品技术规格,通过TR2 评审后,进行产品的概要设计(包括软 / 硬件、结构等),确定产品的子系统和模块,以及它们之间接口的相互关系和技术标准。基于确定开发的每个软 / 硬件模块、结构、系统软件等确定所需开发的工作量和资源,从下到上制订端到端 WBS详细计划。对一个新系列的产品,选择新架构、新平台需要进行架构评审。架构与设计的重要性见第6.2 节。
各功能部门代表根据产品的概要设计确定各领域的计划,如有必要,需提前做出采购决定,以便在开发阶段及时获得所需的器件和模块。PDT对项目计划进行确定性评估,优化产品包/ 解决方案商业计划(O/SBP)。
PDT经理整合计划 DCP的汇报材料,提请 IPMT决策。如果获得批准,则进入开发阶段,否则取消项目或重新确定方向。
为了保证投资决策的质量,PDT的营销代表要对市场评估和产品包需求负责,财务代表对评估的开发成本负责,PDT经理与IPMT签署合同,对项目目标达成进行承诺。计划阶段确定了产品方案和开发工作量评估后,一旦通过PDCP决策,原则上项目后续被废弃较少。如果PDCP决策后 O/SBP和 PDCP 合同承诺发生变化,如产品包需求或项目范围内非PDT原因的变化,PDT需要提交计划变更请求(PCR),提请临时DCP决策。
3.开发阶段
开发阶段起自 PDCP决策通过,迄于 TR5 评审通过。
PDT经理收到 PDCP决议后,与PDT核心组成员一起,落实需要的扩展组成员,制订开发阶段计划,及时地开展开发阶段的工作。
大量的新开发人员加入扩展组,需要进行团队培训,使团队成员清晰开发目标,相互熟悉,确定团队运作机制,以便高效协同开发。
开发阶段关键活动如图3-7 所示,主要是对各软/硬件/ 结构进行详细设计,对各构建模块进行功能验证(BBFV),其他领域为下一个环节的开发工作做准备,构建模块通过TR4 评审后,进入系统设计验证(SDV),采用异步渐增构建和测试(IBT)方法验证原型机的功能和能测试的性能,通过TR4A 来评估设计的实现性。全部验证通过后,用SDV级的构建模块生产初始产品,进行系统集成测试(SIT),进行可靠性、可安装性、可服务性测试,同步开发产品资料、制造工艺和测试装备、市场优化营销计划等,TR5 对产品的功能性能、设计稳定性、能否小批量生产和销售等方面进行评估,通过后进入验证阶段。
开发阶段通过三个技术评审来使产品技术逐渐成熟, 这样也便于进行异步开发,模块既可以用合作方的,也可以是PDT/TDT配套开发的专用模块(这需要技术路标和产品路标计划对齐,详见第5.2节),或是CBB,这可以大大降低技术难度,缩短开发周期,降低产品开发成本,提高开发效率。
开发阶段是产品开发中投资最大、时间最长的阶段,要缩短开发周期,PDT经理和开发代表应重点关注关键路径,随着软件能在线或带电热升级,影响开发周期的关键路径通常是硬件开发,因此降低单板的改板次数,力争做到一次投板成功是研发需要重点提升的设计能力。
4.验证阶段
验证阶段起自 TR5 通过,迄于获得签发的ADCP决策通过确认书或项目撤销书。
验证阶段关键活动如图3-8 所示,产品通过 TR5 后,需要在真实的环境进行测试,如Beta测试(如企业有条件,应建立内部镜像测试环境,便于验证客户环境测试发现的问题),也需要进行外部认证和标杆测试。同时要进行系统验证测试(SVT),验证产品小批量下的性能、设计环境下的可靠性和一致性,还要对制造工艺和测试装备进行验证,通过Beta发货验证制造、订单和物流系统。最后,通过TR6 来评估生产级的技术成熟度,最终确定产品规格和是否能量产及发货。
当制造、采购、供应、服务和营销已为批量交付准备就绪,PDT准备ADCP材料,提请进行ADCP决策,确定发布日(AD)和产品可大批量上市的 GA时间,批准爬坡生产计划。
通过 ADCP后,进入发布阶段,应释放大量的开发人员从事新开发项目工作,只保留部分扩展组成员完成发布阶段的工作。
5.发布阶段
发布阶段起自 PDT获得 ADCP决策通过确认书,迄于 GA点。
发布阶段关键活动如图3-9 所示,关键是做好上市准备:在确定的产品发布日期(AD)进行产品包上市发布,完成转产工作,建立订单环境,进行逐渐放量(爬坡)生产,确认GA前服务培训已经完成,渠道已备货。当产品包达到 GA以及产品成功移交给 LMT后,产品开发工作结束,就进入产品生命 周期管理阶段。
产品发布日期(AD)一般是在产品路标中规划好的,是在 Charter中确定的上市时间,产品开发计划应该按此倒排(以终为始)。在华为,对消费者业务来说,产品上市及时间节奏很重要,发布日还会请到产品形象代言人,以提高产品知名度和扩大影响;对运营商业务来说,由于客户招投标时间确定,产品规划和开发计划应与运营商的年度投资预算对标,以便提前规划,及时开发立项与启动。