- 如何做好一个产品?
- 用户、需求、文化、价值、设计、流程,这些因素缺一不可。
- 那么,如何做好产品的质量管理?
- 人、机器、物料、方法、环境、测量,这些因素同样缺一不可。
能够影响产品质量波动的因素包括如下方面:人员(Man)、机器(Machine)、物料(Material)、方法(Method)、环境(Environment)、测量(Measure),简称人、机、料、法、环、测。此为产品质量管理的5M1E。
最初,5M1E分析法用于生产车间中制造件的质量管理过程中,以期通过作业工序质量的改善,降低成本,提高作业系统的整体效率、质量。在实施了一段时间后,5M1E分析法帮助车间管理者在质量管理方面取得了巨大的成功,随着精益应用在软件行业的范围越来越广,人们逐渐发现,5M1E产品质量管理分析法在软件研发过程中的潜力也是无穷的。
一、人员
在操作人员这一方面,产品质量可能会因操作人员的厌烦情绪、意识不够以及操作动作不熟练等问题,降低产品质量。
同样,在软件研发过程中,也需要在人员方面将质量风险降至最低。那如何管理人呢?
- 首先,通过宣传、培训 提高研发人员自身的研发技能、业务素养以及研发质量意识。通过研发人员自觉地加强质量意识,从而提高可控性。
- 其次,加强 研发过程的沟通,让工作透明化,减少工作过程中因沟通不便、流程冲突而产生的产品设计缺陷。
- 然后, 明确“自管理”,责任具体落实到个人。避免产生将质量和研发割裂的情况,调动起研发人员的积极性,提高研发人员的参与感与责任感。
- 最后,主动 核实、明确用户需求。避免产生产品设计不能满足用户需求的情况。
二、机器
在机器设备这一方面,设备的损耗、性能检测等方面出现的问题也会对产品质量产生影响。
在软件研发方面,合理使用工具也会提高产品质量,如:
- 通过项目管理工具,方便查看、管理项目进度、人员状态;
- 搭建测试管理工具,方便编写及后期跟踪用例、查看测试详情;
- 善用自动化测试工具,减少人工测试成本,提高测试效率等。
三、物料
实际的产品生产流程中,供应商提供的原材料决定了交付的产品质量,一般情况下,原材料需要标注来源,经过质检合格后才能用于生产过程。
同样,在实际动手写代码前,则需要产品经理厘清需求、设计原型。与传统制造业所打造的大量流水线产品不同,软件产品的需求是不断变化的,如果最初的需求不清晰,或者中途更改的需求没有同步到研发人员的手中,那就无法把控软件的产品质量/价值。
如何把控软件的“料”呢?
一方面是产品经理需要严格记录需求,评估可行性,做好产品计划。
另一方面,产品经理要为研发人员与实际客户(用户)之间牵线搭桥,减少需求传递时出现的失真,毕竟,有些需求说着说着就变质了。
四、方法
为了减少流程方法对产品质量的影响,精益生产决定实现“自働化”,也就是在生产过程中加入自动化机器。例如,当流水线发生异常时,机器本身能够感应到并及时停止。通过“自働化”,能够确保安全、保证产品质量。此外,精益生产还会通过“尽量缩小批量,快速变换模具”来保证多种类产品的产品质量。
5M1E中的“法”意味着研发团队要足够重视代码规范:不论是命名规范、格式规范、日志规范,还是单元测试覆盖率,都是保证代码质量的有利武器。同时,看到烂代码也应“ 大胆重构,小心测试”。
五、环境
环境,一般指的是生产现场的温度、湿度、噪音干扰、振动、照明、室内净化和现场污染程度等。在确保产品对环境条件的特殊要求外,还要做好现场的整理、整顿和清扫工作,大力搞好文明生产,为持久地生产优质产品创造条件。
软件研发除保证必要的办公环境整洁之外,还有保证虚拟环境的整洁,这也一部分会在“5S管理”一篇中详细展开。在这里想要着重强调的一点是,团队要尽可能地在同一地点办公,进行充分的沟通、交流,避免产生信息孤岛。
六、测量
测量,要注意测量过程中的仪器的选择、测量维度、测量标准等。
不论是传统制造业的测量,还是软件行业的测试,目的都是为了发现问题,证明问题存在,从而使产品尽善尽美。
具体来说要如何去做?
- 首先要 确保测试流程的规范程度:提取测试需求 - 编写测试用例 - 测试执行 - 提交Bug - Bug验证跟踪 - 回归测试 - 验收 - 生成测试报告;
- 其次要通过各种方法 编写合理的测试用例,如:等价类划分、因果图法、场景分析法、正交分析法、路径覆盖、逻辑覆盖、语句覆盖等;
- 最后要 确保用例的广度和深度,以及测试执行的充分性。
随着各个流程环节的逐渐增加,5M1E产品质量管理分析法能够帮助团队快速厘清是哪一环节出现的问题。但方法起到的只是辅助作用,在实践过程中,我们仍需要融会贯通,不断地优化、改进产品交付流程。