如何证明你不是在开发垃圾?

戳蓝字“CSDN云计算”关注我们哦!

640?wx_fmt=jpeg

作者 | 珍妮兔 

来源| 轻松做软件

需要懂垃圾分类的不仅仅只有家庭主妇和煮夫,还有程序员。

640?wx_fmt=png

如果你开发的功能跑不通,你是在开发干垃圾;

如果你的代码害得别人的功能跑不通,你是在开发湿垃圾;

如果你开发的功能能跑,但你的代码就像一团没有头绪的意大利面,你是在开发可回收垃圾;

如果你的提交造成了系统崩溃,你是在开发有害垃圾。

有的人不以为然,谁还不开发点垃圾?我们不是还有测试吗?有把bug修了不就完了?

好,如果你们老板路过你的工位,问你:

你们现在开发的东西质量怎么样了,什么时候能发?

640?wx_fmt=png

你怎么在短时间里证明,你们这个团队不是在开发垃圾?即,软件质量已经达到稳定,发布可期。

你可能会说,这还不简单,看当前的未解决的缺陷数呀!——未解决的缺陷数小,就一定说明软件质量好吗?

为了回答这个问题,我们先来看一道小学数学题:

640?wx_fmt=png

一个蓄水池,有一个进水管和一个出水管,单开进水管6小时可以把空池注满,单开排水管8小时可以放完,现两管同时开,多少小时可以把水池注满?

假如这是一个污水池,池里的水越多,池子越不干净,池子里的水越少,池子越干净。进水管进的污水,就是我们开发新功能引入的缺陷,出水管出的水,就是我们修复的缺陷。

假如在某个时间点,池子里的污水很少。但如果进水的速度大于出水的速度,那这个池子里的污水其实是越来越多,即使在观察的那个时刻,池子里的污水很少,但池子其实是越来越脏的。

也就是,当开发新功能引入缺陷的速度,大于修复缺陷的速度的时候,软件的质量是还没有达到稳定的,离发布还有一段时间。

而相反的,当开发新功能引入缺陷的速度,小于修复缺陷的速度的时候,软件的质量正在趋于稳定,距离发布也就更快了。

我们可以用一张图,来直观的展示上面说的情况。

640?wx_fmt=png

纵轴是缺陷的个数,横轴是时间。黑色柱子顶端上的每个点,是单位时间(比如说一天,或者一周,取决于时间轴上的时间的刻度粗细)里发现的缺陷个数。灰色柱子顶端上的每个点,是单位时间里解决的缺陷个数。

在开始的时候,新发现缺陷的速度会大于修缺陷的速度,两条曲线是张开的(这一部分没有在上图中体现,是在图中的时间轴还要往更早的位置)。随着时间的推移,开发工作慢慢收尾,修缺陷的速度曲线会“追赶”上发现缺陷的速度,两条曲线开始收敛,直到相交。相交的时间点叫缺陷收敛点,代表这个时间之后,软件质量就稳定下来了,可以期待发布了。

最后总结一下,缺陷趋势图是一个用来快速判断开发中的软件质量的有力工具。这个报表在很多的系统平台,比如JIRA, TAPD都可以自动生成(前提是你的所有缺陷都是录入到了平台里进行管理的),非常方便。

下次你的老板或者产品经理问你,我们还有多久能发,你除了看看剩余没有开发的功能有多少,记得还要看一下缺陷趋势图哟!

参考资料:

Bug趋势图中的一些专有名词 https://blog.csdn.net/not_a_baby/article/details/6799558

图片来自摄图网

640?wx_fmt=png

福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

640?wx_fmt=jpeg

推荐阅读:

  • 做了中台就不会死吗?每年至少40%开发资源是被浪费的!

  • 美女主播变大妈:在bug翻车现场说测试策略

  • 漫画高手、小说家、滑板专家……解锁程序员的另一面!

  • 手把手教你如何用Python模拟登录淘宝

  • 鸿蒙霸榜 GitHub,从最初的 Plan B 到“取代 Android”?

  • 每天超50亿推广流量、3亿商品展现,阿里妈妈的推荐技术有多牛?

真香,朕在看了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你的专属云资源管家!阿里云正式对外发布云解析PrivateZone!

摘要: 近日,阿里云宣布云解析PrivateZone正式对外公测,该产品是基于阿里云专有网络VPC(Virtual Private Cloud)环境的私有域名解析和管理服务,使用户在自定义的一个或多个专有网络VPC中快速构建DNS系统&…

服务器状态down,HAProxy的状态显示DOWN

我相信你已经检查了日志,在那里你可以看到连接进入和正在或未被引导到它们应该连接的节点/服务器。我不知道它是否是一个错字,但我相信你已经包含了db4(haproxy机器)作为节点,对吧?它应该是DB3)检查,如果你还可以从HAP…

Swagger的描述注释配置详解

清单 6. 给 Controller 添加描述信息 Api(tags "用户相关接口", description "提供用户相关的 Rest API") public class UserControllerApi: 可设置对控制器的描述。 表 1. Api 主要属性 注解属性 类型 描述 tags String[] 控制器标签。 description …

当你和天猫精灵对话时,它在想什么?阿里智能对话技术深度解读

摘要: 术语对齐 TaskBot引擎: 核心处理对象是“技能”,我们把技能定义成结构化(querycontent)、垂直场景化的任务,比如实时场景查询、工具类、控制类等QABot引擎:包括KG-QA引擎、QAPair引擎、DeepQA引擎。术语对齐Task…

