第1章 硬件开发流程概述

第1章 硬件开发流程概述

20世纪80年代末,IBM是有史以来盈利最多的公司之一。但进入90年代后,IBM遇到了严重的危机,1993年亏损80亿美元,几乎解体。危难时刻,郭士纳出任IBM总裁,采用IPD(Integrated ProductDevelopment,集成产品开发)对IBM的产品开发模式进行了变革,并取得了巨大成功,IBM 5年销售额增长了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"。如果没有在相应的环境里面长期进行开发活动,会产生阅读障碍。所以我们在撰写本书的过程中,使用更易于理解、更通用的叫法,把硬件开发活动分为立项、需求、计划、总体设计、详细设计、硬件测试、硬件维护这几个阶段,在每个阶段继续细化硬件开发、测试活动,整体结构化的逻辑如下图所示。

1.立项阶段

立项是硬件开发的开始,好的开始就是成功的一半,在这个阶段我们要写好项目计划书,做到"先胜后战",把产品和项目的全景在脑子里勾勒清楚。立项阶段主要考虑产品形态、市场价值、投入与回报。这个阶段是比较容易被工程师忽略的,但是有些公司没有专职的产品经理负责立项,硬件工程师需要充分参与立项阶段的工作,避免项目开始之后,发现因供应问题、技术不可实现、市场变化等原因导致项目流产或者项目没有市场等情况出现。

2.需求阶段

立项和需求阶段,在流程表述图中呈现出由粗变细的形状,像一个喇叭口,这个喇叭口表达的含义就是"需求收敛"。"做正确的事"比"正确地做事"更重要,需求阶段就是细化具体做什么事情,保障后续开发是在"做正确的事"。在立项和需求阶段,需求都是渐进明细的,这个阶段的投入也是为了保障后续阶段需求稳定。需求阶段是整个项目的关键工作阶段,团队要做好需求收集、需求整理、需求传递和需求度量的规则。通过点对点沟通、会议等方式进行需求分配,在项目中有组织机制保障有序开展需求增加或减少的动作。在需求分析阶段,要

充分分析需求价值,保障在需求阶段之后,整个项目就进入"做正确的事"的阶段。需求管理贯穿整个项目开发阶段,其目的是确保需求稳

定,保障后续的每一个需求变更可以带来更多价值。

3.计划阶段

孙子兵法说"多算胜、少算不胜",意为作战前计算周密,胜利条件多,可能胜敌;计算不周,胜利条件少,就不能胜敌。计划管理能体现出一个硬件项目经理把控全局的功力,制订一个合理的计划也要遵循分层计划、渐进明细的原则。硬件经理可以先定目标,做出整体计

划,设置里程点,分层细化项目计划;然后跟随项目开展逐步明晰的项目计划,找到计划中的关键路径,集中精力管理;在项目开展过程

中时刻关注计划执行中的依赖关系,关注计划执行的风险。制订合理计划的能力,也是项目经理对项目细节的把控度、对风险的把控度、

人员管理能力、项目实施过程中的应变能力的综合体现。

4.总体设计阶段

"总体设计"是连接需求到开发的关键环节,对于产品的规格定义、产品系列的档位区格要有一个系统性、全局化的设计过程。对于复杂的产品,我们要做好架构设计,对于海量发货的系列化产品,我们要做好档位区分、规格定义和成本核算等工作。同时我们还要进行硬件

专项分析,完成器件选型,为下一阶段的"详细设计"打好基础。在总体设计阶段通过关键器件选型、预布局、热设计、结构设计等维度,基本确定产品的规格和形态。

5.详细设计阶段

详细设计中要把硬件设计的细节文档化,形成详细设计方案,然后开展原理图和PCB的设计工作。为了保障产品的质量,需要通过原理图、PCB检视这样的活动提升产品的质量水平。硬件设计重在细节,归一化、检视这些工作有助于产品细节打磨,同时也避免犯错。例如IPD主流程是针对各种产品的通用流程,对于硬件详细设计阶段的一些关键节点没有做明确定义,把流程的角色转换节点作为关键节点,如开发转测试、测试转生产等。但是硬件开发过程中,一些关键节点一定要严格把控,才可以进入下一个环节,如启动PCB设计、PCB投板、PCB回板、功能调试完成等,严格把控进入条件和完成自检可以非常有效地提升项目质量和项目进度。所以本书会详细讲述硬件相关的关键节点。

6.硬件测试阶段

测试是为了发现错误而执行操作的过程,测试是为了证明设计有错,而不是证明设计无错误。测试中我们通过硬件调试、白盒测试、功能测试、专业实验、长期可靠性验证、量产可靠性验证,逐步完成硬件基础质量评估和产品一致性的评估。

硬件测试的关注点:信号质量、电源指标、时钟指标、产品规格功能的实现、性能指标、可靠性、可测试性、易用性等。

产品的零缺陷构筑于最底层的设计,源于每一个函数、每一行代码、每一部分单元电路及每一个电信号。测试就是要排除每一处故障和每一处隐患,从而构建一个零缺陷的产品。测试并不仅仅是为了要找出错误,通过分析错误产生的原因和错误的分布特征,可以帮助开发人员发现当前设计过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性的检测方法,改善测试的有效性。

随着质量要求的不断提高,产品研发阶段的投入比重越来越多地向硬件测试倾斜。在许多知名的国际企业,硬件测试人员的数量大于等于硬件开发人员的数量,而且对于硬件测试人员的技术水平要求有时甚至高于硬件开发人员。

7.硬件维护阶段

硬件维护工作在硬件产品生命周期内持续开展,在产品完成开发活动前,我们要再对产品的可维护性、可供应性验收一次。产品开始持续发货后,要时刻关注已发货产品的质量表现,还需要关注即将发货产品的生产质量,保障硬件质量水平平稳。

相关推荐
ggtc3 天前
通过串口与ModBus硬件设备通信
modbus·硬件
网络研究院4 天前
控制台安全内部:创新如何塑造未来的硬件保护
安全·模型·硬件·观点·未来·创新·发展
清酒伴风(面试准备中......)6 天前
开发流程初学者指南——项目管理
笔记·项目管理·开发流程
Play_Sai10 天前
多端项目开发全流程详解 - 从需求分析到多端部署
软件架构·开发流程·技术选型
Sarapines Programmer1 个月前
【Arduino IDE安装】Arduino IDE的简介和安装详情
ide·物联网·硬件·软件·arduino ide
Android技术栈1 个月前
鸿蒙开发(NEXT/API 12)【请求用户授权】手机侧应用开发
harmonyos·鸿蒙·鸿蒙系统·openharmony·硬件
Android技术栈1 个月前
鸿蒙开发(NEXT/API 12)【硬件(取消注册监听系统导航信息和指令)】车载系统
车载系统·移动开发·harmonyos·鸿蒙·鸿蒙系统·openharmony·硬件
黄卷青灯772 个月前
一台笔记本电脑的硬件都有哪些以及对应的功能
电脑·硬件
LabVIEW开发2 个月前
LabVIEW制系统开发流程介绍
labview·开发流程