[占位符]

的“是的,如果”电源:迭代我们的RFC过程

当我们建立更好的系统,我们一起努力。在squarespace,我们写请求注释文档为一个RFC-当我们正在创建一个新的系统或进行重大变革。 

怎么最赚钱

RFC中把想法变成字。他们强迫清晰:这是很难写的RFC除非你肯定你想要什么样的问题要解决,为什么。他们鼓励笔者想通过他们设计的各个方面,以及建立和文件的决定。 

有一个书面允许设计工程师审查这些其他决定。在评审是否可能有意见的问题,需要在所有的解决,或者工作手法是否会简单些为好。他们观察到的风险可能的项目,缺陷在设计上,或边缘的情况下将无法工作。也许(很少!),他们会认为设计是在各方面都完美和发表评论这样说。

大约一年前,我们开始迭代上我们在基础设施机构使用RFC过程。我们要解决我们的过程中那名都不尽如人意的部分:

  • 设计并不总是得到深层的审查。抱怨发现,一起执行细微瑕疵,或更复杂的比是他们需要的是系统工程师。 

  • 作者当地制造的决策,是良好的,但没有融入让建筑更广阔的画面。两支球队可能会解决相关的或重叠的问题,但没有发现,直到他们会实现的系统也没有很好地协同工作。

  • 审核人员不知道他们应该寻找。他们很谨慎挑剔的,或询问作者的问题这可能有过考虑,但没有写下来“愚蠢的问题”。

  • 这名评审员作者感到打桩批评。当作者发送新的RFC进行审核,他们有时会得到充斥着意见。这是困难的原意就是阻滞剂和那些只是有趣的旁白评论区别开来。

  • 怎么最赚钱 

  • 在审查期间结束作者是不知道。他们不知道什么时候是确定开始实施。

我们采取了三个步骤,每个步骤的逐步改进我们的流程:我们写了一个 RFC自以为是模板,创建 基础设施委员会,并推出 建筑评论.

RFC自以为是模板

作为第一步,我们改写了我们的RFC模板给什么RFC中应该包括更多的自以为是的指导。有,而不是编写和审查设计单独的文档的最佳实践,我们希望把它简单而直观的人做正确的事。 

新模板 你有一个“审批“段,与空间,审批人签字的设计。 ,虽然我们的价值来自于很多人的意见,通过命名的审批,我们清楚准备对处罚决定的谎言:如果审批不说的话,我们就不会开始实施。 

如果我写了一个RFC的这篇博客文章,其标题可能是这样的:

主要作者(S): 蔡健雅赖利
合作者: N / A
创建: 2019年6月14日
最近更新时间: 2019年6月15日
状态: 第一稿。您能给我一个残酷的审查,并告诉我,如果这一主题的作品呢?
怎么最赚钱

名称是|未怎么最赚钱
EVA页。
亚历克斯·G。

其他审核(或多个): 劳拉·约翰,凯文,波林娜,GUISLAIN

我已经添加了EVA和Alex的批准,我将不会继续这方面的工作,除非他们认为这是一个好主意。此外,我已经添加了一些其他的工程师,他们的意见,我尊重了很多。如果他们没有时间复习,这是确定。我不会阻止它。 

审批者说“是”或“尚未”我们要鼓励建设性的意见,所以模板不提示“不”,而不仅仅是否决的想法,最好清除上怎样才能予以批准。 “是”可能带有警告。例如,在审查这篇文章的初稿,EVA可以这样写,“是的,如果你能证明每一次迭代这是一个可用的里程碑。”这种“是的,如果“该设计批准意味着笔者不堵塞,不需要等待审批日后要再次阅读。审批信任他们做正确的事情。此外,它比一台“不”。与审批工作是作者以获得最佳的设计更令人鼓舞的;他们不是把关。

注意 怎么最赚钱 现场的位置:它是免费的文字,我用它来清楚我想要的那种审查。对于第一稿,我可能要告诉我审阅这是否是连个好主意。如果它的重复劳动或似乎没有什么用处,我宁愿要知道之前,我沉了大量的时间到了。可能在不同的设计审批已经有广泛而只是寻找部署风险。公开透明关于状态,我们确保审稿离开评论说,在这个阶段的设计非常有用。 

怎么最赚钱

  • 替代考虑/先有技术:您列出审议的其他途径,为什么他们没有工作。有几乎现有系统的工作?

  • 依赖:你依靠什么其它的系统?他们知道你将要依赖他们?

  • 业务工作:你在手动添加任务和谁做你希望做的工作?或其他工程团队将我们的优秀的客户业务需要做什么人,使这个设计是否成功?拼出你的期望。

这些问题揭示了一些误解和假设。他们还审阅感觉更舒适问问题。如果我们有“现有技术”的部分,例如,我们感兴趣的是,为什么克利里我们能不能就使用这些现有的系统。它可以更容易的审阅简单地强调解决方案。

模板的样板文字:建议批准的某些类别:系统的潜在用户,管理团队,系统,你依靠,评价的内部系统的维护者,但你选择不使用,任何你希望做更多的工作。然而,我们发现,被球队仍然有时会感到惊讶的RFC,他们没有注意到了什么,或者忘记了作者包括它们。这是解决下一个问题。

基础设施委员会

