这篇博客我想谈一谈有关于项目组内的事情。
从我刚刚进入项目组开始说起,当时的我,算是有些心高气傲,刚刚接触项目代码之后,发现这部分代码有很多设计得不好的地方,这里也不好,那里也不好,于是就提出来了很多的建议,对于这些建议,组长给出了一部分的解释,但是更多的却是没有给出解释,我尝试着周日加班将这部分代码整理了一通,给项目组的老成员看,他们推说没有时间,有空了看,最后不了了之。
接下来,我在项目组里混得也不怎么样,总之感觉自己和大家始终有一层隔阂,感觉自己是他们当中的异类,而他们的很多做法其实我是看不惯,也不理解的。
后来这个项目组被解散了,我来到了一个新的项目组,公司的拳头产品,一个延续了十几年的老游戏,做后端开发,接触了一些人和一些事,渐渐地领悟了一些项目组内的道理。
大学里一直向往的是互联网行业有话直说,实事求是,办公室政治少,看着其他的行业,各种潜规则,各种人情世故,自问情商不高的我,觉得互联网行业无比地适合我,于是义无反顾地成为了一个程序员。
但是实际上,程序员也不仅仅是一个与机器打交道的事业,俗话说,有人的地方就有江湖,只要是需要与人相处,需要合作,就一定有人情世故,只是不同的圈子,这种人情文化不同罢了。对于互联网这个圈子,讲究实效,讲究业绩,搞政治这一套会拖累效率,造成业绩不佳,那些搞政治,搞人情的项目组被市场逐渐淘汰,剩下来的项目组大多数都有着一套比较不会拖累效率的人际关系格式。
但这并不代表互联网行业就没有人际关系格式。
就仿佛是我见到了一个素不相识的陌生人,我看到他拎着一袋水果,直接就掏出一把水果刀上去,他肯定会以为我要伤害他,毕竟两个人素不相识,他不会以为我是要帮他削苹果,我帮他削了苹果,削得很好,他和我讲,他喜欢带皮吃,我给他讲,带皮吃不健康,上面有农药残留,但是这个陌生人会领情吗?就算我讲的是对的,我能获得他的感激吗?亦或是会获得别的什么印象?
同样地,去陌生人家里做客,我认为自己厨艺精湛,将对方家里的鱼做成了一道酸菜鱼,然后对方告诉我,他本来打算吃生鱼片的,我开始教育他,生鱼片不好,吃了会得寄生虫,酸菜鱼健康美味,我说的都很有道理,但是又道理有用吗?对的就有用吗?对方会感激我为他指出生鱼片不健康吗?
实际上在项目组里也是这样的,比较外向的新人进入之后往往会这里不顺眼,那里看不惯,林林总总意见很多,就和我当初一样,这些意见大部分其实是很中肯的,是对的,但是这并不意味着别人会待见我,我将代码按照自己的想法改掉,他们也不会感激我优化了代码,相反,很多时候他们不会接受我这样的改动。
然而,这种事情就真的不应该做吗?
当然应该做,但是中间有一个区别,那就是有没有获得别人的尊重和认可。
从事互联网并不意味着人人都是中心,项目组内总归是有个地位划分的,毕竟人与人之间的信任建立需要时间,需要契机,TCP还得三次握手呢!何况是人!在别人尊重,认可自己之前,提出过多的意见并不能快速地拔高自己的地位,效果适得其反。
作为一个在项目组内没有任何人脉基础的新人,首先就是得了解项目的方方面面,而且要平等地看待自己的同事和上司,一般在互联网行业,尤其是技术岗,组长一定是组内最有能力的人,起码是最有能力的人之一,我能看到的问题,组长一定能get到,他不去理会,不去改,一定是有其道理的。
那么遇到建议怎么办?当然不能假装忘掉,遇到想要提出的建议,可以记录在一个小本本上面,逐渐积累,这些东西不应该是你搬石砸脚的累赘,而应该是中后期拔高尊敬值的垫脚石。
回到上面的例子,加入是两个熟人,其中一个拎着一袋水果走过来,另一个拿出水果刀,结果就是两人开开心心地吃果子,顺便聊聊路上遇到的那个强行削皮的怪人,就算其中一个人喜欢带皮吃,在好友的指点建议下(带皮吃不好),他也能理解好友的一片苦心,会提出感谢,反而增进友谊,之所以不会出现看到水果刀就以为要伤害他,原因就是两人之间有了尊(ji)敬(qing)。
又比如是夫妻之间,妻子把丈夫用来切生鱼片的鱼煮了,丈夫回来看到了,也不会责怪妻子,两人一起吃酸菜鱼,其(gou)乐(liang)融融,妻子顺便给他讲生鱼片的不利之处,丈夫也能明白妻子的一片苦心,因为他们之间也有尊敬,或者说是信任
换到项目组也是一样,一个刚刚进来的毛头小子开始大刀阔斧地修改代码,他根本没考虑过开发成本,测试成本,像是一个愣头青一样执拗地秉持着自己的观点抬杠,这样谁都不会喜欢的,项目组里,意识形态的统一是很重要的,我们公司有两款拳头产品,一款主程经常换,经常空降一个主程过来组织工作,另一款主程几乎不变,就算变动了,也是脉脉传承,不会出现空降,每一任组长都是从组内一点点爬上来的,显然后面一个项目组更加稳定,代码各方面更好,当一个新人进来之后,想要动摇原本早已约定俗成的意识形态,必然会感觉全世界都在针对自己。
按照大项目的规矩,已经完成了的大模块,只有在彻底维护这个模块的时候才考虑重构,不然保持可用就行了,就像我做的游戏,战斗系统我早就看不惯了,但是已经用了十年了,无数的玩法依赖它,我改了之后,可能要测试一年,两年,甚至更久都还会有兼容上的报错,而每一个报错导致的后果,都是所有人都无法承担的大事故,于是我们秉持的观点就是,有更优秀的代码组织结构,可以用在新的模块上,旧的模块尽量不要去改。
如同一开头讲的,互联网并不是一个存粹愣头青凭借着热血和能力就能闯出一片天的地方,当然这两者很重要,但是程序开发毕竟是团队协作,涉及到团队,就必然会和个人有冲突,这个时候的让步,取舍,沟通,就成为了很深的学问,互联网相比其他圈子的文化,优点在于,提出颠覆性的观点,所需要的尊敬成本没有那么高,能力和资历的占比比较合理。
只要是存在于这个世界上的事业,必然与人打交道,需要与人打交道的,就必然没有绝对的只看能力,只看能力的事业,或许只存在于梦里吧。