训练softmax分类器实例_知识蒸馏:如何用一个神经网络训练另一个神经网络

公众号关注 “ML_NLP”设为 “星标”,重磅干货,第一时间送达!转载自:AI公园作者:Tivadar Danka编译:ronghuaiyang导读知识蒸馏的简单介绍,让大家了解知识蒸馏背后的直觉。如果你曾经用神经网络来…

10个业界最流行的Kubernetes发行版

戳蓝字“CSDN云计算”关注我们哦!作者 | Serdar来源 | RancherLabs如果你需要大规模的容器编排,想必Kubernetes毋庸置疑是你的首要选择,这一由谷歌推出的开源容器编排系统近年来发展飞速,大受业界及广大用户好评。尽管如此&#x…

神经进化是深度学习的未来

摘要: 本文主要讲了神经进化是深度学习的未来,以及如何用进化计算方法(EC)优化深度学习(DL)。过去几年时间里,我们有一个完整的团队致力于人工智能研究和实验。该团队专注于开发新的进化计算方法…

通用mapper 如何处理多表条件查询通过list封装(一对多)

实现原理 通用mapper本身的接口方法,默认适用于单表处理,所以多表处理必须去定义xml和专用的pojo类以及mapper接口。为了实现多表关联查询 把调试好的的多表关联查询多表的SQL,复制到在xml中,把参数替换为动态的占位符&#xff0c…

dell服务器怎么看硬件状态,从DELL 2950和DELL R710看服务器硬件

一、CPU1、x86是采用cisc(Complex Instrution Set Computer)架构的处理器,是Intel首先开发制造的一种微处理器体系结构的泛称。X86架构的CPU是目前常用的CPU。2、CPU厂商(Intel、AMD等)及CPU类型(intel cpu系统型号、amd cpu系列型号)。3、Dell R2950支持Intel Xeon…

深度学习的关键术语

摘要: 本文着重介绍了深度学习的一些关键术语,其中包括生物神经元,多层感知器(MLP),前馈神经网络和递归神经网络。对于初学者来说,掌握它们可以防止在学习请教时的尴尬~深度学习已经成为编程界的…

虚拟化精华问答 | 虚拟化技术分类

虚拟化是一种资源管理技术, 是将计算机的各种物理资源, 如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破物理设备结构间的不可切割的障碍,使用户可以比原本的架构更好的方式来应用这些资源。这些资源的虚拟部分是不受现有资源的…

python标准库对象导入语句_Python标准库之Sys模块使用详解

sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. 处理命令行参数 在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称. 使用sys模块获得脚本的参数 复制代码 代码如下: print "script name is", sys.argv[0]…

远程服务器 上传公钥,SecureCRT+Ubuntu SSH服务器的远程公钥登陆

有耐心地往下看,哥是实现了的,并且所有细节会给的相当的丰富哈。Ubuntu: Ubuntu 14.04 LTSopensshWindow10(64位):SecureCRT8.0看网上的列为同牛们说gitssh用,自己搭建git服务器,so嗨,所以行动起来,先给win…

通用mapper如何处理多表条件查询通过list封装(强烈不推荐)(一对一,一对多)

一、思路1:在service封装通过list的组合,强烈不建议,有性能问题,例如:Autowiredprivate StudentDao studentDao;Autowiredprivate Stu_labelDao stu_labelDao;Autowiredprivate CityDao cityDao;Autowiredprivate ClazzDao clazzD…

理解卷积神经网络的利器:9篇重要的深度学习论文(上)

摘要: 为了更好地帮助你理解卷积神经网络,在这里,我总结了计算机视觉和卷积神经网络领域内许多新的重要进步及有关论文。手把手教你理解卷积神经网络(一)手把手教你理解卷积神经网络(二)本文将介绍过去五年内发表的一些重要论文,并…

理解卷积神经网络的利器:9篇重要的深度学习论文(下)

摘要: 为了更好地帮助你理解卷积神经网络,在这里,我总结了计算机视觉和卷积神经网络领域内许多新的重要进步及有关论文。手把手教你理解卷积神经网络(一)手把手教你理解卷积神经网络(二)继“理解卷积神经网络的利器:9篇重要的深度…

工作流实战篇_01_flowable 流程Demo案例

由于群里有些朋友对这个flowable还不是 很熟悉,在群里的小伙伴的建议下,师傅(小学生05101)制作一个开源的项目源码,一共大家学习和交流,希望对有帮助,少走弯路 如果有不懂的问题可以入群:633168411 里面都是…

antd 进行ajax请求,react+dva+antd接口调用方式

一丶 安装通过 npm 安装 dva-cli 并确保版本是0.8.1或以上。$ npm install dva-cli -g$ dva -v0.8.1二丶创建新应用安装完dva-cli之后,就可以在命令行里访问到dva命令(不能访问?)。现在,你可以通过dva new创建新应用。$ dva new dva-quicksta…

基于MaxCompute的拉链表设计

摘要: 简单的拉链表设计 背景信息: 在数据仓库的数据模型设计过程中,经常会遇到这样的需求: 数据量比较大; 表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态、手机号码等等; 需要查看…

2019全球编程语言高薪排行榜登场;余承东正式宣布华为IFA2019 或发布麒麟990;OPPO、vivo和小米成立互传联盟…...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 全新的索尼PS5(图…