@lsmn
2017-04-12T20:38:54.000000Z
字数 1647
阅读 2125
敏捷
安全失败
在复杂的环境中,可以使用安全失败实验探测、感知和响应。你必须知道成功和失败分别是什么样子,为了应对潜在的失败,你需要能够抑制或增强探测的效果。安全失败实验可以帮助你处理风险和不确定性,了解并保留选择的余地。
在复杂的环境中,可以使用安全失败实验探测、感知和响应。你必须知道成功和失败分别是什么样子,为了应对潜在的失败,你需要能够抑制或增强探测的效果。安全失败实验可以帮助你处理风险和不确定性,了解并保留选择的余地。
Liz Keogh是一名独立的精益&敏捷顾问。在2017欧洲测试大会上,她谈论了安全失败。InfoQ正以Q&A、综述和文章的形式对大会进行报道。
在开始阶段,Keogh简要介绍了Cynefin。她指出,大多数IT活动都处于一个你可以使用安全失败方法的复杂领域里。对于这种方法,她在博文“面向开发人员的Cynefin”中介绍过:
在一个复杂的环境中,你探测、感知和响应。你安全地做一些可能会失败的事情,那会让你了解你需要作出响应的环境,并改变环境。这是高效反馈、风险与创新之地。
在这个领域中,由于我们探寻的结果一直处于变化之中,我们不能仅仅套用我们的专家实践就期待着成功。我们必须根据我们了解到的情况修改我们使用的实践方法。在这个领域中,我们有突发实践。
敏捷选择就是因为这个领域出现的。我们无法提前将一切都准备就绪,因此,取而代之,我们开始在我们的流程中创建反馈循环。
在InfoQ的综述报道“使用行为驱动开发进行实验”中,Keogh说明了如何测量复杂度并划分成1到5五个等级:
5.以前没有任何人做过
4.其他组织的人以前做过(可能是竞争对手);
3.本公司的人以前做过;
2.本团队的人以前做过;
1.我们都知道怎么做。
你可以将这些复杂度等级映射到Cynefin上。等级1属于容易领域,等级2和3属于复杂领域,而等级4和5属于困难领域。
Keogh建议,我们从最新的、有风险的东西开始。这种方法可以帮助你在你和利益干系人之间建立信任,因为他们通常都担心风险,并希望看到它们被解决。如果你的利益干系人不信任你,那么,Keogh建议,为了取得他们的信任,你可以出色的完成一项复杂度为3的任务,而不是复杂度为4或5的任务。
安全失败探测需要一种机制,可以了解什么成功执行,什么正在衰退。按照Keogh的说法,因为你不知道将会发生什么,所以你必须能够抑制或增强探测的效果。安全失败不是要完全地避免失败,但你需要能够处理潜在的失败。
早些时候,InfoQ采访了Tiago Garcez,请他介绍了安全失败实验:
(……)在开始任何存在一定风险的活动之前,务必使用你知道成功什么样失败什么样的受控实验,那样你就可以评估潜在的解决方案或者推进方法。这种方法可以避免高昂的失败成本或者关键任务失败,同时,它还提供了学习的机会(你是否用一致的方法构造了实验)。
Keogh表示,在存在高度不确定性的场景中,提供一致性,而不是各种测试。在这种情况下,“测试”存在不确定性;它们是可能会发生什么的例子。但是,测试人员仍然要非常擅长提出这样的例子,那种心态至关重要。
Keogh提到了Olav Maassen和Chris Matts在其著作“Commitment”中所描述的有关“真实选项(Real Options)”的工作。按照Keogh的说法,实验是一种保留选择余地的好方法。例如,当出现问题时,回滚就是一个选项。
Keogh还提到了Pachinsky原则:
- 发现新思路,尝试新东西;
- 在尝试新东西时,务必在失败不易造成破坏的范围内进行;
- 寻求反馈,并在这个过程中从失败中学习。
在总结她的演讲时,Keogh提出了两项寻找安全失败方法的建议:
- 使用Cognitive Edge提出的“仪式性异议(ritual dissent)”,这是一种通过质疑检验和强化想法的技术;
- 如果你想知道某个东西是否是失败安全的,就“请教测试人员”。测试人员在这方面非常擅长。