丁吉昌是豌豆荚的创始团队成员,现在是深圳分公司的负责人。他们开发出来的豌豆荚软件为广大 Android 智能设备用户带来了很大便利。QCon 上海期间,我们有幸采访到丁吉昌先生,请他和大家分享豌豆荚在产品研发方面的经验和心得体会。
InfoQ:大家好,欢迎来到 QCON 上海的采访现场。今天我们有幸采访的是豌豆荚创始团队成员,深圳分公司的负责人丁吉昌先生。首先请吉昌和大家做下自我介绍吧?
丁:大家好,我是丁吉昌,过去几年一直在豌豆荚工作,现在负责我们的深圳分公司。我们在深圳会跟整个上下游厂商、硬件厂商以及一些开发者一起做一些事情,相当于是更偏生态圈的工作。因为过去几年一直在豌豆荚工作,从做 Windows 的软件,做移动应用搜索,一直到今天,我们下载主要做移动内容搜索,所以实际上算是一直在做跟移动相关的事情。
InfoQ:豌豆荚现在从创建到现在已经有四年多的时间了,您觉得豌豆荚在产品研发方面都有哪些关键的步骤呢?
丁:我自己过去因为和豌豆荚的第一天开始一直一起走到今天,也试过很多方法来做一些总结或者探索,今天就做下归纳。
豌豆荚的研发可以分成五个方面来看,首先是定方向。就是对一个事情来讲,你的方向是什么非常非常重要。定了方向以后,因为这个方向是长期的,所以你可以理解成一条直线,那你的目标到底应该在什么地方呢?我们会认为定目标就是在这个方向上更进了一步。定好了目标到哪里以后,一个很关键的问题就是如何到达那里,这就是第三步,控制进度。从以上三个方面已经可以看出来,你要做什么事情,怎么做到,不管是作为一家普通互联网公司也好,移动互联网公司也好,非常重要的是你的人,因为人才是公司的一切,所以怎么去带这个团队,就会成为我们研发过程中非常重要的第四个部分。人也定了,方向也定了,事情也定了,但同时你会面临很多干扰,它们会阻碍你到达那个目标,所以我们会把第五个因素定义为排除干扰。相当于就是这五个方面。今天上午的分享也大概基于这五个方面和大家聊一下我们是怎么做的。
InfoQ:我之前了解到豌豆荚公司一直是一家比较崇尚工程师文化的企业,这种工程师文化你觉得对于产品研发会带来哪些好处?
丁:我们实际上对外会多讲一些工程师文化,但其实在豌豆荚内部,我们会比较少讲工程驱动还是产品驱动。因为这实际上对很多公司而言都会讲,我们是产品驱动的公司,我们是工程驱动的公司。大家一般在讲这个的时候,实际上就表示工作人员说了算,还是产品说了算?但其实我们会认为说工程驱动并不等于工程师文化,或者工程师文化并不意味着一定是工程驱动。在豌豆荚,我们会认为,一个好的文化,特别是这种追求卓越的文化,其实是能帮助我们,不管是在产品上,还是在工程技术上,都能够做到领先,这样才认为是一种非常好的工程师文化,从目标上来说是这样的。那从目标之外,我们会看得到,作为一家公司,非常重要的是能够让优秀的人进来,让优秀的人能够在这里发挥自己的聪明才智。从人的角度上来讲,好的工程师文化是能够帮助大家成长的。从第三个方面呢,其实好的工程师文化还有很好的作用,就是它不单能够让你做事情做得卓越,让每个人能有成长,同时还有很好的辐射作用。因为他会吸引以及帮助这家公司增强在这个行业的影响力。所以我们认为,好的工程师文化,或者说好的文化,它的影响是非常正面的。
InfoQ:刚刚您有提到,在产品研发方面有五个步骤,那么在选方向的时候,我们是如何保证方向的正确性以及合理性呢?另外,在产品研发的过程中,是否会根据一些具体情况做一些方向上的调整呢?
丁:我认为是这样的,从方向上来讲,首先回答后面的那个问题,就是会不会变。坦白说,我们现在会发现,方向有可能会变,因为一成不变还是很危险的,虽然说从另一方面来说是挺好的。所以我们的做法是怎样的呢?我们就在选方向的过程中多花些时间,确保能够在这个方向上走的是对的路,这就包括我们自己在豌豆荚整家公司,以及我们整个产品团队,甚至工程团队上面都会花很多的时间。打个比方,在定前年计划的时候,我们会让整个公司——不管是产品,还是工程师,还是运营,每个方方面面的角色,包括 HR——都会参与进来,去共同制订这个公司的方向。那对于更细一点,比方说我们工程师在定方向这个问题上,实际上也会涉及到技术选型,我应该用什么技术方案,这些其实也是方向的一部分。如果不花时间去选,随便选了一个,或者说了解不深,就会出现问题。实际上豌豆荚也是吃过这个亏的,我们曾经用了一些开源的项目。正是因为对这个实现不够了解,所以选了这么一个东西,最后在业务量到达几百亿的时候,就莫名其妙崩溃,这个对线上影响非常大。所以我们也会在选方向上花更多的精力。怎么去做到呢,实际上我们自己也摸索出来一些方法。其实在一般情况下,大家去投标一家公司的时候,都会写几十页、几百页的立项文档,但这个对创业公司来说显然是太重了。所以我们就会让大家想明白,其实就是我们叫 product brief,其实是所谓的立项书,我们会把这个文档控制在一到两页。这是个硬性规定,实际上会帮助整个团队、整家公司的所有决策的人来理解项目。因为工程师不喜欢写很长的文档,这是一个方面;另一方面,有些同学会特别擅长写文档,如果你没有一个目标,让大家有一个限定的话,其实就有可能,有的人写得很少,有的人写得很多,那就很难办,所以需要这样的规定。第二,这个规定并不只是一个很虚的东西,有很实的规定数字。但是实际上会涉及到另外一些问题,比方说我为什么要选这个方向,以及这个方向上,有哪些人在做,他们做得怎么样,豌豆荚去做有什么优势,如果豌豆荚不做又会有什么影响,这个事情能给我们带来什么好处,以及我们怎么去衡量这个方向是否达到了等等。实际上,这几个问题也有帮助,不只是要给公司说明白,更主要的是给自己和团队讲明白,我们一起认同为什么这么做,以及怎么去做到它。我们采用的就是这样的方法。
InfoQ:选定方向之后,我们要去定产品和目标,那么我们确定的目标是如何在整个团队中比较透彻地传达呢?
丁:其实这里面可能我们很少会用传达这个词。因为如果我们用传达这个词,那么大多时候可能会认为是一个从上到下、会更偏一点命令式的任务。所以我们在内部采用 OKR 方法,从我了解到的情况,在中国还算是比较早。因为我们从 11 年就开始用 OKR,这是从 Google、Facebook 学过来的。我们选择 OKR 体系,实际上就是为了让大家朝一个共同目标前进,这非常非常重要。实际上,大家也会讲 KPI,也会讲别的体系。但从我们的实践来看,OKR 让我们知道最重要的一点就是每一个团队、整家公司,以及每一个人都朝着一个目标在努力、在前进,这就是我们认为 OKR 最大的好处。在执行过程中,不管说自上向下,还是自下向上,这两种方法都会体现出来。比方说,CEO 们都会从他的角色去定义整家公司的目标。每个团队可以是并行的,也可以是稍微有一点点先后顺序,也会自己去定目标。定完以后,团队和公司会有个 Align 的过程,实际上是一起去 Work 出来一个相当于双方都能够接受和认可的目标。然后个人和团队之间会采用同样的方法。所以这里面非常重要的,我们着重强调的一条,就是自己定的目标自己负责。所以,你的目标不是别人给你的,是你自己定的。那我们也会在定目标上把考核这个因素完全拿掉,我们并不会认为目标是为了考核服务的,所以我们在定目标的时候,完全鼓励大家去创造一个超越自己的方法,超越优秀的一个目标。当然这里面我们也会定义这样的一个方法,比方说我定目标,如果我觉得我最多能做一百分,我把目标定到一千分,那你是跳死了也摸不到,这实际上是很打击信心的,所以我们会把目标定到跳一跳摸得到,相当于是这样的一个定义。这样子不管是自上到下,还是自下到上,大家都会认可,就会朝着这个目标去努力。
InfoQ:在确定了目标之后,实际的工作过程中可能需要去一步一步地去做,我们如何来控制整个研发过程或者产品推出的进程呢?
丁:我们会是这样做。其实一般传统上,大家会把这个东西叫做项目管理,或者是进度管理。而我们实际上只是用到了项目管理的一部分,因为更大一点的企业他们用的更全面一些。对于豌豆荚来讲,我们主要还是在进度方面,一些实践可能会是这样,对于进度来讲,其实它非常重要的一点就是透明和公开。整个团队也好,整个公司也好,你清楚地知道每个人在做些什么。实际上进度最难把控的就是黑盒,你完全不知道这些人在干吗,开始知道他开始了,过了一个月以后,知道它结束了,那中间是不可控的。而只要透明,那么就好做。我们实际上也会有一些方法,包括我们用 Asana 这样的系统,我们会有 Daily Sync,如果我这个项目,特别是最早期,假设咱俩第一次合作,完全不了解,那这时候同步就非常重要。所以我们会在这样的新团队里面实行 Daily Sync,就每天早上大家过来,每个人花个一分钟,或者是三十秒,讲一讲自己做的事情,碰到了什么困难,需要谁帮助,这样整个团队就是非常公开透明地在走。任何一方碰到了困难,可能就有人能够帮到他,那这样整个团队的凝聚力也会很强,大家就非常清楚一个目标去前进。而包括周会、我们用的 Gmail、日历等等,这些东西都是为了这样的目标在服务,这是从不同的维度上来看。包括整个团队,也会要求每个人,包括 PM、TechLead 要去做一些周报,让整个团队明白,当前我这个产品运行的状态怎样,整家公司当前运行的状态怎样,所以在这个点上也会反映出来透明很重要。我们公司每个星期,或者是每个月就会向整家公司去 Update 所有的数据,包括今天我们豌豆荚每天收入多少钱,当然这只能在豌豆荚内部讲的,相当于这样子,其实对于整家豌豆荚所有的员工来讲,他也很清楚,豌豆荚今天碰到什么挑战,机会在哪,当前进展怎么样,每个人都会知道我今天做了什么事情可以帮助豌豆荚在哪些方面做到更大的提高,这样子进度的控制就会更好。这样自然就是不管在项目,还是整家公司就更透明。那包括老大们也好,工程师们也好,都非常清楚的知道我的进度是什么,该怎么去努力。对,这是我们的一些实践。
InfoQ:豌豆荚这个团队其实有很多特质,您在带团队的过程中会总结出有哪些具体的特质,对产品研发会带来哪些影响?
丁:其实带团队大家最经常想到的一个问题,就是我缺人,给我多招点人,或者说人太难招了,所以我也没办法完成目标,这些是大家比较常见会反馈出来的一个问题。我们豌豆荚在想这个问题的时候,也碰过一些挫折,包括说,我到底是应该更快的,因为我缺人,我们赶紧招一个人进来。还是我应该缓一缓,直到找到那个真的是大家认为很好的,所以我们也会,当然每家公司都会讲要招最优秀的人。但我自己感觉豌豆荚在过去几年来说,还算是在坚持着朝这个目标去做,我们实际上也反映到招聘的系统上,去每个人去 hire 别人的时候打分,包括我们评审的时候,这个人进来是不是在团队的平均水平之上,这个是我们总结为第一条,就是要招最优秀的人,这个是非常非常重要。因为他会让你的团队看到上升的空间,我招进来的人都很厉害,我应该努力,这个是很重要的。这实际上是帮助整个团队在向上走,这是第一条。第二条要让每个人做自己喜欢做的事情,这个实际上在我们形式中会认为是一个调整,这个实际上也是跟一些公司不太一样,我们有一个规则还是蛮不一样的。比方说,我如果想做当前的事情,做得还不错,但我总是不是那么有兴趣,我对你做的事情很有兴趣,我能不能去你的组里面做?那我们的方法是,只要我自己在这方面事情做得能及格,并且你那边事情看起来需要我,你愿意要我,那我的 Manager 们不能留我说,丁吉昌你不能走,我需要你,那我就可以过去。这实际上是强调更多的鼓励大家去做自己喜欢做的事情,因为这样子能够激发出每个人更多的激情出来,对这整个公司来说还是更有价值的,这是第二点。第三点也是通常讲到的做 one-on-one,做这种沟通工作,我们也会让 Manger 和每个员工之间做,你首先不是一个管理者角色,更多的应该是教练的角色。教练是什么?实际就是帮助大家排除困难,帮助大家成长,帮助大家去找到他的职业发展路径,能够让他在这里待得开心,碰到困难的时候能够帮他,能够让他自己有明确的目标,下一步应该怎么往前走,这是我们认为第三个事情很重要。最后一点,你其实少不了要带人,就是要绩效考核,实际上,一般在大家讲到绩效考核的时候,就会有些负面情绪,觉得这是一个拿个尺子在量这种感觉。但其实我们也会有一些小的改进,我们认为绩效考核更多的是对于每个人,不管你自己也好,你的 Manager 也好,是对你过去工作的一个认可。因为工程师有时候会发现说,我一回头,我做了半年很多杂事,但我好像没有什么成就感,这是非常非常致命的。因为这就会导致他认为我在这家公司不需要待下去了。但其实呢,他是因为做很多事情忘记了,所以我们豌豆荚的一个方法是,我们会让每一个人,在半年的时候去回顾一下,我过去半年,我给这家公司,从成就的角度去看,你有做出什么有成就的事情吗。我们会对这些你做的事情进行评级,包括他自己一定是双方都认可的。评级完以后,包括他自己,包括他的团队,包括 Manager 都会对他进行评分,那这里面的一些体现出来的原则,我们会归纳出好几个点,第一个鼓励大家超越优秀。就把你当前能做好的事情,你要把它做到极致,这个是很好的。那第二个就是,对于每个人来说,你可以去挑战更难的事。因为这对你来说意味着成长,那对于这些所有的绩效考核都围绕着这几个点在看。那还有一个点就是不管你任何级别,如果你有一个工作没有做到及格,我们就会惩罚,这就是为了避免团队有拖后腿,严重影响团队往前走的一些方法。基本上我们可以归纳为这么几点。
InfoQ:那在产品研发过程中,肯定你也知道不可避免的出现一些干扰的因素,豌豆荚是如何去剔除这些干扰,保证产品能够正常有序地继续往下进展呢?
丁:没错,其实对于干扰,我们一般总结下来,其实主要有两大类,一大类就是,因为作为一个创造型的公司,你的员工和你的所有的 Manager 也好,甚至是包括 CEO 们,他们都会很有想法,想去试一些新东西,所以,如果你的正常的工作中不停地想去试新,就会发现你研究的基本东西就没办法完成,所以我们把这类需求拿出来。我们每半年,或者是每一年会做一次 hackday,我们甚至邀请过业界其他公司的人来参加过 hackday,就是一起来做一方面,也许是移动安卓,也许是 Web App,也许是其他你感兴趣的方向,任何你想到、想做的,你只要能两三个人组成一个团队愿意去试它,豌豆荚就鼓励。然后我们并为此会设立很好的奖项,基本上是当年整个科技界比较兴奋的事情。比如说前两年像 Mac Pro 刚出来,像去年 Google Glass 刚出来,所以我们也要通过黄牛去买这样的礼品。比方说去年的第一名团队,我们会给每个人配个 Google Glass,让大家去体验这种创造力带来的震撼,所以我们也会用这种方法,一个是让每个团队、每个人,你想做什么的时候,有一段时间让你去实现它,也许你成功了,也许你发现这个想法不靠谱,这不重要,重要的是有这么一个过程。第二个就是靠谱的想法,豌豆荚是可以把它转成产品去做的,这在我们豌豆荚历史上也有好几个很好的产品都是这么出来的,这是一大类。第二大类实际上是你的,特别是一个产品成熟了以后,它会有很多用户反馈、Bug,然后抱怨,那在这些小的 Feature 上怎么去改进它?如果你把所有的人力都用在这个上面去不停的改进,不停的改进,也许就像塞班一样,你再怎么改进,它也是个塞班,它出不来一个安卓,所以就是这样。但你不改进它肯定不行,因为用户就流失了,你就做不到极致了,所以我们也会把这类的工作,当作是你不得不做的事情,而且必须要去做的事情。做好的事情,在每一个月,或者是两个月,或者一个季度,我们会定一段时间,包括公司所有的人一起来去打怪兽,把这些小 Bug、小问题全部都 Fix 掉,让用户的体验更好。这样子其实除掉这些干扰之后,你平时的时间就可以大部分的用来做那些你最想做的事情,而且能够朝你的目标去很好地达到它。
评论