• 35
从0到300,Instagram联合创始人详解如何打造精英技术团队
统计 阅读时间大约8分钟(2868字)

2017-10-15 09:30:41 从0到300,Instagram联合创始人详解如何打造精英技术团队

无论从哪个角度看,Instagram的主要里程碑都是突破性的。

【猎云网(微信号:ilieyun)】10月14日报道 (编译:冰摇柠檬茶)

编者注:本文采访对象为Instagram联合创始人兼CTO Mike Krieger。

无论从哪个角度看,Instagram的主要里程碑都是突破性的。凭借着仅成立1年就被Facebook相中,并以10亿美元的价格收购,这家创企的整个生态系统稳定下来,并开始获得关注。这既是它用户暴涨的结果,更是未来进一步爆发的开始。从2012年被收购时拥有3000万用户,到两年后,这一数字已经直逼2亿,现在更是突破7亿大关。

在公司内部,联合创始人兼CTO Mike Kreiger围绕如何扩大、升级技术团队,从而获得更多用户给自己定了一套里程碑目标。在收购的时候,Kreiger手下只有6名开发主管。今天,他的工程团队已经达到300人规模,功能和产品开发速度令人咋舌。仅仅7年,Kreiger从新手经理,成长为多层次工程师管理人,手下工程师许多都是各自领域的顶尖人才。

在此次独家采访中,Kreiger分享了他几年来学习到的经验,以及如果能够回到2010,他会对自己说些什么。对于想要复制其成功的其他创企,Kreiger探讨了如何温和地将早期技术团队发展成熟,如何引进新管理层,以及如何创建能够不断推动进步与创新的机制。

早期团队应适应早期需求

想让一家创企顺利起飞,你需要准备好这些东西:勤奋、能量,以及一位解决问题的领导。专业工程师?不需要的。

Kreiger根据自己的经验说,这一时期你所需要的多面手应具备几种关键特质和能力:

1.知道什么时候给牛剃毛

“你没有有听过那种表达,‘给牛剃毛?’”Kreiger说,“有时候,写程序意味着你要解决机器复杂的技术问题。但很多时候,你所面对的,是一长串的任务,解决了这些任务,程序也就写出来了。’”

在组建多面手工程团队时,你需要那些已经准备好并愿意一路追随到底,解决各种问题的人。你需要那些渴望学习自己所不具备的知识的人,这些知识或许非他们的职责所在,但是完成任务必需的技能。

如何找出这些人,以下几个面试问题可以尝试:

(1).讨论最近的一项副项目或工作项目,在着手真正的工作之前,需要先“剃掉哪些毛”。

(2).询问他们何时参与过跨学科项目,甚至是一些开始之前并不熟悉的项目。

2.知道何时不值得剃毛

从上面我们可以知道,对于一家早期阶段创企来说,没有什么比开发项目更重要,你必须确保自己的工程团队得到了高效利用。“员工很容易对剃毛上瘾。”Kreiger说。一个聪明的工程多面手知道何时应当向前看。

Kreiger回忆说,在Instagram的早期时候,他得到一条受益颇深的建议:什么都要管。这条建议至今都非常重要。

最初采纳这条建议的时候,Kreiger每天都要花4-5个小时整合Nagios——一款领先的基础设施监测服务。“最后我终于醒悟,‘我得回头去开发产品。’”与此相同,有些时候,你或许也可以自己开发什么。但如果市面上已经有不错的解决方案,你还应当花费这个时间吗?“一开始,我们想,‘嗯,我们可以想象怎么做推送。但Urban Airship已经提供这个功能了呀。’”把你的骄傲放到一边吧,真正的目标才值得你的注意。“我们的目标不是把Nagios或Munin搞得多好,而是开发出一个软件,让人们都能用上。”

3.以行动为指南

你不可能同时做许多事情,因此,搞清楚哪件需要首先完成,哪件可以再等等就很重要。不是说你的排序系统要多精致,但至少要有。在Instagram的早期阶段,Krieger和他的团队在谷歌文档上,按主题记录下了行动项目。

“我们有这样一个主题:成为全球发展最快的照片分享应用。在这个主题下,我们需要怎样努力?下一步,我们想让所有照片看上去更漂亮,怎么做?跟这两个目标无关的通通站边去。另外,你要让工程师也明白这两个目标的重要性。”

谷歌文档是完美的最小化团队任务管理可行性产品,它可以确保所有任务都直接关系到公司最重要的目标或当务之急。它将任务按天拆分,每天又分为不同主题。每个主题下面未完成的工作会迁移到第二天。最紧要的任务会做出特定标示。这样一来,即便任务繁多,团队成员也不会混淆,大家也方便留言、问问题,他们的注意力也就永远放在下一步需要达成的目标上。

谷歌文档在Krieger建立早期团队的过程中发挥了至关重要的作用,谁也不用因为对任务重要性意见相左而大吵大闹。有了这款工具后,也不会有人一心想着自己的事情而忽略公司的规划,你也不会遇到那些专门捡轻松任务的人。

招聘热情、多变的多面手

