现代工程团队的五个理论

  • João Miranda
  • 陆志伟

2015 年 9 月 25 日

话题:DevOps语言 & 开发文化 & 方法

经过 5 年的任期后,Kellan Elliott-McCrea离开了Etsy。过去的 4 年,Elliott-McCrea 是 Etsy 的首席技术官,在那之前,他是工程部的副总裁。在过去的 5 年内,软件产品和工程团队都经历了翻天覆地的变革。这篇文章宣布着他的离职,同时,Elliott-McCrea 在文中详细阐述了指导他完成那些变革的五个理论。

早在 2009 年,Etsy作为一个大型的手工艺成品在线市场平台,正在奋力向外扩展。但是,Etsy 网站的可靠性比它应该表现的要糟糕的多,其原因主要跟它的架构有关,该架构起源于 DevOps 之前的文化。开发人员,DBAs 和系统管理人员都专注于他们自己的筒仓。由此而引发的部署既大型又罕见。并且开发人员无法接触产品。这就是 DevOps 之前的时代——第一场 DevOpsDays 会议于 2009 年在 Ghent 举行——所以在当时,这就是开发和运营 web 网站最常见的方式。

当 Elliott-McCrea 加入时,变革就已经悄无声息地酝酿着了,所以这也给他提供了一个测试他的理论的机会。

理论 1:我们对软件开发的“一无所知”,应该被认为是一种事实。

构建软件是一个团队努力工作的成果,但是软件开发的大部分工具、流程和思维模式通常是个人开发者完成的。

理论 2:技术是构建它的文化的产物。

文化是构建一切事物的基础。文化允许你以一种松散耦合的方式进行伸缩。并且,文化是你如何行动,而不是如何谈论。

文化并不意味着单一。正如 Elliott-McCrea 所说:“五年前,现实情况表明,更好的软件通常是由那种多元性的团队完成的,这种团队是由彼此互相关心的一类人组成,但是这跟该行业的自我形象却是对立的。”

理论 3:软件开发应该被看作是不断学习和提升的循环,而不是从开始到结束的过程,或者是对正确性的搜寻。

Etsy 每天要进行数十次的部署,这样有利于他们从中学习和提升。有趣的是,Elliott-McCrea 说,“成熟是你懂得什么时候该做出权衡,什么时候不该。”

理论 4:你可以通过全球范围内的优化而不是本地优化建立学习的文化。

通过共享的信念、工具和思维模式,使整个团队同时提升。依赖一些摇滚明星式的程序员,既不是高生产力的最佳解决方案,也不如整体提升一样令人满意。

理论 5:如果你想进行长期的构建,唯一的保证是改变。

你当前的答案要么目前就是错误的,要么很快就会被证明是错误的。所以团队必须不断的提问,假设理论并测试直到找出新的答案。

工程团队变化最明显的方面是,它如何向世界展示自己。这种开放的文化带来了许多开源工具。其中有一些相当出名,比如StatsD,一个指标聚合器,Logster,从日志文件中生成指标。Etsy的展示也成为世界各地许多会议共同的特征, 在展示中,它的工程师从技术和文化方面论及了软件工程的方方面面。Etsy 每半个月,也会在 Brooklyn 的实验室主持嘉宾演讲

查看英文原文Theories for Modern Engineering Teams

DevOps语言 & 开发文化 & 方法