老师教我们怎么写程序,但从来没告诉我们在公司里,会有个叫做PM的人每天分派作业给我们,还逼著我们赶快做完。这是许多软件工程师进入职场的第一个惊喜。隔了不久,还会发现,这些可能把你压得死死的PM,多半一行程序都不会写。于是我们会面临一种很矛盾的心情,有时候会是一种有点被欺负的心理。这篇文章是前一篇文章PM如何突破工程师的心防的延伸,我们讨论的是工程师在这样状况下的生存之道。
(1)提高自己的能见度
在非常多的公司,上层的老板或公司的大老板只看得到一个project的PM,而看不到背后辛苦的工程师。也就 是说,你的努力和成果,被遮敝了。我一直相信在职场上,让自己在老板或其他同事前有「能见度」是重要的。能见度除了在很多状况下(会议发言、讨论…)可以 显现出来外。提供一个我有个朋友很厉害的一招给各位参考。身为一个工程师的他,在每个大的project进行完后,都会「不经意」的寄出一封「谢谢信」给 参与这个project的每个人,顺便cc给本来根本不知道他在做什麼的大老板。信裡面一一点名感谢每个人给他的指导和这个project的协助。这种信 每个人看了都很高兴,最重要的是最后大老板也对他有了深刻的印象。
(2)不要每天只埋头写程式:
工程师大部份很喜欢埋头写程式,因为这是自己最擅长,也是最不花力气的事情。但如果你每天100%时间写程式, 我保证你会自我感觉良好,但是所有人都不知道你在做什么。所以也许该换换策略,让自己的时间有多一点的部份是用来「表现自己」。「表现自己」不代表做一些 表面功夫浪费时间。而是以你的角色,来参与讨论,给出有意义的建议。工程师很喜欢只用电脑和其他人沟通,想要进度都用一个系统来追踪,想法都用email 来讨论。在职场上,很重要的是你要学习少用email,多走过去和那个人说话。也许走过去多花了1分鐘,但是你和其他人互动良好,会让你在职场上过得比较 顺利。
(3)站在老板的角度想事情:
工程师由于角色的关系,非常容易会站在「技术」的角度想事情,但往往常被主管否决而觉得灰心。公司的想法通常和 PM的想法比较接近,都是站在公司的利益想事情,极少用「技术」的角度想事情。你要试著跟他们想的一样,你的日子才会过得快乐。举例来说: 假如我们公司现在要输入10000笔资料。有两个方案,方案A是「手动输入」,方案B是「用程式自动汇入」。方案A要请10个工读生,一笔一笔输入几乎都 没有差太多的资料。方案B是支无敌厉害的程式,你开发一天,程式跑3秒鐘就全部完成。但评估起来方案A的总体成本比方案B还要低。我相信极大多数的公司经 营者,都会愿意找来10个人,做著重复的事情,一笔一笔key in资料。如果你以工程师的角度来想,你可能会觉得「这个这麼简单,一支程式就好了」,然后开始觉得老板选择方案B真迂腐。你要试著让你的大脑跟公司的利 益sync,这样会让你好过很多。因為绝大多数的PM都知道他们的大脑要怎麼跟老板sync。在老板面前让自己显得比PM聪明的方法只有一个,那就是大脑 和公司利益的sync做得比PM还彻底。
(4)用PM害怕的弱点有效去争取更多开发时间
PM很喜欢每个东西都如期上线,如果提早上线就更好。很多人会因为deadline而跟PM翻脸,这是不智的。 回到我那位工程师朋友的例子,他会和顏悦色的对PM说「我可以每天熬夜来把它做完,有可能可以如期上线,但我知道它会出现很多『我们』现在都没想到的问 题,那可能会让老板(或客户)觉得我们很不仔细。但如果你可以帮我争取多一点时间,我可以让它品质好很多。」对PM来说,除了要「快」以外,东西如果出来 很烂,也打到了他的痛点。我的工程师朋友用这个方法帮自己争取到了比较长的开发时间,和更好的睡眠。
(5)用PM的语言和他沟通
很多工程师会习惯用自己的语言和PM沟通,於是造成沟通不良。我们得试著让自己对他们的谈话,是世界上任何一个 人都听得懂的语言。尽量少提技术的术语,尽量少让PM觉得你用你的技术优势在打压他。因为PM不可能学会工程师的语言,所以你们唯一能沟通的可能,就是你 学会用PM的语言。
(6)变成工程师团队里面最受PM们欢迎的人
你会发现,如果叫PM们投票,从最喜欢合作的工程师,排到最不喜欢合作的工程师。大家的清单常常非常一致。而且 你会发现,在清单名列前矛的人,通常在职场上容易步步高升。所以,想办法变成那个人吧! 因为PM们对你的评价,往往在公司里,和你的工程师主管对你的评价同样重要。
(7)上班前三个月,不要试着改变公司任何东西
公司的系统、公司的project、流程,所有的东西。会是现在这个样子,都必定有它的原因。有理性的原因,也 有不理性的原因,也可能它的原因就是没有原因。但绝大多数的公司找你进去,是想要你把一个东西,在他「现在的架构」下开发出来。在前三个月,如果你觉得大 家用的开发环境很烂、测试的流程很烂、任何平台很烂。请先忍耐一下,因为除了非常非常open minded的主管和同事,绝大多数的人不会对你刚进来就想改变一切的想法太欢迎。
(8)归功给PM:
EQ好的PM会把project归功给工程师。但做为工程师的你,如果EQ够好,应该再把它归功给PM。不要因 為这是你写的code,就认為这是你自己做出来的。因为这样除了自己感觉良好外,对职场生存没有帮助。想办法「言必谈PM」。把自己和PM当成一个 team,这个project是我们一起做出来的。虽然很多PM会戏称自己是在旁边帮忙打杂的,但是他会很感谢你很体贴的把一些功劳归于他。
(9)不要为了enjoy自己的成就感,浪费公司的资源
很多工程师喜欢把公司当lab,去试验一些新的技术。如果这对公司「真的有帮助」的话,那当然很好。在做这些事 或提议前,请试着用老板的角度想,在公司利益最大化的前提下(而非个人学习或成就感),他会不会打从心裡支持你做这样的试验。如果不会,那就千万不要做。 因为在你做的很开心的同时,别人可能觉得这只是在浪费公司资源。
(10)变成一个更像PM的人
在技术上你应该向你其他工程师同事看齐,但在「性格」或「行为」上,通常你应该去模仿PM team的人。请相信我,在绝大多数公司,「性格」和「行為」近似于PM的工程师,在公司裡是最吃香的。
写这篇文章,也许还会再得到一些批评。但我只是单纯善意的,想告诉工程师们。我们应该提高自己的能见度,适度的让其他人看到我们的表现。以及让自己 变成一个外表看起来像PM的工程师,通常在公司裡会过得蛮好的。很多工程师会觉得自己被PM欺负,但PM通常不会欺负长得和他们一样的人。如果你喜欢这篇 文章,也许你可以再看看这篇: PM如何突破工程师心防?