- 如何做好一个产品?

- 用户、需求、文化、价值、设计、流程,这些因素缺一不可。

- 那么,如何做好产品的质量管理?
- 人、机器、物料、方法、环境、测量,这些因素同样缺一不可。

能够影响产品质量波动的因素包括如下方面: 人员(Man)、 机器(Machine)、 物料(Material)、 方法(Method)、 环境(Environment)、 测量(Measure),简称人、机、料、法、环、测。此为产品质量管理的5M1E。

最初,5M1E分析法用于生产车间中制造件的质量管理过程中,以期通过作业工序质量的改善,降低成本,提高作业系统的整体效率、质量。在实施了一段时间后,5M1E分析法帮助车间管理者在质量管理方面取得了巨大的成功,随着精益应用在软件行业的范围越来越广,人们逐渐发现,5M1E产品质量管理分析法在软件研发过程中的潜力也是无穷的。

一、人员

在操作人员这一方面,产品质量可能会因操作人员的厌烦情绪、意识不够以及操作动作不熟练等问题,降低产品质量。

同样,在软件研发过程中,也需要在人员方面将质量风险降至最低。那如何管理人呢?

  • 首先,通过宣传、培训 提高研发人员自身的研发技能、业务素养以及研发质量意识。通过研发人员自觉地加强质量意识,从而提高可控性。
  • 其次,加强 研发过程的沟通,让工作透明化,减少工作过程中因沟通不便、流程冲突而产生的产品设计缺陷。
  • 然后, 明确“自管理”,责任具体落实到个人。避免产生将质量和研发割裂的情况,调动起研发人员的积极性,提高研发人员的参与感与责任感。
  • 最后,主动 核实、明确用户需求。避免产生产品设计不能满足用户需求的情况。

二、机器

在机器设备这一方面,设备的损耗、性能检测等方面出现的问题也会对产品质量产生影响。

在软件研发方面,合理使用工具也会提高产品质量,如:

  • 通过项目管理工具,方便查看、管理项目进度、人员状态;
  • 搭建测试管理工具,方便编写及后期跟踪用例、查看测试详情;
  • 善用自动化测试工具,减少人工测试成本,提高测试效率等。

三、物料

实际的产品生产流程中,供应商提供的原材料决定了交付的产品质量,一般情况下,原材料需要标注来源,经过质检合格后才能用于生产过程。

同样,在实际动手写代码前,则需要产品经理厘清需求、设计原型。与传统制造业所打造的大量流水线产品不同,软件产品的需求是不断变化的,如果最初的需求不清晰,或者中途更改的需求没有同步到研发人员的手中,那就无法把控软件的产品质量/价值。

如何把控软件的“料”呢?

一方面是产品经理需要 严格记录需求,评估可行性,做好产品计划。

另一方面,产品经理要为研发人员与实际客户(用户)之间牵线搭桥, 减少需求传递时出现的失真,毕竟,有些需求说着说着就变质了。

四、方法

为了减少流程方法对产品质量的影响,精益生产决定实现“自働化”,也就是在生产过程中加入自动化机器。例如,当流水线发生异常时,机器本身能够感应到并及时停止。通过“自働化”,能够确保安全、保证产品质量。此外,精益生产还会通过“ 尽量缩小批量,快速变换模具”来保证多种类产品的产品质量。

5M1E中的“法”意味着研发团队要足够重视代码规范:不论是命名规范、格式规范、日志规范,还是单元测试覆盖率,都是保证代码质量的有利武器。同时,看到烂代码也应“ 大胆重构,小心测试”。

五、环境

环境,一般指的是生产现场的温度、湿度、噪音干扰、振动、照明、室内净化和现场污染程度等。在确保产品对环境条件的特殊要求外,还要做好现场的整理、整顿和清扫工作,大力搞好文明生产,为持久地生产优质产品创造条件。

软件研发除保证必要的办公环境整洁之外,还有保证虚拟环境的整洁,这也一部分会在“5S管理”一篇中详细展开。在这里想要着重强调的一点是,团队要尽可能地在同一地点办公,进行充分的沟通、交流,避免产生信息孤岛。

六、测量

测量,要注意测量过程中的仪器的选择、测量维度、测量标准等。

不论是传统制造业的测量,还是软件行业的测试,目的都是为了发现问题,证明问题存在,从而使产品尽善尽美。

具体来说要如何去做?

  • 首先要确保测试流程的规范程度:提取测试需求 - 编写测试用例 - 测试执行 - 提交Bug - Bug验证跟踪 - 回归测试 - 验收 - 生成测试报告;
  • 其次要通过各种方法 编写合理的测试用例,如:等价类划分、因果图法、场景分析法、正交分析法、路径覆盖、逻辑覆盖、语句覆盖等;
  • 最后要确保用例的广度和深度,以及测试执行的充分性。

随着各个流程环节的逐渐增加,5M1E产品质量管理分析法能够帮助团队快速厘清是哪一环节出现的问题。但方法起到的只是辅助作用,在实践过程中,我们仍需要融会贯通,不断地优化、改进产品交付流程。

