开发中的防御措施是危险的吗?

本文是翻译,版权归原作者所有


原文地址(original source):http://www.industriallogic.com/blog/are-your-development-defenses-dangerous/

为了说明防御是怎样让我们遭受危险的,让我们先回到600年前的阿金库尔战役【注1】。

在《Managing the Risks of Organizational Accidents》中,James Reason使用这场1415年英法战役,阐释了今天的高科技术防御是怎样让我们遭受危险的。

阿金库尔战役

在这场战役里,英国军人都是轻装,人数大约只有法国军人的五分之一。法国人有重装盔甲,可以保护他们抵御弓箭和长矛。在战斗中,凶险的地形让法国人的两个侧翼挤在一起。一旦他们到达射程之内,英国弓箭手就用密集的、一码长的、带有钢尖的箭射过来。很多法国人立即在这种攻击中牺牲了,而那些从受伤的战马掉下来的法国人,由于自己盔甲的笨重而无法站起来!英国人很快就赢取了胜利。

无法预见的危险

James Reason对这种问题做了如下总结:

“被设计成应对某种危险的防御,可以让他们的用户遭受其它种类的危险,通常无法被创建它们的人们预见到,甚至用户都意识不到。”

在软件开发中,团队的自动化测试保证了代码按照预期运行,避免程序员因疏忽而带来瑕疵。

那么这种防护措施是怎样让开发者和用户遭受危险的呢?

当自动化测试让开发者带有如下特点时,这种危险就出现了:

这些危险听起来不陌生吧?哪一项是无法预见的?

在最好的情况下,人们从他们的开发防御中找到并移除所有危险。

对于自动化测试,这意味着:

优秀的开发中的防御措施会增加速度、削减压力,从来不会使得要保护的人们处于危险之中。

译文:开发中的防御措施是危险的吗? 》| 腊八粥