这种优越感使得你进一步沉浸在美好的外企生活中,却发现越来越没有那么优越了。三年,五年,你一次次的听说你的同学升职了,又升职了,而你还是一个普通的 engineer,因为外企的升职基本是由严格的年限的,有时候多少有些按资排辈的味道。你一次一次听说你的同学加薪了,又加薪了,薪水直逼你当前的薪 水,甚至在五年的关头超过你。
你越来越发现你的同学逐渐的掌握了一个系统前前后后的模块,能够完整的负责起一个项目的时候,你却还是螺丝钉,每天接受外国人的指示,在yes, ok, no problem, i am 100% agree的声音中继续做你的螺丝钉般的小功能。
我不知道十年后会如何,在参加了多次的开发者大会后,我发现几乎所有的外企的演讲者都是外国人,中国的演讲者则多来自本土的创业企业,当听着他们如数家珍的谈着自己的创业企业如何一步步做大,系统如何一步步改进,直到今天的架构,他们外企的同学能有这种机会吗?
人性化
所谓人性化,用外企的语言就是我们是很Open的。
Open 体现在很多方面,诸如高管的办公室的门始终是开着的,你可以在任何时刻走到任何的高官的办公室里发表自己的看法,只是你必须保证,当你满怀激情的 走进高官的办公室,关上门,半个小时后同样满怀激情走出办公室,你的顶头上司对你没有看法,即便你确实没有说什么,仅仅谈论了一下午餐而已。
所以除非高层主动安排和你谈话,尽量不要没事跑到高层那里,在你的顶头上司控制范围之外和他的上司进行私密的谈话,要知道有一种关系叫表面上支持,心中的 隔阂。即便是高层主动要和你谈话,最好事先和你的顶头上司事先沟通,当然不用太正式,比如在闲聊的时间抱怨一下:"今天下午又要被老大找去One on One,项目这么忙,不知道有啥事情可谈的",呵呵,一些术而已,姑妄言之姑听之吧。
对你最重要的永远是你的顶头上司,当高层听完你的建议,OK, I will take it into consideration之后,便和你没有啥关系了,绝不会存在当你的顶头上司决定给你涨薪7%的时候,高层会出来说一句,我觉得他表现还不错,涨10%吧。
当然,按照公司的规定,你的顶头上司也会过一段时间和你来一次One on One,问问当前的情况,问问有啥意见等等,这可不是推心置腹的时候,需要把握火候,对当前的情况说的太满意,感觉不真诚,太不满意自然领导不爱听,说没 意见显得对Team不够关心,说太多意见会让人感觉你不安全。
所以总的原则是:
>要多提改善性意见("code review预留的时间应该更长一些"),少提颠覆性意见("现在的项目流程有很大问题"),
>多提有证据的具体意见("我们有几十个Bug,可能一个星期确实做不完"),少提抽象型意见("Team之间的沟通有问题"),
>多说与项目相关的意见,少说与自己相关的意见(尤其不要太真实的说自己的人生规划),
>多说在领导意料范围之内的意见(这样会给领导以对Team的控制感,比如说天天加班到10点,领导也看在眼中,可以提一下),少说在领导意料之外的意见(即便有,请事先沟通,让领导在One on One之前就心里有数)。
Open 还体现来另外的方面,比如领导会和员工一起参加各种工作之外的活动,比如打球,比如年会表演,比如一起健身等等,而且在此过程中,往往是充满的欢 声笑语的,但一定不要忘记领导就是领导,哪怕不在项目中,千万不要因为你曾经是学校的篮球高手,或是文艺主干,就能在此类的活动中充当领袖角色,在你的项 目领导面前指手画脚,虽然在活动中他会夸你,没想到你还有这方面的才能,但是在领导面前充老大,这笔账是迟早要还的,比如在项目的后期不能够完成美国派来 的任务的时候,你会被冠以虽然前一阵成功组织了活动,但是耽误了一些项目进度的罪名,从而影响你的绩效。
如果你在健身房遇到领导,和你一起健身,你们可以边健身边聊的很开心,但是领导的心中的第一个想法一定是,这小子项目干完了吗,还有空工作时间健身?,并且会在以后的工作中反映出来,比如时常关心你的工作进度,加大你的工作量等。
一个欧洲人在培训中讲,美国人是喜欢跳槽的,并不是公司不好,而是他们喜欢挑战,如果五年待在一个地方,别人会问:what is wrong with you?,而在他们国家,人们是不怎么跳槽的,他在这家公司待了20多年,他的父亲就是在这家公司退休的。这多少让我想起了我们原来的国有企业的制度,父 辈退休,孩子在这个岗位接着干。难道欧洲已经到了劳动已然成为一种需求的阶段?
C: 《The c programming langage》
C++:《Thinking in C++》,《The c++ programming language》,《effective c++》,《more effective c++》,《exceptional c++》,《more exceptional c++》,《inside the c++ object model》
Java:《Thinking in java》,《Core Java》,《effective java》,《Java Puzzlers》,《Java Network Programming》,《java concurrency in practice》,《深入Java虚拟机》
windows:《Windows核心编程》,《Windows Internals》
linux:《Advanced Programming in the UNIX_Environment》,《Understanding Linux Network Internals》,《UNIX Network Programming》
network:《TCPIP Illustrated Volume I》,《The Linux Networking Architecture》
我没有在装B,也不是看过以上所有的书,不过上述书籍的确是程序员必藏书,我也只不过是在用到的时候翻开相关章节看看。
然而给大家的建议是,在做项目的时候,千万不能够做什么就只知道什么,与此相关基础知识也应该多看一些。面试的时候也经常遇到这种情况,就是面试者号称做 过socket,问到tcp/ip拥塞控制却一无所知,会简单使用socket client端和server端几个简单函数人太多了,如何保证你能够脱颖而出呢?
每次沟通都应该至少有会议记录和部分结论,不然讨论等于白讨论,否则会发生团队经常开会,但是总在讨论同样一些问题,感觉上好像每次都在头脑风暴,其实效率很差。
对于重要的结论应该是面向连接的,也即书面(邮件,文档,wiki)告知,并有书面回复(ok, I am following the bug XXX)。
可以建立一些连接池,也即沟通的特定上下文。经过一定时间的团队磨合,可以下意识的创造或达成共识的一些词汇来代替一定的上下文,可以提高沟通效率。比 如"明天甲系统出report",则程序员明白要有单元测试覆盖率报告,QA明白要有当前bug的报告,性能测试组应该有甲系统性能测试报告。
基于上述几点,经济基础决定上层建筑,你也就怪不得基层员工对你仅仅是因为技术而产生的尊敬,而对manager则是因为既威且信而产生的敬畏了。也许其 实是你的建议是正确的,大家却都同意按照manager的来做;也许你一把年纪还要和年轻人因一个小小的设计争得面红耳赤,而他在manager面前总是 yes, ok, i am 100% agree;也许你因一项新技术不很精通而被新人鄙视;也许就没有也许。
在各类的会议中,如上面所说,事先准备问题,合理提出建议,适时提供证据,都是在同事,领导,以及外国人面前展现自己的机会。
有时候美国有或管理或技术的老大来中国,都会召开all hands,这是一个不可多得的在整个公司面前展现自己的机会。而在外企,程序员的竞争力大约包括对产品的把握,对技术的把握和对英语的把握等能力。 all handls也是展现这三种能力的好地方。也许你会发现这样的事实,在all hands上英语流利的提问者们,提出问题的目的也许并不是为了想弄明白什么,而是为了展现什么。他们大多是这样问的:"As what you side A, but actually what we did in our project is B, so how/what/when C",你会发现,A和B会说的很具体,而C很抽象,显然A是为了展现产品把握能力(你讲的我都听懂了),B是为了展现技术把握的能力(我们采取了什么样的 技术),整篇都用英语表达自然展现了英语的能力,最后问一个很Open的问题C,总不能问老大个很难的问题吧。
tech talk:当有了一定的技术积累,tech talk是一个很好的展现技术实力的平台,毕竟程序员是吃技术这碗饭的,所以良好的技术口碑对最初的升职至关重要。tech talk所讲的对象一般不是同项目的员工,因而难度要适当的把握,太简单则不足以体现你的技术实力,太难则大家会听的云里雾里,不能真正了解你的价值。在 做tech talk的时候,最好一开始有一个整体的流程或者框架的介绍,以使得听众不会在途中迷路。一般有一个规律,就是在最前面几个slides的问题是最多的, 大家总能够提出各种各样的问题,所以开始的几页,一定要是你最最熟悉的,最最有价值的,然而随着信息量的增大,后面就几乎提不出什么问题来了,到演讲最 后,一般也就只能提出一些open question了,一般可以通过三个阶段轻松回答,其一,that is a good question,其二,it really depends,其三,I'd like to give an example。
在增加的影响力的前面,我加了一个形容词——适当。要有和你的level相匹配的影响力,小心功高盖主啊。外国人有时候会强调leadership without authority,然而如果你果真这样做了,多半会招来同事的敌意(你凭什么指手画脚的啊),也可能会招来你的lead心中的隔阂(没有 authority你都能够lead啦,给你authoriy还不反了天了,你lead,那我干嘛),所以还是不在其位,不谋其政的好。
其四,对任务等待的time out时间较短,心理学中的等待效应有八条原则,其中一条是没有说明理由的等待比说明了理由的等待时间更长,由于管理者不明白技术原理,则比较容易 time out。我们知道,很多的前期调研工作是十分耗费时间的,常称之为过山车式的,即开始进度缓慢,总是不出成绩,只有当积累到一定的知识量,有了总体的把握,则成绩会迅速大量的出现,然而往往在过山车马上达到顶峰,即将释放势能的时候,管理者time out 了,于是很多马上要出结果的调研工作终止或者换人,使得研究了很长时间的员工的辛苦付之东流,或者后继的员工站在前人的肩膀上大出结果的时候,反而庆幸自己尽快换了人,进而褒奖后者的能力,而批判前人的努力,造成对员工评价的不公正。
如果评级最终不可避免,那么就做在平时。一般仅仅在最终的年终考核的时候,才会对员工进行很好,好,一般,差,很差五级(不同的公司叫法不同,有可能比较委婉,但没有关系,关键你属于哪个级别)的评级,而平时是不会的,况且评级会带来一些尴尬,因而多进行避免。其实既然最终不可避免,与其最后给一个惊讶,不如平时坦诚沟通更能避免情绪的大起大落,从而影响到团队的士气。当然平时的评级不必大张旗鼓的进行,也不必每个月或者每个季度都给员工打上一个戳,给员工带来很大的压力,可以通过One on One的沟通进行。按照杰克威尔奇的分布理论,员工是按照20%优秀,70%普通,10%不足进行分布的。在这其中,前20%是众所周知的明星员工,是不必显式的沟通就可以达成共识的,而大部分普通的员工也是兢兢业业工作,有自知之明,也不太aggressive的。需要显式沟通的是70%中的比较优秀的部分(我们称之潜力股),以及最后的10%的部分(我们称之ST股),是会情绪波动比较大的部分。其中潜力股部分,由于本身比较aggressive,也相对比较乐观,容易误认为自己是属于前20%的部分的,当然如果名额宽松,他们是可能进入第二等评级的,但当名额不足,其落入第三等评级的时候,他们会很失望,自信心大受挫折,从极端的乐观主义变成极端的悲观主义,如果不很好的进行沟通,他们往往从第三等级的top一下跌至第四甚至第五等级,甚至出现离职,他们会想,我这么努力的贡献,和大多数平庸的人一样,还不如也平庸下去。对于潜力股,在肯定其潜力的同时,要显式的表明其与前20%的差距,并对其进行辅导和提供培训,通过非评级和财务的奖励(培训机会,演讲机会,独当一面的机会),让他们觉得付出有回报,树立向前20%进发的激情。对于ST股,在企业整体效益比较不错的情况下,往往也会给第三级评价,所以他们往往也感觉不出自己属于最后的10%,觉得自己的一些失误可能瞒过了上司的眼睛,觉得自己和大多数人也差不多,仅仅在公司效益出现问题的时候(金融危机中),或者需要裁员的时候,才显现出来,他们往往也十分的惊讶,从而产生敌对的情绪,影响大部分普通员工的情绪,会传递出这样的信息,你看,我每次的工作都合格了,最后也被裁了,这次是我,下次就指不定是谁了。对ST股,也要有显式的沟通,除了肯定其完成了大部分任务外,表明其与大部分同事的差距,通过对他们额外的监管(多问,多指导)表明对其还是关心的,不放弃的,对其失误也是清楚的,还可以通过安排前20%的员工或者普通员工和其pair work,或者对其进行帮助,来让其自身意识到差距的存在。