作为我们的一部分新遗物生活“博客系列,我们坐下来罗恩克罗克他是一位杰出的工程师和建筑师。在New Relic,我们使用工程标准来帮助我们更快地构建更完美的软件。Ron解释了New Relic如何以及为什么将其机构知识、最佳实践和经验正式化为“New Relic工程标准”。

New Relic的:为什么工程标准重要,一般都是新的遗物?

罗恩·克罗克的照片

罗恩·克罗克,杰出的工程师和建筑师

罗恩克罗克:随着公司的发展,重要的是要编纂体制知识,以便每个人都能继续受益于它。当组织很小时,分享该公司应该如何建造该公司的故事更容易。但是一旦公司达到一定的规模,写下故事就是一个更好的分享方式。

随着New Relic的发展,我们的组织结构也在不断演变,我们需要一种方式来沟通我们在世界各地不同团队之间的工作方式。我们发现,团队所做的本地决策不一定会影响我们在其他地方已经做过的投资,也不一定会利用其他团队已经学到的经验教训。

因此,将我们每天做的事情编撰成一种方式,帮助我们与团队和新员工沟通,了解我们在new Relic是如何做事的,以确保我们提供了长期的可靠性、可伸缩性、一致性和我们系统的质量。

New Relic的:这些标准包括哪些内容?你能举个例子吗?

罗恩:我们的标准主要专注于使用新遗物投入和在生产系统中成功使用的语言,框架,库,平台,工具和技术。我们专注于在生产中为我们的生产方式 - 我们希望团队做更多的事情,以及我们希望团队做的事情。

这是一个例子:我们记录的标准之一说,如果您与Kafka进行交互,则必须使用我们的Java客户端(和JVM)。当团队与Kafka互动时,我们有事件我们可以绑在JVM上没有运行。这导致我们得出结论,解决这个问题的最简单方法只是为了避免第一的地方。它还使我们能够利用我们在许多团队和服务中对此客户的任何投资。

New Relic Kafka客户端截图

New Relic Kafka客户端

New Relic的:听起来有书面的工程标准意味着球队每次都不要重新发明轮子。这是否加快了开发过程?

罗恩:速度是我们希望从实现标准中看到的最大好处之一。我们期望遵循这些标准将使我们更快地交付客户价值。

拥有工程标准的意义在于帮助团队避免软件开发的偶然复杂性,这样他们就可以专注于基本复杂性正如Fred Brooks在软件工程论文中所描述的那样。

New Relic的:您是否遵循特定模型进行软件工程标准?

罗恩:虽然有许多软件行业标准,从ISO到IEEE和其他,有各种各样的组织方案,但我们喜欢ThoughtWorks对其进行分组的方式雷达技术指南工具进入推荐戒指。所以我们开始通过戒指分组我们的标准:

  • 采纳(是的,您应该这样做,不需要批准)
  • 试验(是的,您可以通过建筑师的批准来执行此操作)
  • 评估(不,虽然您可以这样做,但我们不推荐它)
  • 持有(不,你不应该这样做)

我们喜欢读者应该采取的行动清晰明了的理念,所以我们引入了两个新环:

  • 要求(是的,你必须这样做)
  • 弃用(不,你不能这样做)

这些反映了比采纳和持有的更强的指导。

除了分组之外,我们对我们来说很重要,为什么我们做出了标准。我们希望人们了解我们所做的选择背后的理由。

最后,我们选择打开我们的标准流程。每个标准都是我们GitHub企业系统中标准存储库中的单独的标准文件。Markdown非常容易访问,并且在Github中使它们允许我们进行开放过程。

然后,我们处理repo以利用github页面使我们的自定义新的遗物一个应用程序能够以容易的方式呈现数据,以便人们导航和搜索。

通过针对该存储库的拉出请求引入对标准的更改。实际上,在发布后的标准之后的第一个实质性变化来自一支想要纳入他们所做的事物的团队。

