亚马逊是如何进行软件开发的?这个访问告诉你( 四 )

检查无处不在,整个生产环节处处都有检查。亚马逊为此制定了各种不同的政策。如果我们可以检查一个流程,那么我们就可以确定它是否遵循了最佳实践。而如果我们能够描述这个最佳实践,那大家就可以针对流程的方方面面制定规则。作为一个组织领导者,我们可以为团队制定规则,例如每个新提交必须达到 70% 的单元测试代码覆盖率才能部署。我们也有针对整个 AWS 部门的规则,例如不能同时部署到所有区域(特殊情况下可以,详情见相关信息)。我们需要使用规则来阻止那些错误的做法。规则在团队级别执行、也可以在部门或公司级别。这种检查能够避免大家犯一些常见的错误。亚马逊通过多年的实践经验积累,已经建立了一个非常有效的工作流程,避免了开发上的很多弯路,开发人员不必再走试错和汲取教训这一艰辛之路了。通过对这个最佳实践的自动化实现,亚马逊保证了每次都能最优地完成全部工作流程。

团队中的开发人员对架构负责,而不再由架构师来完成。一旦团队有了一个架构,就由架构师或首席工程师对其评估。首席工程师的职责是审查和培训,而不是设计架构。安全方面也是如此,安全工程师的角色不是设计安全模型,而是审查开发人员创建的安全模型。测试也是如此。亚马逊花费了很多时间在内部培训上,因为他们希望开发人员能够主导一切。

推荐阅读