敏捷方法具有创造伟大结果的潜质,但它并不能够保证达成伟大结果。实际上,轶事证据表明,只有小部分采用并适应了敏捷方法的团队和组织机构,能够达成这些伟大结果。这是因为成功还有一些隐性条件,而安全性似乎正是其中之一。
让我们从头开始。什么情况下敏捷方法能产生伟大结果?答案是当团队能够加速学习步伐的时候。这份 2007 年的报导如此写道:
敏捷实践,从测试驱动开发和持续集成,到迭代和回溯,共同组成了一个帮助团队学习得更快的链条。通过反复运用种种实践,敏捷团队加速了学习的过程,直面软件工程的瓶颈。我们可称之为“科学方法”、“持续改进”或者“检验一切”。
慢慢地,这种观点围绕着敏捷社区找到了自己的出路,而行为驱动开发(BDD)的主要作者 Dan North 在题为蓄意发现的文章中写道:
“学习是一种限制”,Liz Keogh 与我分享了她最近遇到的某个思维实验。回忆一下我们团队最近完成的一个重要项目或一项工作(最好是耗时数月的工作)。它从启动到交付花了多长时间?现在想象一下我们将要重复做同样的项目,拥有相同的团队和组织约束,一切都是相同的——除了团队已经熟知任何他们从项目中学到的内容。那么这一次通过各种方法完成项目需要多长时间?
停下来回答一下这个问题。最终,宣称完成重复项目大约需要 1/2 到 1/4 时间的答案并不罕见。由此引出了“学习是一种限制”(注:作者实际上是要说明,无知才是阻碍,我们需要通过学习来克服它)的结论。
在 2010 年,这一领域中的许多领导者开始探寻实践之外的东西;他们开始在人际动力学和团队 / 组织机构的文化中寻找成功的关键。其中的一项理念似乎根植于安全,并作为支持加速学习的基本属性。
Scott Belware 在 2010 年的 Workplace Safety for Software Developers中,描写了在软件开发组织机构里,冒险的负面影响。
而 Daniel Mezick 在《文化游戏》一书中,描绘了学习文化中安全的必要性。在 InfoQ 的采访中,他表示:
安全是社交学习或我称之为部落学习的基本要求。因此,它需要一个管理者重点关注的领域,并更深入的学习。在这本书中,我解释了如何及为何低安全水平与社交学习的低水平有关联。低学习水平调节在面对变化时能够适应多少。哈佛商学院教授 Amy Edmondson 的研究显示,心理安全,社交学习水平,参与水平,及生产力水平,都是有关联的。这就是为什么我们必须特别注意人类行为的动态。
今年, Joshua Kerievsky和 Amr Elssamadisy 都撰写博客文章,探讨了这样的话题:软件开发的新观念如何从安全角度,为何时一切正常、何时出现问题带来了新的曙光。在技术安全(Tech Safety)中,Joshua 写道:
技术安全是无处不在的驱动力,就像呼吸一样。它不是一种流程或技术,也不是一项优先事项——因为它不会被其他优先事项所取代。对技术安全的评估意味着持续改进以下各方面的安全性:流程、代码库、工作场所、关联关系、产品和服务。它是通往卓越的道路,而它自身并不是一种目标。它影响那些我们注意的事情、我们努力奋斗的工作以及我们的组织机构如何运行。
在 Is it Safe to Fail?中,Guy Nachimson 介绍了 Christopher Avery 的责任流程模型、非暴力沟通,以及Jim McCarthy 的核心协议,并将它们与创建生产伟大软件的安全文化联系在一起。
最后, John Krewson认为,尽管技术安全(Tech Safety)是一种崇高的理想,但它注定失败并且将失效:
这是一项崇高的理念,我满心相信它的价值。然而,在技术安全理念的表面之下潜藏着一个问题,可以称之为“风险平衡”。风险平衡是 Gerald Wilde 在 1994 年发展出的一项理论,该理论的观点在于:我们并不会省去风险,而是在消耗它。换句话说,当我们落实某种方法来让自己的生活更安全的时候,我们用它来为生活中其他领域更危险的行为进行开脱,因而从整体上来说我们并不会变得比之前更安全。
观看和创建安全文化和环境,是否真的将会流行起来——作为创建更有效的软件开发团队和更好的软件的方法——还有待观察。尽管如此,它实际上是一个值得探索和尝试的主题。关于这些, 你的经历又是怎样的呢?
评论