程序员生存指南:做浮夸的程序员

说服别人是非常难的一件事情,每个人都有难以逾越的心理防线,甚至有时候说服自己都很困难。虽然自己已经意识到了问题,却不愿意承认,更不会改了。直到经过了漫长的时间后,发现切身利益受损才会痛改前非。为什么说服自己如此困难?

有个朋友说话直来直去,不考虑听众内心感受。提醒他改的时候,他也有非常强的理由:我讲话直来直去是因为我性格直爽,不会奉承别人。我终于明白了,他心里觉得这种行为有非常强的“正义感”,自己就是正义的化身,那怎么能算得上错误呢,为什么要改?原来我自己也是一样的,因为“正义感”作怪而无法改正某些错误。

比如,我一直认为只动嘴不做事的人是非常可耻的,不正义的。作为“正义化身”的我一定不能跟他们一样。慢慢地走向另一个“极端”,事情越做越踏实,表达却越来越少了,变成了“踏实派”程序员。

踏实与浮夸

踏实虽然正义,但要想“站着把钱挣了”,只靠站着是做不到的。

“踏实派”的程序员有哪些表现?事情往往做得非常完美,但是做完之后呢,没人知道你做了什么,深藏功与名,甚至连老板也不知道。只知道埋头苦干,不关心自己有什么样的成绩,不关心别人如何评价自己,不关心自己的影响力。觉得只要我该做的做了,影响力自然就有。踏实派的中心思想是,尽可能多的做事,并且高质量完成。至于事情本身的价值,这不是我该考虑的。

现实中还存在着与踏实派程序员相对立的另一派,我们暂且把他叫做“浮夸派”。他们有什么特点?浮夸派的中心思想是,我做的事情一定让人尽可能多的人知道,以影响力和价值为核心来指导工作。事情做的质量如何并不是最重要的,对外的宣传工作一定要做好。

这两派的思路是完全不同的,因此在很多场景下,他们会作出不同的选择。

踏实派有需求就做,从来不拒绝。 浮夸派则会优先考虑需求本身的价值。做完这个事情是否有利于我的成长,是否对团队有所贡献?每个需求都会深入思考,是否能挖掘到一些有价值的切入点,可以去攻克的?这个需求背后的目的是什么,是否有更根本的解决方案?杂七杂八的事情如果做完真的没什么价值的,就尽可能的推掉或者把优先级放低。踏实派只站在单个需求的角度思考问题,浮夸派可以站在系统的角度思考,把单个需求和自己所负责的系统联系起来,组成一个整体。当站在这样的高度思考的时候,就可以发现很多有价值的点了。

浮夸派程序员像产品经理一样思考。踏实派只关注自己的一亩三分地,而且通常只关心技术层面的性能、容灾指标。浮夸派则还会关心其他同事的产品,提出功能和逻辑上的疑问与优化建议,如果这些建议是合理的,踏实派只能被动的接受,泪流满面的来执行这些优化。“我当时怎么没想这些问题呢?”

浮夸派更懂汇报。踏实派不喜欢和上级交流,甚至害怕交流。“领导不找咱,咱也不找领导”。浮夸派会频繁地和上级进行沟通。汇报的形式多种多样,并非只有正式的开会才是汇报。比如前面所说的浮夸派发现了其他产品的优化点,跟领导讨论一下。领导会觉得,“这个点子确实不错,而且负责这个的人没想到,你想到了,牛逼!”。这样一来,踏实派就没什么存在感了。

踏实派不喜欢开会,开会实在是太浪费时间了,耽误老子搬转啊。恨不能会议赶紧结束,回去继续写代码。在会议上踏实派程序员一般极少发言,讲话都特别快,只讲核心结论,三言两语就说完了。对浮夸派来说,每次会议都是难得的展示自己、传播影响力的机会。因此在会上的发言内容特别全面。比如在评估需求的实现时,会讲述整个系统的架构从前到后是什么样的,在某个环节可能存在什么样的问题,应该如何应对等等。即便有很大一部分内容大家都了解,浮夸派也还是会拿出来讲一讲。浮夸派讲话语速慢,特别像领导。站在听众的角度上,浮夸派一定是会议的主角,哪怕发言的内容没有很多干货,但是胜在考虑问题更全面,讲话的时间长。相比之下,踏实派就没有什么“价值”了,草草两句讲完了,会议上没有存在感。

浮夸派更喜欢进行技术分享,隔三差五的发邮件、组织会议,分享自己最近在技术上所取得的一些突破。踏实派不喜欢技术分享,虽然自身技术也很牛逼,但是因为整天只忙着埋头做事情,不考虑沉淀和总结,自然也没有东西可以分享,只能坐着看别人表演,心里还想着“你讲的我都会”。先不管浮夸派分享的质量如何,声音起码已经传播出去了。踏实派只能大隐隐于市,成为了少林寺的扫地神僧。所以每次进行公司内部的晋升答辩时,踏实派会发现好像没啥可以讲的,但是确实又做了不少的事情。

