程序员在大公司工作好?还是在小公司工作?我的经历和建议[ZT]
工作是在大公司更好,还是小公司更好?这个问题让大家争论不休,也没有最终的答案。凑个热闹,我结合自己的经历,谈谈我的看法。
我最开始工作就是在小公司。当时刚刚毕业,在对工作完全没有概念的情况下,进入了一家小的创业公司。虽然今天想起来,作为创业公司,它有这样那 样的不足,但我依然非常珍惜那段经历。主要原因是,虽然在创业公司,我仍然受到了相对良好的职业训练。当时我的两位领导都是毕业于清华,而且在搜狐工作过 的,有丰富经验的 IT 人员。所以我最初工作的两个月,几乎是每天在批评中度过的。虽然我在学校也认真写过一些程序,但还是每天被批得一无是处,因为学生写的程序,距离生产系统 要求的工业级别,实在是差得太远了。所幸自己当时脸皮厚,被批了就赶紧改,根本不去想太多,这样过了两个月,终于没那么少被批评了。当然,另一方面是因为 我受到的批评都是“对事不对人”的,所以一直没有“人格被否定”的糟糕感觉。
第一份工作我做了一年多,最大的收获是在领导持续的严厉批评下,深刻认识到了“现实生产环境需要的程序是什么样的”,其次就是模糊地领悟到,持 续的“对事不对人”的批评,可以营造出追求专业进步的价值观。现在回头去看,很多人即便进到大公司,受到各种条框的限制,也不见得理解这些约束的意义;加 之,如果领导没有严格的要求,没有树立“工作至上”的价值观,身为员工很可能不会有太多收获,反而会受到负面的影响。
之后我去了一家大公司,当时很有可能在美国上市,但最终没有成功,前几年终于上市成功。进入大公司的第一感觉是资源丰富了,典型的例子是,服务 器紧缺的情况再也不会出现了。另一个感觉是视野开阔了,因为高手很多。我深刻记得有一次快下班时,某个同事路过我的工位时看了一眼,说“你的 vim 怎么没有颜色呢?”,然后他拿过键盘迅速敲了一串命令,之后我的 vim 就有了语法高亮标识。后来我把他的操作记录调出来查看,学会了很多新知识。再问问同事,原来帮我设置语法高亮的是集团的首席科学家。原来技术做到很厉害的 人,还可以这么平易近人,这也突破了我的想象。中国古话说“言传身教”,我总觉得“身教”是非常重要的,以沉默但巨大的力量改变人的认识。
之前在小公司时,因为业务领先,行政、人事、财务相对都不那么规范,老板只挑“靠得住”的人,程序员去办事时就不那么顺利,所以我通常都是“横 眉冷对”的态度。然而到了大公司,行政、人事、财务等等都要规范很多,真正让人知道什么是“职业化”。我也学会了尊重和重视行政、人事、财务等等支持部门 的工作,并在自己后来的职业生涯中受益很多。如果不是去到大公司,我想自己是不会领悟到这一点的。
后来我还有一段在“大公司”工作的经历,也就是 2010 年加入盛大创新院——如果也可以叫“大公司”的话。如今创新院已经解散,旧日往事无须再细细道来,我只说一点,就是深刻感受到了文化的重要性。在我进入创 新院的第一年,那种环境和文化是我非常欣赏,也是后来大家非常怀念的。但是在急速扩张,团队成员短时间内翻倍甚至翻两倍之后,对原来的文化造成了极大的甚 至可以说是毁灭性的冲击。我以前不太理解大公司里为什么都要有个部门来管企业文化,有了这段经历才真正明白。企业文化的背后,是行为规范,是做事准则,核 心的是价值观——大家认定什么、推崇什么,否定什么、排斥什么。公司做到一定规模,就不能仅仅依靠大家的默契来维系,而应当不断塑造企业文化,强化这种价 值观,否则很容易分崩离析。就我看来,许多小公司能迅速成长到一定规模,然后就四分五裂,没有统一的价值观是重要原因之一。
离开盛大创新院之后,我选择了进入广州的一家创业公司领导技术团队,也可以算一段“小公司”的工作经历。其实在做这个决定时,我心里比较忐忑, 自己之前无论大公司小公司,都是在技术特别好的团队工作,这次的工作环境,无论团队还是系统,都超出自己的底线,我不知道自己能不能应付得了。尤其是发现 广州高校中优秀的毕业生基本都被网易和腾讯收罗之后,就更是沮丧。恰好当时参与了《程序员的职业素养》的翻译,其中有一章提到“团队应该有凝聚力”,这给 了我很大的启发。后来的事实也证明,除非钻研前沿的科学项目,否则,由素质不错、工作靠谱的程序员构成的有凝聚力的团队,一样可以输出很高的生产力,做出 不错的产品。尤其让我欣慰的是,这段工作经历也成了很多同事怀念的对象——虽然身为团队的领导,需要为此付出极大的努力。
供职过大公司和小公司之后,从我自己的经验来看,纠结于“大公司还是小公司”的人,更多还是来自有一定的大公司工作经验,面临去小公司挑战的情景,我见到很多人无法迅速落地反而很快夭折。如果你正面对这样的情境,我有几点建议。
第一,在大公司往往要解决具体的问题,在小公司往往要解决抽象的问题。在大公司,你需要关心的往往是相对具体形象的指标,比如“搜索及时性提高 20%”,而小公司要解决的往往是“在各方面问题一大堆、资源也有限的前提下,分多少资源到各个方面,以及如何安排先后顺序,才能保证业务的增长”。解决 前一种问题需要专业技能,解决后一种问题则需要慎密的思维,而且常常需要创造性地发明一些解决方案。
第二,初入小公司,一定要适应“乱”的环境,并且需要能推动“由乱到治”的过程。小公司往往是生存为第一要务,业务为先导的,流程和规范相对来 说落后,而且一家公司的流程规范总是要适应这家公司的具体情况。如果生搬硬套各种流程规范,很可能危及到生存。所以,需要能忍受“乱”的环境。另一方面, 如果公司业务成长到一定规模,仍然没有流程规范,必然无法持续发展,所以需要有“由乱到治”的过程。这也牵涉到上个问题:在什么时候开启“由乱到治”的过 程,分几个阶段开展,每个阶段进行到什么程度,同样是个复杂问题。
第三,在小公司需要有界限感,但工作中不能严守本位。举个典型的例子,如果你是小公司的领导,用我的话说,比需要“既当爹又当妈”,一方面保证 业务目标的实现,另一方面还得管好团队,营造积极向上的氛围。抱着“这个问题应该人事出马”,“那个问题是行政的事情”的态度,最终很可能做不成事情。因 为问题是自然出现的,而不是按部门、按界限出现的,如果凡事都讲究界限,很多问题就无法及时解决。但如果没有界限感,大家的配合又会出现问题。我推荐的做 法是,在界限那边的力量足够专业和强大的时候,可以放心把事情交过去,否则,还是自己多走几步更加稳妥。
第四,也是最重要的,在小公司工作,一定要对人有特别敏锐的感觉。我见过很多大公司的人,业务能力没有问题,职业素质也没有问题,但还是无法适 应小公司的工作环境,原因就在于对人不够敏锐。前面已经说过,小公司不太可能有专业的人事和行政来帮助你,所以很多事情只能自己上阵。而且,小公司成长过 程中,人和事往往是交织在一起的,即便你有足够的理由否定之前的某个员工,也无法准确衡量另行安排他会对公司产生怎样的影响。另一方面,小公司往往不会有 充足的人员编制,业务的增长又很迅速,所以需要准确判断人员的工作能力和成长潜力,预先做好安排。退一步说,即便公司有充足的人员编制,也要思考,进来的 人是否会冲击到原有的文化和价值观,要知道,在小公司通常不会有企业文化部门帮你打理这些事情的。