2018百合图库总站,香港马会开奖记录香港白小姐免费图库,香港财神爷图库图源,,香港白小姐马报

研发质量管理经验谈

2018-05-11 03:00

  研发管理就是在研发体系结构设计和各种管理理论基础之上,借助信息平台对研发过程中进行的团队建设、流程设计、绩效管理、风险管理、成本管理、项目管理和知识管理等的一系列协调活动。这是百度百科上的定义,不能说没有一定道理,不过却不太实用,很难看出其中的重点所在。

  套用项目管理铁三角的说法,研发管理三大重点则应该是效率、质量和成本。而团队建设、绩效管理、风险控制、知识管理、流程设计、项目管理等等可以认为是辅助手段或者是包含在进度、质量和成本控制中的内容。例如,流程设计应该是效率范畴中要考虑的问题,提升效率,必然要从过程即流程设计着手;而项目管理本身就包含进度、成本与质量,也与之相符。

  成本控制上,在人力资源给定的情况下,研发开销是基本固定的。对于研发成本的控制,更多的是资源是否用在刀刃上,是否做对了项目,研究对了课题,这方面的控制主要体现在公司的战略规划、产品规划,做错了产品、方向,往往是浪费最大的。规划任何一个新产品都需要做到“大胆设想、小心求证、重质量轻数量”,严格立项过程。而且就研发来说,技术积累很重要,过去的成功经验未必能够复制到新的领域,因而进入任何一个新的领域,都需要慎之又慎。这部分的工作,大部分都产生于公司决策层面和产品规划层面,对于研发部门来说能做的比较少。因而研发管理的重点还是在效率与质量上。

  对于效率问题,在《研发之二--过程与方》、《研发之三--敏捷开发》两篇博客中进行过论述。并据此在09年冬天和2010年初进行过实践,取得了较好的效果。因此,可以说研发效率问题可以说已经基本得到了解决,这里就不再继续探讨。我们这里关注的是研发管理的另外一个重点--质量管理。

  研发质量很多时候,会被理解为qa(quality assurance)和qc(quality control),往往归宿于质量管理部门。qc往往关注的是产品而非体系,在软件研发领域对应的就是测试;而qa则建立体系并确保体系按要求运作,涉及到过程内容(流程设计)。qc是通过对质量的结果进行检测、鉴定,防止劣质产品的发布;qa对研发是否符合过程进行控制。通过qa/qc两个环节的配合,确实能够起到一定的质量控制作用,但质量管理单单靠qa和qc是远远不够的,会存在很多问题与漏洞,更重要的是技术经理们在设计、开发环节中进行控制。

  首先,在微观问题上,qa人员由于能力的对研发过程中细节的把握不可能像开发经理一样到位,这就注定了对于流程是否符合的控制,往往是仅仅解决了要做什么的问题,而无决怎么做,做得怎样的问题。“怎么做,做得怎样”,这往往跟执行者的能力相关,仅仅靠流程、控制点是难以达到的。而且过程中的细节问题,很难去全部规范完备、做到滴水不漏,即使真的做到滴水不漏,也必然使得过程过于庞大而导致效率低下。就如同有些sop去规范员工如何写邮件一样,那应该是小学语文老师的工作,不是qa所要关注的点,也不具有可操作性。

  解决怎么做,做得怎样的问题则需要技术经理去控制,而且在控制过程中还需要注意方式方法。例如,开发过程中要求规范编码,包括规范编码风格、采取统一的变量命名方式、必要的注释、抽取公用函数解决重用问题、代码不合理情况下进行重构、设计不足情况下优化设计等等。而这些往往就是qa们难以做到,也非qa人员能力范围之内,即使做了也难以控制好的,这就需要技术经理们的去进行管理、同时灵活把握方式方法。就像王传福所说技术人员往往不善于交际、脾气怪一样,程序员们大部分也都这样,容不得其他人指手画脚,技术经理们当面去指出程序员那里代码写得有问题,很多时候会引来反感。一个相对好操作的方法是:由技术经理或者高级程序员,定期不定期,举行代码分析会,从现有程序中抽取带有典型问题的代码,逐一分析,逐步编码的规则、,讲述过程中对事不对人。讲得次数多了,等大家基本接受这些规则、之后,再进行定期的代码检查。如此开展起来,水到渠成,不会有大多的阻力。

  当然,也有过程关注如何编写程序、如何进行测试,比如说敏捷开发中的极限编程。在大部分的敏捷开发过程中,并未涉及到qa人员,那么这其中的细节控制定然是需要技术经理们去执行的。

  其次,qa也好,qc也好,是基于单一产品或者项目为对象进行的,而现实是一个研发中心往往有很多产品线,那么多个产品线之间关系,是 qa/qc们无法关注到的。在宏观问题上,产品线之间的关系、交换,公用模块的抽取,研发径、实现技术手段的选择等等,这些都质量管理着、业务经理们 (产品规划)能力范畴之外。这部分工作很重要,对产品质量有着重大的影响力,很多有钱的公司,往往请外部的咨询公司来进行规划。比如,浙江移动07年请埃森哲公司进行咨询,花了近200万得到了一份规划报告。不是每个公司都能出得起、会去花这个钱的,那么这就需要技术经理们进行统一的技术分析、技术规划,形成一个蓝图,具体产品的工作开展。

  质量管理是一个涉及到整个研发过程的需要全体人员参与的一项活动,需要质量部门qa、qc人员的努力,还需要需求、设计、开发环节中的技术经理们承担起质量控制的职责,并把质量控制的深入到每个员工的思想中,不断改进过程、方法,这样才能有效的推进质量管理工作,才能建立起高效的质量管理体系。