踏实派通常抵触写邮件,认为这不是自己应该做的事情。向老板和相关人同步进度这种事情交给产品来做就好了嘛,我还是安安静静的写会代码更有成就感。浮夸派就不一样了,能自己写的邮件坚决不让产品来写,甚至应该本来产品要写的都要抢过来自己写。踏实派对自己的定位非常局限,就是要把活干好。浮夸派更关注自己的外在影响力,不仅要干活,更要成为这个项目的领导者。让其他人一想到这个项目就想起自己来。

面对故障时,浮夸派可以把事故变成故事。不用等老板催促,主动地发起复盘,总结故障原因,提出改进和优化措施。如果再浮夸一点的,会把这次的故障上升到一定的高度,通过故障总结出一系列的方法论。虽然故障是因为自己导致的,但是一套操作下来,大家已经不再关注故障本身,而是这背后的一系列“有价值”的内容。如果能顺利地避免将来再出现同样的故障,那这些总结就是有价值的。

踏实派只知道用技术解决问题。认为其他的解决方案都是低级的,把所有的希望都寄托在技术上,并且倾向于在技术实现上追求极致。比如,看到代码不规范到处都是拷贝的代码,就有重构的欲望。某个框架用起来不够灵活,又想重构或者造个自己的轮子。浮夸派则以解决问题为首要目标,至于用什么技术、实现的漂不漂亮,这些都不重要。踏实派在做事情的过程中会优先考虑效率是否足够高,进而找到一些优化点出来,来体现自己在技术上的价值。浮夸派主要着眼于业务本身,解决业务问题才是核心。技术上的优化点虽然更有难度更有挑战,但在大多数人眼里,其实并没有踏实派自己想象的那么大的价值。如果踏实派把自己的能力和敢于挑战困难的特性用在浮夸派所关注的那些问题上面,一定会取得比浮夸派更大的成就。

面对挑战,踏实派只会正面迎接。 浮夸派则会发散开来。别人问什么踏实派就回答什么,从不转移话题。比如,问你对某篇文章有什么看法,踏实派只会绞尽脑汁地想,这篇文章有啥问题呢?浮夸派怎么做呢,并不会直接谈问题,咱们先聊一聊这篇文章讲的什么,思路是什么样的,文章最后想解决什么问题。等聊完以上这些内容,最开始的问题已经不重要了。虽然“听君一席话,如听一席话”,但是没关系啊,有交流的过程就好了。踏实派可能两句话就完事,聊起来特别没劲。就像让子弹飞里的六子,别人污蔑踏实派吃了两碗粉,他只会剖腹来证明自己只吃了一碗。

踏实派学无止境,终身学习。浮夸派也是终身学习。区别在于踏实派只会老老实实看书,浮夸派就特别取巧了,书看不看不重要,一定要先拍照发个朋友圈,先让大家知道自己学习的态度。微信看一看这个功能就特别适合浮夸派,这下拍照发朋友圈都省了,直接点个在看就好。

浮夸派善于总结,用互联网黑话来说就是善于“梳理”。当踏实派埋头做事的时候,浮夸派什么都不需要做,或者只挑些简单的事情来做。怎么体现价值呢?很简单,只需要把踏实派实现的逻辑、功能、策略总结一下,输出个文档让大家来看就好了。在现实中往往没这么明显,浮夸派也有一些策略避免大家一眼就看穿。

踏实派关注从0到99%的事情,浮夸派关注最后的1%。到底是前面的99%更有价值,还是最后的1%更有价值?大多数人可能觉得,“这还用想,当然是前面的99%啊!”。答案还真不一定,举两个例子。

  1. 大家一起做系统,踏实派只知道老老实实地实现基础功能,浮夸派则根据自己的经验发现了架构设计上存在的若干个风险点,需要提前优化。
  2. 踏实派的系统支撑了整个公司收入,也耗费了许多精力持续迭代和优化系统,以满足业务的增长。但是老板对收入的数字已经习以为常了,看不到什么变化。浮夸派则会像大海捞针一样,努力探索、挖掘新的增长点。哪怕只带了1%的增长,也是非常显著的变化了。

这两个例子中,谁更有价值?这是一个非常值得深入思考的问题。

踏实做事,浮夸做人

从客观的角度看,踏实派确实做了很多有价值的工作,但这些工作往往价值不那么明显,声音不够响亮。一切需要人来评价的东西,都无法做到客观公正。虽然踏实派付出更多,但是老板也是人,只能从感觉出发。所以做“踏实派”的程序员是非常吃亏的。

浮夸派的有些做法是正确的,有些做法则是欺骗他人的,如果只有浮夸那一定会越走越偏。但如果在踏实做事的基础上,适当的采取一些浮夸的做法,相信可以比浮夸派走的更快。看到这里,仿佛看到了那句经典的“把字体变大的同时让它看起来更小一点”,但这两点其实并不冲突。

要想站着把钱挣了,就得向让子弹飞里的张麻子学习,只是傻傻地站着是不行的。