为什么软件工程治理很重要:降低风险但不拖累速度

  软件工程治理有助于团队做出决策,Sarah Wells 在哥本哈根 Goto 会议上表达了这一观点。她认为治理应该支持价值交付,而不是阻碍它。糟糕的治理会减缓进展并可能增加成本。带有雷达的技术策略可以帮助团队做出更好的决策,与 DORA 能力对齐可以提升他们的表现。

  Wells 将软件工程治理定义为一套原则、实践和工具,帮助团队做出一致、明智和安全的技术支持决策:

通常,治理不包括工具;它更多关注设定期望。但工具提供了一个机会,可以使大家更容易做出正确的选择,来帮助人们做正确的事情。

  治理应该帮助团队交付价值,而不是责备他们,Wells 说。它还应该保持公司的安全、保障、成本效益和一致的发展方向。

  需要与外部团队协调或等待批准的治理可能会对生产力和效率产生重大影响,Wells 说。但人们经常远离这些流程,不考虑他们可能因此失去什么:

没有治理,什么会阻止你发布带有安全漏洞的代码?当你需要时,你能够快速轻松地修补代码吗?

  如果你转向云服务,并让开发人员在需要时启动资源(Wells 提到你应该这样做),那么如果没有治理,就会有服务器本该在几周或几个月前就应该关闭或缩小规模,结果仍在运行,这会浪费你的钱。

  Wells 提到,如果没有治理来让你监督你的软件资产,工程师可能不得不手动处理问题,阻止他们花时间在功能开发上。没有治理来保持技术团队的一致性,你可能会重复构建相同的东西,或者看到团队使用一个即将退出组织的平台,因为他们不知道。

  DORA 能力是与 DORA 指标上高性能和增强技术组织业务成果相关联的实践、流程和工具。这些能力与三个领域相关联:学习氛围;快速流动;快速反馈。我们可以从 DORA 核心能力中学习软件工程治理,Wells 解释说:

任何需要等待另一个团队或个人做某事的治理流程都将影响快速流动和快速反馈。

例如,你可能会发现任何引入新技术的项目都会因为架构审查流程笨重且耗时数周而放缓。

  一些能力直接与治理问题相关,例如,简化变更审批和版本控制,Wells 提到。  

  Wells 认为,我们需要一个技术策略来对齐技术决策并做出更好的决策。这是许多组织没有做到的事情,Wells 说,但当你拥有它时,你需要以多种方式频繁地传达它,以便人们足够了解它,并在做出决策时使用它。

  组织技术雷达也可以提供帮助,因为它显示了组织内已经成功使用或失败的内容——所以团队可以从成功组别中选择,Wells 提到。

  人们想做正确的事情,这里的“人们”包括了那些编写大家都要遵守的政策的人,或者举行 CAB 会议的人,Wells 说。如果你能让这些人与平台或安全工程团队合作,你可以利用他们的知识构建更好的解决方案,她补充说。

  Wells 提到,我们需要记住,如果有人认为他们的工作是运行 CAB,那么取消它将会很困难。然而,如果他们可以将他们的工作重新定义为保持组织安全,就有可能找到更好的方法来做到这一点,Wells 总结道。

  InfoQ 采访了萨拉·Wells,讨论了应用治理实践的问题。

  InfoQ:变更咨询委员会的缺点是什么?

Sarah Wells:变更咨询委员会是由来自业务不同部分的人组成的团队,他们开会审查并接受或拒绝即将投入生产的软件变更。

它们给人一种安全的错觉,但研究表明,大多数变更都获得了批准,问题仍然通过,所以它们并没有减少失败变更的数量。然而,它们确实减缓了团队的速度,我们知道,能够在代码准备好时发布代码对软件工程生产力很重要。

  InfoQ:我们如何构建有效的护栏和政策?

Wells:首先考虑如何将它们构建到工具和流程中,使大家更容易做正确的事情。

例如,我们希望人们将每个新服务添加到我们的服务目录中。将此作为获得唯一系统代码的地方,该代码必须用于标记所有 AWS 资源,促使工程师在正确的时间这样做:也就是当它们即将上线时。

  原文链接:Why Software Engineering Governance Matters: Reducing Risk without Slowing down