New Relic的:你们在2020年初推出了新标准。你花了多长时间来创造它们?你是如何将它们引进的?

罗恩:它花了大约六周的时间来制作并达成标准的语言。然后我们在释放它们之前与团队一起预览它们。重要的是,每个人都明白,虽然我们正在带走一些自由,但我们这样做了,以便释放他们要为客户提供价值所需的问题。

标准由建筑团队拥有和维护。他们是本公司依赖的技术领导人,使得难以实现与业务目标的长期健康的困难技术决策。

在推出标准方面,我们早些时候决定,除非有强烈的原因,否则我们不会告诉团队重写某些东西,例如需要修复的严重错误。这个想法是影响前进的项目。这删除了很多团队的恐惧,并允许他们了解标准如何改善自己的决策过程。

New Relic的:到目前为止,你看到了哪些好处?

罗恩:有一些。首先,仅仅撰写的标准意味着他们可以在巴塞罗那或波特兰的人或任何人碰巧的人都可以访问。这是团队和组织的一个很好的均衡器。鉴于大流行和对我们如何工作的影响,这变得更加有价值;已经撰写的标准已经到位,在团队中沟通更容易。

另一个好处是,它已经成为我们的架构师帮助他们的团队学习做出更好决策的伟大工具。这是因为他们从标准中学习,并理解我们为什么决定以这种方式处理问题。

我们在工具和库方面的投资也得到了改进。

最后,我们预计我们将看到改进的可靠性作为更长尾部指示器。随着时间的旧部分随着时间的推移,这将在更长的时间内发生。

New Relic的:您可以为想要创建工程标准的其他软件工程组织分享一些经验教训或智慧的言语吗?

罗恩:绝对的!虽然在过去一年里我们学到了很多经验教训,但我想说最重要的经验教训和最佳实践如下:

  1. 写下现实:不要在开始时使标准抱有抱负。相反,使他们非常实用,可以达到鼓励每个人了解和遵循它们。
  2. 对团队的要求是明智的:当我们开始这项努力时,我对团队的建议是限制我们所需的标准数量,并将戒指贬低给我们需要团队所需的少数重要的事情。它很容易超过未资料的任务。我会把我们的有意识的选择,也可以使他们主要在这个类别中向前看。球队不太可能在他们的路线图中有足够的空间进行重写,并要求团队仅仅采用这些标准是一种失望的方法。
  3. 提供非架构师的声音:最初,我们专注于在架构团队中工作,但意识到非架构师的首席工程师也需要参与进来;他们带来了不同的观点。我们的开放进程也有助于引入其他声音。
  4. 广泛和经常沟通:每个人都需要听到为什么需要标准,并减少他们周围的FUD。在整个组织中就我们正在做的事情进行沟通,这有助于架构师在需要推出它时将它推销给他们的团队。
  5. 找一个执行赞助商:与任何更改管理流程一样,您需要一个强大的执行冠军背后的努力,帮助让每个人都对准为什么对公司来说很重要。

New Relic的:工程标准的下一步是什么?

罗恩:我们努力向工程标准发布季度更新,以便随着新的遗物继续创新,继续发展。自从我们介绍它们以来,我们目前正在第三次推出标准。

我们正在做的下一件事正在构建一系列我们的团队对标准的作用。该记分卡还将反映了标准本身,使建筑团队提供某些方向,以便采取标准。虽然这需要一些价值判断,但围绕某些标准的重要性,我们将重点关注影响速度或事件的那些。然后,记分卡将向我们展示是否在更高程度的标准符合性和更少的事件之间存在相关性,例如或更高的速度。

今后,我们将考虑将我们的标准工具甚至标准本身开源。

好奇你是如何成为软件开发领导者或落后者?探索我们研究成果拿我们的评估找出答案。

Tricia Kerr是新遗物的高级技术内容编辑器。查看帖子

有兴趣为New Relic博客写作吗?188博彩体育网址送我们一个球场!!