现代工程团队的五个理论
经过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的实验室 主持嘉宾演讲 。