BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

零缺陷系统的圣杯

| 作者 Vikas Hazrati 关注 0 他的粉丝 ,译者 石永超 关注 0 他的粉丝 发布于 2011年3月3日. 估计阅读时间: 3 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

尽管零缺陷听上去很动听,但真有这种可能吗?还是说这是一个无法实现的目标?很多组织采用“零缺陷的方法”。这是否真的有意义?

Jim Bird认为,100%完美的成本是异常高昂的。一旦团队去除了90%的缺陷,到达了最佳水平,进一步去除缺陷所得的回报,相对于不成正比的成本而言,会明显降低。Jim引用了Ken Beck和Martin Fowler在《规划极限编程》中提到的观点:

但是,对于大多数软件,我们实际上并不期望它是零缺陷的。任何缺陷,一旦发现,要消除它就要花费时间和精力。这些时间和精力本可以投入到更有价值的新功能上。因此你必须决定做什么。

Michael Dubakov有类似的观点,他认为相比零缺陷思想能带来的好处,它产生的问题可能会更多。Michael说,不良的后果包括:

  • 没有足够的勇气去重构复杂、混乱、到处是缺陷的重要代码。
  • 无法做出重要的决策,而会做出风险相对较小的错误决定。
  • 尽其所能不愿承担责任,这会导致滑稽愚蠢的行为。

Michael认为在现实中,在生产系统中有缺陷是很正常的。这并不意味着团队应该自满,不去修正缺陷。但是,这并不代表所谓的“最后缺陷”是一个海市蜃楼。

Jim认为对于需要修正的缺陷,应该加以选择。通过确认缺陷的严重程度和发生频率,团队首先应该确定缺陷对于业务运作的重要性。下一步,则是在修正缺陷前,考虑诸如“修正成本”和“对于系统其他部分的风险”这样的技术因素。

零缺陷的观点天真地假设:修正缺陷总是好的、正确的。但修正缺陷并不总是一件正确的事情,因为对于任何修正,都会有引入新问题的风险。

Joel Spolsky认为,零缺陷并不是字面上代表的意义。它是说在任何时候,在编写新的代码之前,最高的优先级是消除缺陷。

那么减少缺陷的最佳途径是什么?

Mark Windholtz认为测试驱动开发是至关重要的

测试先行的编码是实现零缺陷目标的基础。测试先行的编码方法,要求在编写生产代码之前,先编写自动化的单元测试,而编写测试代码的时间周期是5~15分钟。

同样地,为了减少缺陷数目,Michael Dubakov建议结合使用TDD、持续集成、自动化回归测试、根本原因分析和高水平的开发技能。

Rolf Gotz提到了开发零缺陷系统的十大原则。其中几条包括:

  • 客户与软件开发人员互敬互爱。
  • 需求的范围要小,要简单,逐步增加。
  • 优先关注高价值的需求。
  • 验收标准是最重要的。
  • 问题本身是第一位的(然后才是需求)。
  • 优先考虑性能需求。

因此,尽管系统应该只有极少数缺陷,但零缺陷是一个永无止境的追求目标。关键在于要了解何时应该停手。就像Jim建议的:

要了解何时停止修正缺陷,何时到达了收益逐渐降低的关口,何时应该把精力集中到更重要的工作上,并不是一件简单的事情。知道哪些缺陷要修正,而哪些不要,或者哪些缺陷是目前不能或者不应该修正的,都不是简单的事情。而且有时候你可能是错误的。

查看英文原文:The Holy Grail of Zero Defect Systems

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

零缺陷系统等于自掘坟墓 by 张 宝华

无论是中国传统道家理论,还是马克思辩证法都提到过“发展是硬道理”。要以变化的角度审视世界,当前的系统拥有的功能属性集合N,其缺陷因素集合M<N,切M为NULL,但是如果当前的系统需求要添加新功能,那么|N|就会变大,二系统内的属性是互相联系的,这会给原来的系统产生不可控制的缺陷,而弥补这些缺陷的所需要的时间将是难以估计的,除非系统不升级,而不会更新是系统最大的缺陷。零缺陷系统是个悖论,就像0码平台一样。

所以,洗洗睡吧!!>

Re: 零缺陷系统等于自掘坟墓 by 熊 节

I simply copy my reply on the original post:

"Zero Defect" actually means "finding root cause of any defect and improve the process so that similar defect could never happen again".

It's non-sense talking about if it's worthy or not to fix each and every bug. It's all about recognizing the ineffectiveness and inefficiency in your production process and improving.

Re: 零缺陷系统等于自掘坟墓 by xu heng

物理学的测不准原理,两个互斥的值,如果一个非常精确,另一个就变的无限大了。

“零缺陷系统”的最佳实践 by lian peixun

这里作者提出“零缺陷系统”的一些好的实践方法。并不是要让大家去追求所谓的零缺陷系统。良好的实践对于提高系统的质量是非常重要的。

零缺陷这种口号上的东西弊大于利。 by 张 国春

企业决策是杆旗,它怎么指,下面就会怎么干。就算“零缺陷”想体现的是种精益求精的管理理念。但到基层员工那里,往往就因为“零缺陷”几个字,在临交付时通宵达旦,头病医头,脚病医脚。对缺陷的分级和各级别相对数量的管理要更实际。有人可能认为上面放松一寸,下面就会马虎一尺。其实也不尽然。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

5 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT