上世纪80年代末,IBM是有史以来盈利最多的公司。但进入90年代后,IBM遇到了严重的危机,1993年亏损80亿美元,几乎解体。危难时刻,郭士纳出任IBM总裁,采用IPD对IBM的产品开发模式进行了变革,并取得了巨大成功,IBM5年销售额增长了100亿美元。
IPD的思想来源于PACE模型(Product And Cycle-time Excellence),但IBM更强调跨部门协作的重要性,关注市场驱动,由此形成了自身的IPD流程。
1997年末,任正非带队访美,参观了休斯、IBM、贝尔实验室和惠普等知名企业,其中IBM给任正非留下了深刻的印象。在IBM听了整整一天的分享之后,任正非决定请IBM为华为建设IPD流程。2003年华为在全公司推行IPD后,产品的研发周期缩短了一半,故障率减少了95%,客户满意度持续上升。华为体系化的流程对华为的项目成功有巨大指导作用,这也是国内很多公司喜欢研究和学习华为的原因。很多人做流程管理,也是以华为为案例。
华为和IBM等公司的成功已经说明流程是有效的,IPD是有效的。不论是什么流程,其中三点是核心价值:
第一点、员工的动作被标准化了,对于每个节点的工作任务有了明确的输入输出条件、交付件质量要求。在这样的流程体系下,一个任务优秀员工、或是一个经验丰富的员工可能能做到90分,而普通员工、或者是一个新进团队的员工按照流程要求做,也能到40分到60分、甚至是80分,通过流程人和人之间的差异被弱化了,项目的结果变得有保障了。
第二点、项目任务结构化、工程师团队专业化,在宏大的流程体系中,工作任务被切割到很小的颗粒度,工作线程被分割到很精专的范畴。因此、团队的组织结构和人才模型也必须是与这样的流程体系匹配的,公司用流程培养了一大批在特定产品的特定细分专业领域上水平很高的工程师,他们经过长年打磨技能高超,在特定体系中如鱼得水。
第三点,建立了“认可流程、按照流程执行”的组织文化,所有的员工都对流程价值高度认同,坚持按照流程做事,按照IPD流程描述的研发活动中过一个审核节点是一项非常严肃的事,会有很多不同角色的意见碰撞。工程师按照流程去完成项目中的各项任务,管理者通过检查流程每个环节去管理团队,长年反复训练,团队的执行力就会变得很强,团队擅长按照规则做事。
有一位资深的管理者曾这样说“流程化管理的本质,就是一个去艺术化的过程”。艺术靠的是作家的灵感,很难复制和推广,所以艺术品非常昂贵。但现代化的科技企业要的就是大规模的复制,标准化的交付,所以管理就是要借助流程实现“工程化”,一切基于步骤、数字、事实说话。流程把团队塑造成了纪律性极强的研发部队,一板一眼、持续改进业绩。
硬件产品开发涉及的知识域庞杂、开发周期长、犯错后修改的代价大,因此要通过硬件开发流程把完整的硬件开发活动结构化、标准化。清晰的流程能够帮助硬件工程师规范化的开展硬件设计、开发、验证、维护等各个阶段的工作,明确在硬件产品开发各阶段必须要完成的任务,制定各阶段必须要达成的质量目标。清晰的流程对硬件工程师掌控硬件项目帮助很大,硬件工程师理解了硬件开发流程,并坚决的执行流程里的标准动作,就能做到“有序工作,步步为营”,可以极大提高硬件项目的成功率。让硬件开发不仅仅是依靠工程师的个人经验。
硬件开发活动是需要流程化的,通过流程的帮助提高项目的成功率,但在硬件开发实践中我们也体会到,学习和借用大公司的流程一定要有“就事论事”和“实事求是”的态度,所谓“就事论事”就是要根据自己开发的产品形态和应对市场的特点制定适合自己的流程,而不是生搬硬套;所谓“实事求是”就是要结合自己团队的组织形式和专业分工去做流程化的任务分解,而不是向大公司一样设置很多节点却没有对应的组织去实现,反而形成了人力和资源的耗散。总之,我们提倡深入理解硬件开发的本质,结合自己产品和团队特点做好量体裁衣。
各个公司对硬件的流程的理解和构建不一样,所以对于不同的硬件开发阶段会使用不同的名词,特别是像华为这样公司因为运用IPD流程,会使用一些社会上不常用的名词,例如“概念阶段”,并且会使用一些专有名词比如:“TR4”。如果没有在相应的环境里面长期进行开发活动,会产生阅读障碍。所以我们在撰写本书的过程中,使用更易于理解,更通用化的叫法。[z3] 把硬件开发活动分为立项、需求、计划、总体设计、详细设计、硬件测试、系统集成和验证、硬件维护这几个阶段,在每个阶段继续细化硬件开发、测试活动,整体结构化的逻辑框图如下图所示。
硬件开发流程逻辑框图
(1) 立项阶段
项目立项是硬件开发的开始,好的开始就是成功的一半,在这个阶段我们要写好项目计划书,做到“先胜后战”,把产品和项目的全景在项目开始之前勾勒清楚。立项阶段主要考虑产品形态、市场价值、投入与回报。这个阶段是比较容易被工程师忽略的,但是有些公司没有专职的产品经理负责立项,硬件工程需要充分参与立项阶段的工作,避免项目开始之后,发现供应问题、技术不可实现、市场变化等原因导致项目流产或者项目没有市场等问题。
相关阅读:
硬件产品立项的关键
华为是怎样研发的13——立项
(2) 需求阶段
立项和需求阶段,在流程表述图中呈现出由粗变细的形状,像一个喇叭口,这个喇叭口表达的含义就是“需求收敛”。“做正确的事”比“正确地做事”更重要,需求阶段就是细化具体做什么事情,保障后续开发是在“做正确的事”。在立项和需求阶段,需求都是渐进明细的,这个阶段的投入也是为了在保障后续阶段需求稳定。需求阶段是整个项目的关键工作阶段,团队做好需求收集、需求整理、需求传递和需求度量的规则。通过点对点沟通、会议、工具等方式进行需求分配、在项目中有组织机制保障有序开展需求增加或减少的动作。在需求分析阶段,要充分分析需求价值,保障在需求阶段之后,整个项目就进入了“做正确的事”的阶段了。需求管理是贯穿整个项目开发阶段的,保障需求稳定,保障后续的每一个需求变更是可以带来更多价值的。
相关阅读:
需求设计与需求分析写作
需求变更管理 定义、流程、模板
需求怎么来的?
需求的收集及分析
华为是怎样研发的(19)——需求跟踪
(3) 计划阶段
孙子兵法说“多算胜、少算不胜”,意为作战前计算周密,胜利条件多,可能胜敌;计算不周,胜利条件少,就不能胜敌。计划管理能体现出一个硬件项目经理的把控全局的功力,制定一个合理的计划也要遵循分层计划、渐进明细的原则。硬件经理可以先定目标,做出整体计划,设置里程点,分层细化项目计划;然后跟随项目开展逐步明晰项目计划,找到计划中的关键路径,集中精力管理;在项目开展过程中时刻关注计划执行中的依赖关系,关注计划执行的风险;制定合理的计划的能力也是项目经理对项目细节的把控度、风险的把控度、人员管理能力、项目实施过程中的应变能力的综合体现。
相关阅读:
如何提升硬件交付的速度
如何防止项目计划拖延
硬件项目的计划
(4) 总体设计阶段
“总体设计”在是连接需求到开发的关键环节,对于产品的规格定义、产品系列的档位区格、要有一个系统性、全局化的设计过程。对于复杂的产品我们要做好架构设计,对于海量发货的系列化产品我们要做好档位区分,规格定义和成本核算等工作[z9] ;同时我们还要进行硬件专项分析,完成器件选型,为下一阶段的“详细设计”打好基础。在总体设计阶段通过关键器件选型、预布局、热设计、结构设计等维度,基本确定电路板的规格和形态。
硬件总体设计
硬件的总体设计
硬件总体设计之 “专题分析”
(5) 详细设计阶段
详细设计中要把硬件设计的细节文档化,形成详细设计方案,然后开展原理图和PCB的设计工作。为了保障产品的质量,你需要通过原理图、PCB检视这样活动进行强化产品的质量水平。硬件设计重在细节,归一化、检视这些工作能帮助你把打磨好产品细节,同时也避免犯错。
有些开发流程,例如IPD流程是针对各种产品的通用流程,对于硬件详细设计阶段的一些关键节点没有做明确定义,把流程的角色转换时作为关键节点,例如:开发转测试,测试转生产等。但是硬件开发过程中,一些关键节点是一定要严格把控,才可以进入下一个环节的:启动PCB设计、PCB投板、PCB回板、功能调试完成等关键节点,严格把控进入条件和完成自检可以非常有效的带来项目在质量、进度上的提升的。所以本书会细化讲述硬件相关的关键节点。
相关阅读
硬件详细设计,除了画原理图PCB,还需要做什么?(1)
硬件详细设计,除了画原理图PCB,还需要做什么?(2)
硬件详细设计,除了画原理图PCB,还需要做什么?(3)
《硬件详细设计文档》解析之一 概述
《硬件详细设计文档》解析之二 单板上电、复位设计
《硬件详细设计文档》解析之三 单元详细描述
《硬件详细设计文档》解析之四 归一化审查
《硬件详细设计文档》解析之五 可靠性指标
《硬件详细设计文档》解析之六 可维护性设计
《硬件详细设计文档》解析之七 可维修性设计
《硬件详细设计文档》解析之八 工艺设计说明之 工艺边要求
《硬件详细设计文档》解析之九 EMC设计考虑
(6) 测试阶段
测试是为了发现错误而执行操作的过程,测试是为了证明设计有错,而不是证明设计无错误。测试中我们通过硬件调试、白盒测试、功能测试、专业实验、长期可靠性验证、量产可靠性验证逐步去完成硬件基础质量评估和产品一致性的评估。
硬件测试的关注点:信号质量,电源指标,时钟指标,产品规格功能的实现,性能指标,可靠性,可测试性,易用性等。
产品的零缺陷构筑于最底层的设计,源于每一个函数、每一行代码、每一部分单元电路及每一个电信号。测试就是要排除每一处故障和每一处隐患,从而构建一个零缺陷的产品。测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前设计过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。
随着质量的进一步要求,硬件测试工作在产品研发阶段的投入比例已经向测试倾斜,许多知名的国际企业,硬件测试人员的数量大于等于硬件开发人员人数。而且对于硬件测试人员的技术水平要求甚至有时要大于开发人员。
(7) 硬件维护
硬件维护工作在硬件产品生命周期内持续开展的,在产品完成开发活动前,我们要再对产品的可维护性、可供应性验收一次。产品开始持续发货后,要时刻关注已发货产品的质量表现,还需要关注即将发货产品的生产质量,保障硬件质量水平平稳。
《硬件十万个为什么(开发流程篇)》,我们就从各个阶段的关键工作进行拆解,并深入分析。
整书的目录: