向华为学习如何做好研发

华为考察

10

参观华为

最近一直在研究华为研发的成功之道。我所在公司和华为有很多相似的地方:公司都非常低调,都是自主知识产权的民族品牌,都自主研发高科技产品,都有非常强烈的创新意识,都是所在行业的佼佼者,都有非常强的国际化意识。现在产品开发主流程NPD-CMMI也是学习和借鉴了华为从IBM引入的IPD演化而来。可以说,华为的产品研发是我们在中国IT界最值得学习、也许是唯一值得学习的。(从全球视野来看,微软的产品研发也是非常值得学习的。)那我们就从现在公司研发的现状和华为的现状来描绘和设想产品研发的美好未来。

1. 市场需求。售前支持、售后支持、销售代表、高层领导、用户访谈、各类展会、市场投标、事业部项目等多种渠道源源不断的接触到用户的各类需求,这些需求都有统一的渠道进入产品研发的需求库中;进入需求库的所有需求都有需求工程师进行分析、处理和反馈。一些紧急的需求通过力量壮大的维护团队得到及时的响应和处理;更多需求则是经过分析、筛选后纳入产品下一个阶段的开发计划中,有些较为长远的需求则纳入到产品规划之中,甚至触发对于新产品的规划和预研。

2. 产品规划。建立和维护了一个3-5年的产品规划,产品规划的信息来源于市场需求、IT技术发展、竞争产品动态等,并进行过了市场细分和财务评估等,明晰了在未来3-5年内,哪些技术将在什么时候普及应用,哪些市场需要哪些新产品去占领,现有产品后续的发展方向和重点是什么。

3. 产品管理。产品的开发不是一段一段扔过去的,随着公司规模的进一步扩大,产品数量的持续增长,每个产品除了有专职的维护团队进行老版本维护、有专职的开发团队进行新版本开发,还有一个能够把市场、研发、售前支持、售后支持、产品制作、乃至财务等都贯穿起来的产品经理。以协调各个职能领域的协调工作,并通过并行工作,大大缩短产品从构思、规划到获取巨大市场收益的全周期。

4. 产品体系和虚拟小组。各个产品不是一个个孤立的个体,而是密切关联在一起的,形成一个紧密的产品体系。用户提出的需求和使用场景,可以通过几个关联的产品非常恰当和顺畅的来实现。产品内部可通过虚拟小组或总体办(华为语)的方式来落实,这样就不会出现一个产品看似满足了某需求,但另一个关联产品没有提供配套的能力,从而导致用户最终无法达到应用要求的情况。

5. 技术预研。在产品规划的指引下,难度较大或关键技术的预研将在项目立项之前提前以技术预研项目的方式开展。等到项目正式立项之后,关键和难度较大的技术都已经攻克,后续产品开发团队的职责是能集中更多资源,在非常短的时间内,把高品质的产品开发出来,并推向市场。

6. 人力资源规划。在产品规划的指引和要求下,产品开发所需要的各个职能领域的主管部门提前做好人员的招聘、选拔、培养和储备,等到项目正式立项时,可以在很短的时间内提供足够数量和质量的合格乃至优秀的人员;让产品开发团队Leader可以专注于产品的开发,而不会为没有合格的人员、甚至没有人员而苦恼和分心。

7. 矩阵扩展。产品研发形成在公司层面的矩阵结构。产品线管产品开发、部门线管能力建设和资源提供。两条线都具备批量复制和扩展的能力。产品线源源不断的能够及时、保质保量的开发出更多符合市场需要的新产品,产品开发团队Leader拥有产品开发的预算和在预算内使用资源的权限;部门线能够源源不断的招聘、培训出符合产品开发需要的人才,部门经理拥有招聘编制、人才培养的预算和在预算内使用资源的权限。

8. 迭代开发。产品以迭代的方式进行开发,每个迭代周期最长也控制在2-3个月内。每个迭代周期开始前,产品开发团队从需求库中维护的待开发需求列表中选择优先级最高的需求进行开发,迭代周期结束时,就可以发布一个能够提供给用户使用的版本。这样只要提出的需求优先级足够高,产品开发团队的力量足够强,就能保证最长在4-6个月之内,需求能够走完从用户提出到满足该需求的产品可交付的全过程。

9. 项目计划与监控。每个产品的开发,都按照项目的方式来开展。有项目主计划、总体进度计划;各个迭代开发阶段,有阶段工作计划;通过WBS分解后的每项原子任务,有详细工作计划。这些计划都通过在线系统中予以呈现和管理。可以随时统计和了解到哪个计划发生偏差、偏差率,以尽早查找原因,把问题和风险消灭在萌芽状态。

 

10. 质量管理。质量从需求的源头就非常重视,每一步都有评审和完整的记录;从需求收集、需求分析、设计需求、模块设计、接口设计、代码实现、单元测试、集成测试、需求验证形成产品工程领域的完整过程。每一个过程都是在事前评审预防问题,而不是事后再解决问题;每个过程传递到下一个过程的质量都是可控的、有保障的。

11. 大规模持续集成。在自动化测试的基础上,进一步实现大规模持续集成。即任何代码的提交,都会引发后台服务器的编译、代码分析和测试,并在很短时间内自动反馈给代码提交人测试和分析的结果。如果存在严重问题,则代码提交失败,需要修改并重复上述过程,直到通过后才能进入产品代码库。

12. 自动化测试农场。在一个硕大的机房内,里面有各种硬件平台、各种操作系统、各种环境配置的为数众多的机器,机器自动获取各个产品每天自动编译的结果,并周而复始的运行自动化测试案例,并把测试结果汇总在一起。从测试结果的分析中,可以直观的了解到产品对各个环境的兼容状况,了解到各个产品的当前质量状况。

13. 度量统计和根因分析。对于各类过程数据、缺陷、问题等进行度量统计,并分析短板、瓶颈和关键所在,分析背后的根源,并寻求解决办法,落实具体措施。通过PDCA(Plan、Do、Check、Action)的循环、通过一轮轮的分析和措施来持续改进。

14. 知识管理。在各类技术研究、产品开发过程中积累的各类知识财富,都有一个统一的地方进行归档和管理。更为重要的是:可以非常方便的进行分门别类的查询和通过关键字的进行查询。经验和能力不再是口口相传,而是以知识库的方式积累沉淀下来,并惠及更多的人员。

15. 信息电子流程。日常办公和产品开发的各项事务,都可以在信息系统中予以开展。加班、请假、因公外出、出差申请等等事务都通过电子方式来进行流转、审批和统计分析。产品开发的计划、交付件、评审、风险、缺陷等等的处理也通过信息系统来流转。不会再到处找领导签字,也不会担心发生丢失,还能方便进行量化的统计分析。

16. 办公环境。产品开发团队能够在一个舒适的环境中办公,不用操心各种不必要的烦心事。不用担心加班时肚子饿了没有一点东西垫腹,不用担心加班太晚回不了家,不用担心空气不流通憋气,不用担心没水喝或水的钙质太高,不用担心一伸胳膊碰到同事,不用担心报销单填写不合格被打回,不用担心机器不够用干瞪眼。

17. 绩效管理和任职资格。工作都有日常的记录,绩效周期中可以得到直接上级的指导和帮助,绩效周期结束时可以获得客观公正的绩效评价。绩效的结果可以直接影响后续的薪酬调整、培训和晋升机会。能够在任职资格体系中找到自己的位置,并明确自己后续努力的方向,以及未来发展的通道。产品开发的成功,在给团队及其所有成员带来巨大成就感的同时,也能带来更多实在的东西。

18. 职业化素质和能力。产品开发团队的人不在多,而在精。每个团队成员都是具备高度职业化素质,具备市场意识、用户意识、质量意识、有高度的责任感和主动性;在所负责的领域,是不折不扣的专家。

产品研发是一个非常复杂的系统工程,任何一点存在问题,都会给产品研发带来影响;产品研发通过近几年的建设,已经从最初的游击队进入了初步的正规军阶段。但我们仍然要清楚的看到,我们距离IT界的先进水平仍然有不小的差距,这些差距就是我们后续努力的方向。也相信通过共同努力,我们可以在各个领域持续的进步,并最终达成产品研发的美好未来。

华为大学

参观华为文章未经允许不得转载:参观华为 » 向华为学习如何做好研发

赞 (0)
分享到:更多 ()