虽然大型公司的招聘团队已形成特定的机制,但创企也有它们自己的优势:他们可以在思考、招聘的时候跳出固有模式。Krieger回忆说,他和他的联合创始人Kevin Systrom找到的第一位工程师名叫Shayne Sweeney,后者就是跳出固有模式的典型案例。“他大学没有毕业,编程基本自学。我们在Dogpatch Labs孵化器认识的他,坐在我们对面桌。虽然学历不好看,但他具有创企的精神:如果我有一个想法,我愿意学习一切来使它成为现实。”

不过,不是所有人都能每天坐在对桌观察别人的,那么如何找到拥有这种潜质的人呢?Krieger说,他的经验是,对一切的好奇心是这类人最基本的性格特点。“我们喜欢的求职者是那种,‘这周我对围棋开始感兴趣,然后我就制作了一个围棋模型,进行了好一番研究。’我们不喜欢那种,‘嗯,我就职的公司用React,所以我也用React。’”

自然,你也可以通过几个巧妙的面试问题试探一个人的好奇心。Krieger说:“我喜欢问——尤其是在早期阶段,‘你感兴趣的副项目是什么?你上一次细致研究一个项目是什么时候?学习到了什么?’”

工程师的灵活多变对早期创企来说也很重要,这一点甚至意味着,有时候你不能招聘某些技能点最高的求职者。

“我们之前面试过一个我认识的人,他是顶顶优秀的iOS工程师之一。但在对话中,他所说的基本就是,‘我得知会你一声,我拒绝做服务器端的工作,因为我认为这是在浪费时间。’”Krieger说。这种思维的问题在于,对当时的Instagram来说,他的要求过于细致。

招聘能够在各类工作间切换的工程师,可以保证早期工程师团队的敏捷性。同时,它也能帮你避免一些隐患。“我记得和Kevin Rose讨论Digg,他说,他们早期犯过最大的一个错误就是,招聘和当时技术极度吻合的工程师。”Krieger说,“这种做法错在两个地方。第一,你将来总会升级技术;第二,如果工程师们把自己的工作安全性捆绑在,比方说PHP上,那么你最终一定会做出错误的技术选择。”

Keirger的最后一个建议是:尽早开始多样化招聘,要比一般新公司都早。组建多样化团队的好处不言而喻,在近年来的科技文学作品中,这一点也被经常提及。但在疯狂的早期发展阶段,创企可能会认为这些建议不适用它们——或者也不是什么着急的事情。

“早期阶段的时候,我们在组建多样化团队上花多少精力。”Krieger说。这就导致了,当团队开始壮大时,引入更多女性和少数族裔和背景的人就更难了。“比方说,在面试第一位女性工程师时,她会想,‘哇,这个团队规模好大,全是男的,’这就让入职阻碍更大了。这种情况真的会发生,如果你想避免,最好早些行动。”

该细致时就细致

Instagram的下一章故事现已称为硅谷佳话之一:2012年,这家13人的公司被Facebook收购。当时,Krieger和Systrom既可以独立招聘人才,也可以从Facebook内部寻找。而自从挂上Facebook这一家喻户晓的名字,越来越多求职者找上门来,他们的背景是两人此前想都没想到的。当然,不是每家创企都具备这样的条件,但无论你的情况如何,多样化和细致化都是不可避免的下一步。

随着越来越多功能的上线,公司的不断发展,Instagram团队开始感觉需要更多专业技能人才。比方说,能将产品拆开并升级的iOS和安卓工程师。在创企的生命发展中,这是非常正常的时刻。当出现以下迹象时,你就需要考虑招聘专业人才了:

1.你正在创造的东西,超越了平常使用的平台的能力;

2.你开始进军新市场,需要调优的代码。拿Instagram来举例,当时他们希望在新兴市场提供更优质的视频服务;

3.你的代码库越来越大,需要技术领导来指导未来发展。

在你还没意识到的时候,你已经需要经理了

就像工程师团队会升级一样,你的领导团队也需要成长、成熟。最开始的时候,你的公司会呈扁平状态。不必要的管理阶层会有损公开性和敏捷性,而后二者是小型公司最重要的资产。不过,这也不意味着创始人们应当让早期团队自我发展。

作为创始人或早期领导人,当你自己的产品和管理工作无法满足需求时,就需要引入另一位经理了。而当你意识到你可能需要一位的时候,十有八九已经晚了。

AD:还在为资金紧张烦恼吗?猎云银企贷,全面覆盖京津冀地区主流银行及信托、担保公司,帮您细致梳理企业融资问题,统筹规划融资思路,合理撬动更大杠杆。填写只需两分钟,剩下交给我们!

1、猎云网原创文章未经授权转载必究,如需转载请联系官方微信号进行授权。
2、转载时须在文章头部明确注明出处、保留官方微信、作者和原文超链接。如转自猎云网(微信号:ilieyun
)字样。
3、猎云网报道中所涉及的融资金额均由创业公司提供,仅供参考,猎云网不对真实性背书。
推荐阅读
记者名字
{{item.author_display_name}}
{{item.author_user_occu}}
{{item.author_user_sign}}
×