我们需要一种方法来确保每个人的RFC是由那些需要了解他们准备可见。有先例是:我们的产品工程的同事经常开了个会,理事会的后端产品,其中的RFC是由整个组织讨论和审查。而不是发明新的东西,我们认为采用了他们的基础设施和创造理事会,会议每两周在哪里,我们提出和讨论的大多数基础设施RFC的前面。它证明了普遍和踊跃参加,我们总有RFC的一个完整的石板讨论。 

没有解决基础设施理事会所有我们的问题,但。我们有三个RFC的在一个小时内打通,所以没有太多的时间,深审查。由于只有几分钟的时间来评论一个RFC,没有人说:“是的,如果......,”他们只是叫了他们的反对。 

此外,它仍然不清楚有多少重量,以提供这些反对意见。如果有人不喜欢的设计,有人认为否决权?那个人,如果没有对原始文件的审批,并提交确实需要对他们的关注块? 

它带来了它新的问题了。它的恐吓呈现在您的整个组织的面前。不愿意工程师带来的RFC,直到他们被 非常 抛光......到那时笔者是投资的概念和主要的变化是不欢迎。感觉不厚道质疑在一个论坛ESTA大的一个设计决策,尤其是当高级工程师批评别人更多的初级工作。没有人喜欢的感觉在一个拥挤的房间里的前叫了一声。

使用基础设施的设计审查理事会提出RFC作家感觉像跑笞刑他们。这是恐吓。我们需要做的更好。

建筑评论

我们想要的RFC要有深入的审查,但没有受到攻击使笔者感觉。所以我们推出了架构审查,每周两次小组会议在哪里我们大部分的资深工程师的RFC的深入审查。每个主要RFC得到一个小时的会议,并且因为同样的人审查他们的审阅建立这是发生在组织中的所有内容的图片,可以看到重叠或不兼容举措。

最初,只有审阅和文档作者出席架构审查。它没有手感相当不错,虽然。讨论RFC在整个组织已经觉得太大众面前;具有仅仅5个审阅了相反的问题:感觉就像正在取得被秘密决定,虽然我们试图选择一个组,其知识覆盖我国大多数的基础设施,审查委员无法在专家“在烟雾弥漫的房间。”我们所有的系统。我们邀请少数其他人在每次审查参加找到一个平衡点。这些措施包括审阅有时潜在的关键系统的其他用户,技术专家领域,或作者认为有人会带来一个有趣的视角。大会议得到笨重,所以我们的目标是在不超过在房间里十人。

架构审查不包括演示。与会者预计将已经掌握的RFC,他们可能已经有评论线程或它的对话。该部门花费在建议的深入讨论50分钟,同时应包含的反对,问题及注意事项中出现的,使用情况详细记录,风险应该得到缓解,依此类推。

最后10分钟的会议是作出决定。每个人在房间里说,他们很舒服无论搭配建议,或者什么将不得不改变对他们是说给它。最常见的回答是“是的,如果你确保...”。

审阅者可以和你说没有,但是,就像我们的设计模板,这些异议更容易被诬陷为“没有”。建议,虽然有些不会真的工作,以任何形式,大多数的想法是值得探讨的更多,我们有时请作者在迭代回来再次进行审核。我们的目标是找到 大体一致 我们决定:我们正在寻找在集团达成全面协议,但它并不必须一致。

审查后,我们回顾了作为一个建筑审批新增的RFC文档,从会议的链接回笔记。由于票据包括与会者列表,设计现在有一些记录在组织中最资深工程师的支持。笔者可以确信他们不会也被异议感到惊讶,他们已经实现了系统之后。

充分说明是开放给所有工程,并汇总一份文件显示所有的架构审查会议,我们已经有。

结论

架构审查,取得了成功。我们使用的模型做出那样去作为第一语言采用类基础设施建设的重大决策,并切换到GRPC换微服务之间的通信。我们用它做一些新的系统的深层审查,多个团队交叉。告诉我们作者RFC这是一个很好的经验,以及我们在产品设计和内部工程的同事们已经开始使用相同的模型。

我们还有理事会的基础设施,但我们把它变成一个论坛,社区建设和维护。 RFC的作者提出了那里,但现在它是在一个友好的观众面前的机会,分享知识,给能见度良好的工作和实践表达能力。以及呈现的RFC,我们用它来彰显优良的基础设施委员会回顾事件,并提供闪电谈话。我们邀请产品和内部工程团队目前关于如何使用我们的基础设施建设,他们整个工程的链接。我们叫了胜利,我们欢迎新员工,以及我们庆祝的人谁做伟大的事情。

怎么最赚钱

  • 任何新的人呢?
  • 从过去两周的胜利/成就/ shoutouts
  • 从架构检讨什么?
  • 更改/启动/惊喜在接下来的两个星期来
  • 演示,例如,
    • RFC文档
    • 请求帮助
    • 展示良好的尸体解剖
    • 技术讲座
    • 演示
    • 满足产品团队

议会基础设施和架构是我最喜欢的审查会议。检讨彼此的工作写会让我们更坚强的设计和相互学习,以及促进合作和开放的文化。我们可能永远是迭代对我们如何做设计审查,但我喜欢那里,我们已经得到了,到目前为止,我建议这种模式为其他组织。

RFC找到我们的模板 这里。随意在自己的组织中使用它。

我们如何谈论A / B测试结果

我们的基础设施TLS内性能调优的Postgres