5M1E,软件质量管理最佳解决方案的更多相关文章

  1. 精通Web Analytics 2.0 (12) 第十章:针对潜在的网站分析陷阱的最佳解决方案

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第十章:针对潜在的网站分析陷阱的最佳解决方案 是时候去处理网站分析中最棘手的一些问题了,然后获得属于你的黑带,这是成为分析忍者的 ...

  2. 读《软件需求最佳实践》YOUGAN

    这几天在看<软件需求最佳实践>作者徐锋老师的软件需求培训,三天的课程,虽然原来对需求也关注了很多,自己也做过需求分析和开发的工作,但是这次培训感觉收获还是很多.三天的培训先做个记录,后续多 ...

  3. synergy最佳解决方案——barrier

    synergy最佳解决方案--barrier ​ 不知道大家有没有一套键盘鼠标控制多台电脑的需求,主流的硬件或说软件有大神整理如下: 软件方案: Windows 之间:Mouse Without Bo ...

  4. Atitit 桌面软件跨平台gui解决方案 javafx webview

    Atitit 桌面软件跨平台gui解决方案 javafx webview 1.1. 双向js交互1 1.2. 新弹出窗口解决1 1.3. 3.文档对象入口dom解析1 1.4. 所以果断JavaFX, ...

  5. Atitit 全屏模式的cs桌面客户端软件gui h5解决方案 Kiosk模式

    Atitit 全屏模式的cs桌面客户端软件gui h5解决方案 Kiosk模式 1.1. Kiosk Software广泛用于公共电脑或者嵌入系统,最常用的就是ATM机.自动服务机之类的系统了.,1 ...

  6. Maven WEB 项目使用ProGuard进行混淆,最佳解决方案

    Maven WEB 项目使用ProGuard进行混淆,最佳解决方案 近期公司的Android项目做了混淆,虽说对于保护代码并不是100%的,但混淆后的代码可以使那些不法份子难以阅读,这样也能对代码的保 ...

  7. radio中最佳解决方案

    radio中最佳解决方案 1.html中 <td> <input id="status" name="status" type="r ...

  8. php如何实现定时任务,php定时任务方法,最佳解决方案,php自动任务处理

    php如何实现定时任务,php定时任务方法,最佳解决方案,php自动任务处理 Joe PHP 2012-01-18 定时任务对于php来说一直都是很多朋友的一个难题,但却很多地方都遇到了.比如说:游戏 ...

  9. javascript 解决默认取整的坑(目前已知的最佳解决方案)

    javascript 解决默认取整的坑(目前已知的最佳解决方案) 复现该问题 js在数字操作时总会取更高精度的结果,例如1234/10结果就是123.4,但是在c或者java中整数除以10的结果还是整 ...

随机推荐

  1. 在java中为啥要重写toString 方法?

    在java中为啥要重写toString 方法?下面以一个简单的例子来说明. 先定义一个test5类.并写它的get,set方法. package test5; public class Test5 { ...

  2. Treestar Flowjo 10.6.2 for win64安装破解教程

    Treestar FlowJo v10.6.2是一款极其优秀好用的流式细胞数据分析工具,通过图像分析细胞的各种变化,利用软件自带的分析功能,结合细胞模型创建合理的数据分析平台.本教程提供其安装包.注册 ...

  3. C#曲线分析平台的制作(四,highcharts+ajax加载后台数据)

    在上一篇博客:C#曲线分析平台的制作(三,三层构架+echarts显示)中已经完成了后台的三层构架的简单搭建,为实现后面的拓展应用开发和review 改写提供了方便.而在曲线分析平台中,往往有要求时间 ...

  4. Python实用案例,Python脚本,Python实现帮你选择双色球号码

    往期回顾 Python实现自动监测Github项目并打开网页 Python实现文件自动归类 前言: 今天我们就利用python脚本实现帮你选择双色球号码.直接开整~ 开发工具: python版本: 3 ...

  5. SpringBoot | 3.2 整合MyBatis

    目录 前言 1. 导入MyBatis场景 1.1 初始化导向 1.2 手动导入 2. *MyBatis自动配置原理 3. 全局配置文件 @Mapper @MapperScan 3.1 配置模式 3.2 ...

  6. ArrayList 源码底层实现解析 基于1.8

    ArrayList 介绍 ArrayList是一种线性数据结构,它的底层是用数组实现的,是动态数组.与Java中的数组相比,它的容量能动态增长.源代码里有解释.当创建一个数组的时候,就必须确定它的大小 ...

  7. jmeter参数化时, 中文乱码问题的解决

    参数化文件中文乱码, 可在"CSV数据文件设置"将编码改为"GB2312"即可

  8. RabbitMQ入门案例

    RabbitMQ入门案例 Rabbit 模式 https://www.rabbitmq.com/getstarted.html 实现步骤 构建一个 maven工程 导入 rabbitmq的依赖 启动 ...

  9. netty系列之:对聊天进行加密

    目录 简介 PKI标准 各类证书的后缀和转换 netty中启动SSL server netty中启动SSL client 总结 简介 在之前的文章中,我们讲到了怎么使用netty建立聊天室,但是这样的 ...

  10. 解决docker删除加载失败的镜像报错

    背景: 准备在vulhub复现weblogic反序列化漏洞时报错,环境加载失败准备删除weblogic镜像时报错: unable to delete 7d35c6cd3bcd (must be for ...