技术团队如何招聘和管理,如何避免低效率的官僚作风,来看看Airbnb的经验
Mike Curtis曾就职于AltaVista、AOL、Yahoo、Facebook等一系列硅谷巨头,现在是Airbnb主管工程开发的副总裁。在大公司摸爬滚打了近20年的Curtis应该对大公司的官僚作风和低效率深有体会,也很可能陷入到官僚主义的窠臼中。但实际上Curtis在Airbnb却打造了一支精简而又高效的团队,推动着整个公司的快速发展。
Curtis认为,要建立高效团队,避免低效率的官僚作风,首先要有这方面的意识,然后再按照这个思路招聘新人,为员工创造良好的环境来高效率的工作。Curtis一直坚持着这样的方法,领导着飞速发展的Airbnb技术团队,开展了一系列卓有成效的工作,不仅有效地减轻了繁杂的开销审批工作,而且显著提高了网站的稳定性。 他的制胜法宝就在于:消除规定,而不是做出各种新的规定。
在 First Round 最近举办的CTO峰会上,Curtis分享了一系列实用的技巧,他概括为: “用指导原则代替规章制度。” 。通过这些技巧,Curtis建立起一支迅捷、灵活的团队,不断地发展和壮大。任何快速扩张又不想被官僚作风拖慢脚步的创业公司都可以从这些建议中受益。
首先,Curtis对创业公司中的官僚作风做了定义,他的定义和字典中很不一样:
【官僚作风】 名词:① 阻碍你发展的屁事儿 ② 阻碍工程师开发产品的屁事儿。
对于一个组织来说,人越多并不意味着产出会越多。Curtis认为:“随着组织的规模和复杂程度的增加,组织中个体的生产力是趋于下降的。”随着人数的增加,各种规定和文件会越来越多,进而阻碍产品的快速迭代和发展。
为什么会出现这种情况?Curtis说:“我认为这涉及到人的本性以及人们对问题做出反应的方式。”当我们遇到问题时,不管是服务器宕机还是人际交往出状况,本能反应都是要避免再犯同样的错误。在公司中,避免重复犯错的方法往往就是制定各种规章制度。新的规定需要与原有的规定相适应,各种预防性的措施叠加起来,越来越复杂。很快,人们不论做什么都很容易触碰到此前设定的各种局限,导致效率底下,举步维艰。
要从源头上杜绝此类官僚作风,Curtis给出了两条针对性的措施:“第一,组建一支具有良好判断力的团队,因为你需要能够信任你的员工;第二,通过强有力的原则来指导团队做出正确的判断。”
一、招聘值得信赖的员工,打造值得信赖的团队
为了尽可能减少阻碍公司发展的各种规定,你需要建立一支在规则缺失的情况下依然能做出正确决策的团队。招聘则是实现这一目标最关键的一步。
在你招聘某人时,必须想清楚一个非常重要的问题:“这个人能被未知的事物所激励吗?”
从来没有任何一家公司能够做到完美。当公司出现状况的时候,员工应该积极主动地解决问题,而不是停下来去相互指责,浪费时间。因此,在面试新员工时,留出一些时间考察候选者能否契合公司的这种文化是非常必要的。
很多公司的领导和技术部门负责人为了吸引技术大牛会在公司文化契合方面做出妥协。不要这么做。Curtis建议招聘过程中至少要留出45分钟的时间来考察应聘者能否融入公司的文化。这种文化契合并不是要所有人的思想都完全统一,Airbnb非常重视员工背景和观点的多样化,招聘“文化契合”的人指的是找到既能高效工作,又认同公司使命的人。如果一个人不对公司的成功不够坚定,那他们就是不合适的。
在Airbnb,Curtis发现以下四种步骤对于考察员工的文化契合度面试非常有帮助:
首先让应聘者展现出自己的实力。 在文化考察面试的前15分钟,让应聘者描述一下自己最骄傲的项目。这么做的目的在于了解什么样的事情能够让他们兴奋起来,是技术上的挑战?还是人与人的交往?“试着发掘一下,什么事能激发这个人的干劲。”
然后让他们感到不舒服。 接下来你需要反过来考察应聘者在不兴奋时是什么状态。问问他们经历过哪些艰难时刻,他们遇到过什么失控的情况。Curtis常问的一些问题包括:“描述一下你和管理层意见非常不一致时会怎么办?”以及“说一个你为了赶进度而不得不降低标准做出妥协的案例,你是怎么处理的?”这些问题的目的在于观察应聘者的反应。“候选人会不会愤怒地说‘这就是我离职的原因,这就是为什么那家公司会搞砸了’?还是会讲述自己对他人观点是怎么理解的,问题最终是怎样通过合作解决的?”
标准化你的结果。 单独考察一个人的编程能力很容易,但是如果把一群面试者放在一起,就很难做出准确的比较了。考察应聘者的能力需要更多的时间,但也有一些技巧可以助你一臂之力。Curtis说:“我们会把所有的面试者集中在一个房间,让他们同时审核一些数据包,目的在于把一些主观的东西尽可能标准化、客观化。”
注意应聘者是否被内部人士指点过。 如果应聘者看起来对你们的内部语言有着惊人的了解,那你需要注意了。他可能从以往的应聘者或者媒体报道那里获得过指点。Curtis说:“当你的公司越来越热门,越来越出名的时候,网上关于你们公司的内容也会越来越多。如果应聘者说话时开始引用一些明显是在某处读到或听到的内容时,很可能是有人给他们指导过怎样面试。”出现这种情况并不意味着你要立即拒绝他,但是需要你特别注意,不要让自己被忽悠了。
二、充分利用第一印象
理想情况下,上面的文化契合度考察能够确保你找到与你们工作理念相同而又能带来各种新思路和新视角的人。在他们加入公司之初,则是形成共同理念的另一次重要机会。 Curtis认为: “入职的第一周是为新工程师设定预期的最佳时期。” 他给出了一些引导新员工入门非常有效的方法,做好这几点在将来能够收到丰厚的回报:
1. 提醒新成员他们是在和最优秀的人一起工作。 Curtis说:“我告诉新员工有多少人在应聘这个职位,让他们理解进入公司竞争压力有多大,也让他们知道,自己正在和最优秀的人一起工作。”这种做法不仅能够鼓舞员工的士气,激发他的斗志,还能产生一种紧迫感、使新员工带着强劲的势头投入工作。
2. 强调快速行动的价值。 在Airbnb,Curtis对于新工程师的要求是先发布一些小东西。这样可以给那些之前在大公司复杂体系中工作的人一个调整过渡的时间。事实证明,这种方法对于形成团队共识也非常有价值。“你先写一堆代码,发布出来,了解一下整个工作流程,然后再去做一些更大的项目。”
3. 把不完美当作一种资产,而不是负债。 告诉新员工你希望他是一个能从未知事物中汲取动力的人。Curtis说:“我会告诉新员工,真正能够成功的人,都是能发现不完美,并从中汲取动力的人。”反过来讲,遇到问题不去解决,只会愤世嫉俗和怨天尤人则是一种严重的恶习。
4. 重申团队的价值观。 在组建开发团队的时候,明确团队的价值观是非常有益的。在新成员加入时,你需要向他们说明你们团队的行为准则,不必使用非常严谨的语言,可以随意一些,说明团队价值观是什么,以及为什么有这些。Curtis说:“价值观的解读方式有很多,所以最好给新成员专门说明一下。”
5. 欢迎新员工加入招聘团队。 刚刚经历过你面试的人不久之后也会参与到招聘工作中。所以在他们刚加入的时候就要让他们认识到,招聘是他们工作中非常重要、非常关键的一部分。Curtis说:“你想让他们把招聘和写代码放在同等重要的地位,就需要给他们好好讲清楚招聘的重要性。”
6. 建立起直接的沟通渠道。 要避免官僚作风,必须保持团队内部通畅的沟通,让团队成员知道,他们的意见是可以直达管理层的,并且积极落实这一点。Curtis说:“有时候,新员工会认为所有意见都需要通过顶头上司向上传达,你要告诉他们可以直接来找你甚至更高层的领导,这样他们才知道在公司里可以开放的交流。”
7. 在最初阶段进行一系列的考核。 好的习惯要在早期养成,所以不要认为员工进入工作岗位你就可以放松了。Curtis发现一到三个月是进行非正式考核的最佳时期,他说:“这种考核可以非常简单。我们所做的就是收集几句新员工的同事给出的评价和反馈。”
你给这些老成员提出的问题可以非常直接。比如:“他们在磨合阶段接触不熟悉的代码库时表现如何?”以及“他们遇到了什么问题,是怎么解决的?”
把你收到的反馈和当事人交流一下,这些意见有助于他们更好地融入到团队中去。如果有一些值得关注的批评意见,你也要直接表达出来。和当事人坐下来聊聊,明确提出你的要求。
在员工刚入职时塑造他们的工作方式要容易得多,如果等到一年后定型了可就难办了。
三、组建你需要的管理团队
在招聘管理人员的时候,还需要另外一层考虑。这些人是塑造公司文化、引领公司发展的主要动力。在Airbnb,公司通过一条不太寻常的规定确保管理人员能够做出正确的决策:
“ 我们认为所有管理人员都必须从亲自写代码做起。 如果管理人员对代码库没有足够的了解,他们就无法准确地知道如何让团队更快前进,也不知道团队发展中有哪些障碍。”Curtis说。
毫无疑问,这样的规定会使招聘管理人员困难许多。为此,Curtis也设计出四步的流程,帮助工程师团队找到更适合长期发展的管理者:
明确提出要求。 不要让应聘管理岗的候选人在事后才知道自己不能直接上手项目。Curtis说:“对于有着丰富管理经验的候选人,我会在第一时间讲清楚,他要从写代码开始做起。”
进行编程面试。 做了多年管理工作之后再去处理算法等问题可能会让很多人猝不及防。Curtis说:“那些无法适应编程工作的人很可能在这个环节被淘汰。”对于亲自编程的硬性要求,意味着最终通过考核的人都是能够实实在在贡献代码的人,他们是能够真正理解开发过程的。
试试分组配对。 当然,编程面试不能要求过高,还是应该现实一些。Curtis也能理解:“如果一个人5年都没有亲自写过代码了,那他们在编程面试中的表现就可能很糟糕。不过,他们对算法的反应跟应届毕业生肯定还是不一样的。”分组配对是验证一个人能力的有效方法。Curtis说:“如果你从面试者自己编程的环节得不出太多结论,但你的直觉告诉你他可能是一位优秀的管理者,那你可以试试分组配对。”给应聘者一个机会,让他们和现有员工协作完成一项任务,看看能不能发现他们身上的闪光点。通过这种方式,你可以看出一个人的知识深度,也能了解到他和其他工程师一起工作时是什么状态。
多留出一些时间。 你的目的是给管理人员一个机会去真正接触代码库,所以不要着急。让管理人员先在公司里6个月基础开发工作一般是没有问题的。Curtis说:“这么做的真正目的在于让他们自己发布一些东西,并在代码库里能够留下自己的印记,然后再走上管理岗位。”
四、用指导原则代替规章制度意味着什么
到现在为止,经过仔细的招聘和培训之后,你已经组建了一支具有良好判断力的团队。那么该如何管理团队才能更加高效呢?Curtis认为:“现在,你可以开始通过更多原则性的指导来管理团队了。”Curtis给出了Airbnb的几条成功经验,来说明什么是“用原则代替规定”:
旧的规定: 所有开销必须经过预先审批。
新的原则: 在支出一笔钱的时候,想想如果是你自己的钱,你会不会犹豫,如果会,那就跟你的领导请示一下。
审批各种开销报告是一件非常繁琐而又十分费劲的工作。Curtis把沉重的规定换成了一条更加简单易行的指导原则,以500美元为限,500美元以下的支出由员工自己判断。结果怎样呢?公司并没有出现乱花钱的现象,但是却节约了大量审批的时间。
旧的规定: 没有领导的同意,工程师不得开发新的后端服务。
新的政策: 在经过技术领导小组认可的新架构内,工程师可以自由开发后端服务。
审批各种新的开发项目也是一件耗时耗力的事情。“你必须得向领导解释你想做什么,说明你的理由,让他们理解,经他们同意后才能执行。”因此,Curtis决定尝试一些新的方法:高级工程师建立一个小组,开会决定一些对公司发展至关重要的开发框架,形成一系列指导文档。这样,其他工程师就可以在这个框架内自由地进行后端服务的开发。Curtis说:“超出这个架构也没关系,只要和领导小组协商过就可以。”。
这项改革实施的过程比其最终结果还重要。Curtis说:“不再是由我来给大家发邮件说:‘你们开发新服务必须遵守这些规定’,而是由一群同事聚在一起做出判断。这种方式在团队内部形成了一种压力,使得员工的开发保持在一定的范围内,专注于解决团队的技术问题。”
五、把公司的变化固定下来
我有一个理论:只有通过不断的强化和团队内部人际压力才能对公司文化做出彻底的改变。
几年前,Airbnb的几乎所有代码都没有经过同事审核就上线了。团队发展十分迅速,但是网站的稳定性却很差。Curtis知道,是时候推行同事审核机制了,但是该怎么做?他说:“这是我需要做出抉择的时刻,我本可以写一封长长的邮件群发给团队成员告诉他们:‘你们写的代码必须经过同事的审核才能上线。’但最终我采取了另一种方法。”
以下是Curtis推动团队工作方式转变的具体步骤,你要转型的方向可能不同,但这些方法可以当作模板来参考:
确保新政切实可行。 在你建立新秩序之前,一定要确保它在你现行的体系中是切实可行的。Curtis说:“我们当时进行代码审查的很多工具都十分笨重,用起来非常痛苦,所以即使人们想要进行代码审查也需要耗费大量时间。”所以,Curtis先改进了审查所需的工具,然后再推行新政。人们没法完成做不到的事情。如果你不考虑到这一点,工程师就会感到非常的困惑和不满。
树立正面榜样。 集中一群广受尊敬的工程师,为大家树立榜样。在Airbnb,Curtis让几位高级工程师开始要求代码审核。“这种方式创建了一系列代码审核的范例,为团队树立了正面的榜样。”
利用团队内人际压力。 在推动公司文化转型的过程中,全体会议是一个非常有效的途径。团队肯定是要开会,为什么不让这些时间为你所用呢?Curtis说:“我们会先重点讲一下此前一周代码审核的优秀范例,然后让参与审核的人谈谈这个过程对他有什么帮助,以及为什么这个机制是有益的。”推广新方法最好的代言人就是那些已经亲身实践过的团队成员。
拉上落后的人。 如果团队中不是每一个人都跟上了步伐,也不要太在意。事实上,Curtis认为,把这些落后者带上道是整个转型过程的最后一步。以Airbnb的代码审核为例,Curtis和高级工程师会和那些坚守原工作方式的人分别交流,了解他们的关切。“通常情况下这些对话的结尾都是‘先试几周,看看情况,看有没有效果。’大多数人最终的结果都不错,跟上了整体的节奏。”
在大约两个月的时间内,Curtis使得代码同事审核成为团队内通行的规范,整个过程中公司没有增加任何新的规定。他说:“这就是积极推广和利用人际压力对组织文化转型的作用。我没有下达任何命令,没有说过‘从现在开始都必须这么做,’也没有实施过任何正式的规定。”实际上,现在在Airbnb,代码审核仍然不是强制执行的,工程师可以直接将代码上线,但是没有人会那么做。
当然,Curtis也不赞成把公司的所有规定都取消了,有一些规定还是必要的。他说:“就我们而言,涉及到国际差旅时规定都是非常严格的,你能获取什么数据,不能获取什么数据都有着详细的规定。” 公司发展中有一些事情不能让员工自由解读,那就制定一些规矩吧。但此类规定能少则少。
需要注意的是,你制定的各项规章制度并不是在真空环境中运行,它们会和此前的各种规定交织在一起,不仅会增加人们的精神压力,也会导致公司的文件越来越多,越来越复杂。想要尽可能减轻这种负担,最简单的方法就是信任你的团队成员,同时形成团队清晰的价值观。
最终,要实现这些还是需要你信赖具有良好判断力的人。确保招聘能做出正确判断的员工,然后用原则来指引他们。
本文编译自: firstround.com