零bug策略,会不会本身是个bug?

来自: 开源中国(微信号:oschina2013),原文链接

如今软件开发迭代频繁,随之而来的是产品质量难以保障,用户一天天被动找到 bug 而骂开发,开发要么被拉去祭天,要么拉慢开发新功能的进度条,分出时间精力处理 bug。这已经成了软件开发行业的一大难题,有什么解决方案呢?

企业生产力解决方案提供商 Workiva 的 CTO 提出了一个“零 bug 策略”—— Zero Bug Policy,Workiva 软件工程师 Kevin Sookocheff 在博客中介绍了该策略。

零 bug 策略只有一个要点:所有 bug 的优先级高于所有功能的开发或改进。这也就意味着,其实不存在所谓的 bug 优先级、严重 bug 或小 bug,一个 issue 要么是 bug,要么就不是 bug。而如果它是一个 bug,开发人员就需要在进行其它工作之前把它修复。

零 bug 策略在提高产品质量方面非常有效,Kevin 介绍,这种策略可以保持开发团队对 bug 的敏感度,从而能够对用户体验感同身受。

这一点其实是思维惯性上的转变,当“出现 bug,导致产品质量下降,解决 bug”这一思维过程变得更加固化,那么对于产品质量的期望值也会相应改变,可能以往出现 25 个 bug 那这一周就值得庆祝了,现在的要求就是只出现 10 个 bug 才算“好周”。这样会产生良好的编码规范。

除了改变开发团队对用户体验和产品质量的预期之外,零 bug 策略还有许多其它优势。

降低开发成本

如果一个 bug 报告等了两个月再来解决,时间隔了这么久,再去查看相应代码的时候可能都忘记了它的逻辑,或者需要重新去学习一遍相关内容。

另一方面,可能你正在查看的是别人的代码,而那个人不在现场,可能去度假了,那么跟进这个 bug 就需要花费大量时间与精力去调试、解决并验证。采用零 bug 策略就不存在一个 bug 等待两个月才去解决的问题,可以避免这样的开发成本开销。

更好地安排开发周期

如果剩下的只有新代码,那么你的日程安排将更精确。

— The Joel Test: 12 Steps to Better Code

开发者很难估计修复一个 bug 需要多少时间,也很难预测修复 bug 对产品发布计划的影响有多大。通过实施零 bug 策略,期望得到无 bug 的代码库,那么就可以消除这种不确定性,从而可以更容易预测新功能的开发时间,更好地安排开发周期。

提高敏捷性

没有 bug 的情况下,可以随时以高的质量将产品交付给客户,这使得公司可以快速响应不断变化的市场需求。

这种敏捷性的提高其实与上边提到的更好地预算开发周期的能力密切相关,从软件开发中消除了修复 bug 的不确定性,那么就可以在更短的时间跨度内提供有意义的新功能或功能改进,从而提高了开发整体的敏捷性。

提高客户满意度

前边说的这些优势其实都可以指向提高客户满意度,但更为关键的是,如果产品开发中将 bug 视为高优先级,就直接意味着公司重视客户及其用户体验,这对于保持客户对公司和产品的高度信任有重要影响。

虽然每个 bug 可能都不是什么大问题,但随着时间的推移,累积起来的问题会侵蚀掉客户的信任,许多公司也正是在这样的情况下黯然收场。

推荐↓↓↓
程序员的那点事
上一篇:还在用网盘给别人分享文件? 下一篇:编程语言 Erlang 发明人 Joe Armstrong 去世