第一部分 树立正确态度
1 聚焦高杠杆率工作
在短短三个月的时间里,Quora研发团队的规模就翻了一番。我们这家创业公司拥有一个宏大的愿景:建立一个供全世界分享知识、增长见闻的问答平台。为了构建这个互联网上的“亚历山大图书馆”[1],我们需要招聘更多的工程师。于是,14名新入职的工程师在2012年夏天挤进了位于加州帕洛阿尔托市中心汉密尔顿大道261号二楼的一间小办公室里。即使装修工人推倒了三面墙来扩大办公空间,也难以容纳所有人的办公桌。
我与Quora的两位联合创始人之一查理·切沃(Charlie Cheever)曾多次会面,为大量新员工的涌入提前做准备。我主动请缨负责新聘工程师的入职工作,所以需要设计出可以帮助每个新员工迅速上手的团队计划。如何在产品每天多次部署到生产环境的情况下确保不中断服务?如何在大量新员工不熟悉代码库设计和规范的情况下保持代码的高质量?如何确保新员工工作富有成效,不会因为迷茫而止步不前?寻找这些问题的答案毫无疑问偏离了我开发软件的常规职责,但却令我非常振奋,因为我清楚地知道有效培养新入职工程师将比我个人编写代码能产生更大的成效。这将直接影响工程团队的半数成员在最初几个月里能够完成的工作量。
我研究了其他公司的入职培训计划,并与这些公司的工程师们一起探讨哪些做法可行、哪些不可行。在团队其他成员的支持下,我为Quora新入职的工程师制订了一份标准的培训计划:每位工程师都要与一位导师结对工作两到三个月,在此期间由导师负责其工作绩效。导师的任务包括:代码审查、制订学习计划、结对编程、讨论设计上的取舍、确定工作优先级,以及就如何与不同团队成员合作提供指导等。导师们还安排了一系列启动任务和项目,以提升新员工对系统的掌握程度。
为了确保新入职的工程师可以在一个共同的基础上起步,我还创建了一份入职培训计划,内容包括一系列共10个经常性的技术讲座和10个codelab。codelab是我从谷歌借鉴而来的一个创意,它用一系列文档来说明产品中的核心抽象是如何设计、如何使用的,以及如何浏览相关代码,同时提供练习来验证工程师对这些核心抽象的理解。通过技术讲座和codelab,我们向新员工阐述了产品代码库与工程重点领域的概况,并教授新员工如何使用我们的开发调试工具。
这些努力获得了回报,那年夏天许多新员工在第一周结束时就能成功提交他们修复的第一个bug或是交付产品的小功能,其他新员工也在不久后就提交自己的第一次变更。在那几个月里,我们发布了一个新的Android应用、一个内部分析系统、一个更好的产品内部推荐系统,并改进了我们产品的智能排序,等等。我们的代码质量一直维持在很高的水平,导师们会定期碰面,探讨如何使新员工的入职流程更加顺利。即使在我离开Quora后,仍然有几十名新工程师继续接受这些入职培训1。这是我们对工程团队所做的杠杆率最高的两项投资。
在本章中,我们首先将定义什么是杠杆率,并解释为什么它是衡量工作成效的标准;然后对提高工作杠杆率的三种方法进行论证;最后,讨论为什么将精力投在杠杆点而非易于完成的工作上,才是提高我们自身影响力的关键。