质量内建Workshop

简介: 大家好,我是阿萨。今天我们分享的内容是质量内建。

一,什么是质量内建?


看到这个题目,大家心中一定有很多疑问?内建是啥意思?今天我来为大家揭开疑团。


再座各位,一定有很喜欢追剧的,10年前一直火到现在的甄嬛传,相信大家都不陌生。5个月全部拍摄好之后,剪辑成70多集,然后每天2集播放给大家。所有剧集都按照导演意思拍摄。


同期还有冰与火之歌,不同的是,它是拍一集,就放一集。一直拍了10年。


类比我们从事的软件开发行业,它也正在悄悄发生变化,传统软件开发模式,瀑布模式,所有需求编码完成才转测试,交付周期半年到1年不等。


现在敏捷行业,最快的提交代码后1小时上线。 也有3天上线的,常见的2周上线。


原来的项目管理铁三角,范围,时间,成本固定的情况下,质量不可妥协。随着敏捷开发的流行,铁三角也变了,变成了价值,质量和约束。在一定的约束下,尽可能的高质量交付有价值的内容给客户。


虽然研发模式发生了改变,但是很多人的质量意识依然没有改变,认为质量就是测试的事情。


我们来看看质量大师,戴明是怎么说的。检查不能提升质量,也不能保证质量。产品造出来后,质量就在那里,检查不能保证质量,只有质量内建才可以保证质量。


那么质量内建是什么呢?质量内建是SAFe四大核心价值观之一。我们先来看看SAfe四大核心价值观是什么?对齐,透明,质量内建和程序集去执行。


讲四个核心价值观之前,先给大家讲一个段子。以前某大厂为了参加某个行业大会,宣传某产品,为了迎合行业大会的主题,需要改造某产品,同时写宣传PPT。宣传PPT里需要产品快照,但是改造的需求需要1个月完成。


该产品线总裁已经明确PPT交付时间,以及产品需要改造的需求。是12月30日完成PPT和改造该需求。总裁给1级部门负责人说12月30日PPT和产品需要交付。1级部分负责人寻思,我改PPT还有审核时间得一个星期。就给2级部门负责人说12月23日需要交付需求和产品,2级部门负责人,想了想自己需要评审和修改也得1个星期,就这样一直到最后一个研发团队,说给你们三天时间完成需求和PPT。研发团队瞬间傻眼了。3天和1个月,这压根不可能的事情呀。


当然这是个段子,大家不要当真哈。


我们继续解释SAFe的四个核心价值观,对齐这个最好理解,就是我们现在每个迭代发布时间,发布内容,谁来完成这些内容的信息达成一致。所有人对这些信息的理解一致。透明,表示项目相关所有信息对项目干系人都公开,当然保密项目除外哈。质量内建,这个用粗俗一点的话来说就是自己的屁股自己擦,不要让别人给自己擦屁股。用测试举例,就是你测试的需求自己负责。bug都自己尽量都挖掘了,不要让客户或者你的下游帮你找bug。让问题在你这里终止。


程序集或者项目集执行,同一个敏捷发布火车上的各个敏捷团队一起交付价值需求。就是各个团队需要按照同样的节奏交付项目群的产品增量。


明白了质量内建的来源后,我们看下质量内建都有什么特点,首先第一个全员参与,项目相关的所有人对质量负责,包括我们的销售团队,所以和相关相关的干系人。所以也可以叫质量共建。 质量内建是敏捷开发中的精益思想的体现。所以它提倡缺陷预防,而不是质量检查。所以测试左移和测试右移也是它的特点。敏捷的核心理念就是快速交付有价值的内容。所以快速反馈也是它的特点之一。


二,为什么要做质量内建?


了解了质量内建的本质和来源后,我们看看没有做质量内建的团队都会有哪些问题。


1.大量技术债务,各种adhoc的需求,各种规避措施,架构不合理的地方,导致产品维护成本增加。


2.新需求开发和修复bug打架。正在开发新需求呢,老需求的bug再等着修复呢,不修老bug,质量无法保证,不开发新需求,交付日期无法保证。


3.无法预期的交付,对客户的响应慢。 看着目标是一条光明大道,其实处处暗藏玄机。


4.团队对质量失去信息。今天有个bug不修复,明天继续不修复,bug越来越多。债多不愁。破窗效应,慢慢大家对产品越来越没有信息。


如果没有质量内建,以上就是软件开发的家常便饭,所以我们很有必要去内建质量。到这,大家一定会想怎么做质量内建,别急,我们先介绍下质量内建做得好的标准是什么?


三,质量内建的衡量标准


如果我们不知道如何去度量一件事情,那么我们一定不知道这件事情做得好坏。比如我们用距离来度量远近,用温度来表示冷暖。那质量内建做得好与不好,怎么判断呢?质量内建是敏捷的核心价值观,那么判断是否敏捷就是看是否可以快速交付。


如何知道是否可以快速交付,那就是快速反馈。所以质量内建做得好的,一定是可以快速反馈质量的。什么意思呢,比如开发提交代码后5分钟,UT完全跑完,代码扫描也过了,100%过了,开发就知道,这次代码没有问题。代码部署到环境后,10分钟API运行完了,后端同学迅速知道自己的质量怎么样了。1个小时UI都跑完了,前端同学迅速得知自己的代码可以上线了。快速反馈有四个准则。短:时间越短越好。快:大量验证,短时间内完成。准: 所有结果都非常准确。改: 快速改进,遇到问题,快速纠偏。持续改进。


如果一个软件产品可以快速给出质量反馈,那么就说明它的质量内建做得很好。质量内建还有5个阶段,大家可以看看我们目前在那个阶段。


第一个阶段:检查,就是有人专门检查上游的结果和产出。 第二个阶段:遏制,代码门禁,代码扫描 第三个阶段:  自我检查,代码规范,防止问题流出。 第四个阶段:预防和告警,通过一些阈值指标来避免流程上的错误,帮助上游。对于不达标的卡停止流程。UT不过,红色告警。 第五个阶段:避免犯错,所有人不接受质量差的理念。通过上游控制质量。质量内建的理念在每个团队成员心中,大家都把问题扼杀在自己的环节内,减少外部检查。质量差就停止流动,直到质量变好为止。


大家也可以对照质量内建的5个阶段看看我们在哪一个阶段


四,质量内建的最佳实践


接下来我们看下如何做好质量内建。有哪些最佳实践呢?首先我们从全流程介绍下质量内建会提倡哪些活动。


需求分析:BDD,AC 和需求实例化。


编码阶段: ATDD,UT,冒烟,架构分析


测试:API,UI,E2E,注入测试,RBT,精准测试


部署:监控和告警


用户体验测试: 用户行为分析,日志记录。


复盘接下来我们看一下SAfe里有哪些最佳实践。质量内建的5个维度,测试左移和测试右移,CI和CD,DOD注意:测试左移和右移,不是用自己的业务水平去挑战别人吃饭的饭碗。而是用自己的专业帮助大家变得更好。质量保障体系里,质量和效率需要同时兼顾的情况,工程团队,(就是看系统要能运行的硬件环境和软件服务)保证软件运行的基础设施良好的情况下,持续集成,持续部署,持续交付,持续度量。再此基础上,通过环境治理,监控和告警,覆盖率平台和度量全景图,让项目的所有问题可追踪,风险可识别,数据可视化,结果可验证。最终做好需求质量,过程质量,交付质量。


五,影响质量内建的5个因素


影响质量内建有5个因素。其中4个正向因素,1个负向因素。正向因素包括,责任意识,业务能力,架构能力,技术水平 这些越强,最终产品质量越好。负向因素是:资源限制。包括人力资源,硬件资源和软件资源。如果想做好质量内建的工作,需要大家在正向因素上多努力,负向因素上去掉限制。以上就是今天的所有内容。

相关文章
|
7月前
|
存储 Java BI
如何通过增强(Enhancement) 的方式给 SAP ABAP 标准程序增添新功能试读版
如何通过增强(Enhancement) 的方式给 SAP ABAP 标准程序增添新功能试读版
92 0
|
2月前
|
BI
如何使用动态 ABAP 程序生成技术,对 ABAP 系统标准的报表行为进行微调试读版
如何使用动态 ABAP 程序生成技术,对 ABAP 系统标准的报表行为进行微调试读版
15 0
|
4月前
|
敏捷开发 监控 API
质量内建Workshop
质量内建Workshop
|
4月前
|
设计模式 敏捷开发 测试技术
质量内建
质量内建
|
7月前
|
SQL 人工智能 中间件
每日一个 ChatGPT 使用小技巧系列之4:使用 AI 工具对 SAP ABAP 代码的编写质量进行打分
每日一个 ChatGPT 使用小技巧系列之4:使用 AI 工具对 SAP ABAP 代码的编写质量进行打分
77 0
|
机器学习/深度学习 人工智能 数据可视化
功能上线 | AI Earth地球科学云平台新增机器学习类函数算子
功能上线 | AI Earth地球科学云平台新增机器学习类函数算子
功能上线 | AI Earth地球科学云平台新增机器学习类函数算子
|
Kubernetes Java 测试技术
|
机器学习/深度学习 SQL Kubernetes
【翻译】开源机器学习流水线工具调研(MLOps)(上)
实施数据科学项目不是一件简单的任务。至少,数据分析工作流程必须定期运行,以产生最新的结果。比如,一份上周数据的报告,或者由于概念发生变化而重新训练机器学习模型。在某些情况下,这类工作流的输出需要作为API公开,例如,一个经过训练的机器学习模型,通过点击REST端点来生成预测结果。 这就需要开发实践允许工作流(也称为pipeline)是可重现、可重复,并且可以很容易地部署。近年来,涌现了大量开源工作流管理工具。由于有太多的选择,团队很难选择最适合他们需求的工具,本文回顾了13种开源工作流管理工具。
|
SQL 机器学习/深度学习 数据挖掘
【翻译】开源机器学习流水线工具调研(MLOps)(下)
实施数据科学项目不是一件简单的任务。至少,数据分析工作流程必须定期运行,以产生最新的结果。比如,一份上周数据的报告,或者由于概念发生变化而重新训练机器学习模型。在某些情况下,这类工作流的输出需要作为API公开,例如,一个经过训练的机器学习模型,通过点击REST端点来生成预测结果。 这就需要开发实践允许工作流(也称为pipeline)是可重现、可重复,并且可以很容易地部署。近年来,涌现了大量开源工作流管理工具。由于有太多的选择,团队很难选择最适合他们需求的工具,本文回顾了13种开源工作流管理工具。
|
SQL 机器学习/深度学习 Kubernetes
【翻译】开源机器学习流水线工具调研(MLOps)(中)
实施数据科学项目不是一件简单的任务。至少,数据分析工作流程必须定期运行,以产生最新的结果。比如,一份上周数据的报告,或者由于概念发生变化而重新训练机器学习模型。在某些情况下,这类工作流的输出需要作为API公开,例如,一个经过训练的机器学习模型,通过点击REST端点来生成预测结果。 这就需要开发实践允许工作流(也称为pipeline)是可重现、可重复,并且可以很容易地部署。近年来,涌现了大量开源工作流管理工具。由于有太多的选择,团队很难选择最适合他们需求的工具,本文回顾了13种开源工作流管理工具。