新鹅求生记

西天之外,还有西天。

每个阶段,都有错觉。比如,以为上大学等于解放,以为工作了就可以浪,以为有对象就爽,以为在帝都就有生活质量。

太美的承诺因为太年轻,事实情况是,酸爽!

小鲜鹅初到鹅厂也不例外,以为有导师保护,以为有美女呵护,其实自己傻白甜的像头猪,背着绩效不知该往哪儿走。

1 求生

1.1 第一幕——你是我的专属天使

是的,有幸能接手一个线上系统。原来,我对系统的理解是:exehttpweb...

事实情况是,系统=exe+http+web+...

维护系统等于维护与系统相关的一切,她的七姑八大姨,她的大儿子小女儿,都要了解,都要照顾好啊。

想想以后也会有自己的娃,就当是提前学习了,告诉自己不怕不怕。

每天便是处理case、修复bug、被产品催、被用户骂。没事,谁让你是我的天使呢。

1.2 第二幕——我和产品有个约定

产品的梦,研发来实现。研发的梦,产品不管。

我要这铁棒有何用?算了,都是为了生活,你说啥就是啥,扛起锄头接着干。

然后,我耕耘一地稻香,你却告诉我想要一片花海。

口头言语,死无对证。我以为我懂你,你以为你懂我,谁料你我是最熟悉的陌生人。

又是一季,花香四溢,我以为你会笑红脸,你却嫌我给太晚。

都给你吧,黑夜与白昼。你满意了,却又想让花里开出稻香来。

我还记得我们的约定

一辈子幸福的约定

为你写的那首歌

他也偷偷的掉泪了

我比以前还更爱你了

2 思变

以上故事纯属虚构。

但是,可以表达出新人入职的迷糊心情。为啥迷糊了呢,因为看到了问题但是不知道是不是问题。然后又没有答案,只能自己慢慢体会。

以下是,这大半年我的热点迷糊问题。

2.1 为什么有的系统看起来很low

刚工作的时候我对一些ugly的方法很反感,觉得自己可以划船不用桨。经过了一段时间的维护,我发现自己也会用一些ugly的方法来解决问题了...

尽管这样的次数极少,但是对于一个有洁癖的程序员来说,还是很难受的。

究其原因,有两点:

  • 需求变化太快
  • 成本、风险考量

需求是一个接一个,变来变去。当需求无法得到完美验证的时候,要求把需求实现的很完美,也是不值得的。因为很有可能过两天这个需求就没了。

如果花很多时间,用很perfect的方法解决一个很小的问题,是不太值得的。或者说,把一个稳定的部件(哪怕用很ugly的方法实现)替换成很优雅的部件,不但不会引入额外收益,还会引入本没有的风险。

这虽然是比较合理的解释,但是,求稳也意味着失去活力。所以,富贵险中求,有时候也要敢于对自己动刀子。

事实情况是,我们对一个跑了很久,相对稳定的系统动了刀子。感受就是,很痛苦,未来一段时间会继续痛苦着。

现在来回答“为什么有的系统看起来很low”,因为需求的不确定性和变化导致系统要改,而每次改动都要考虑成本、风险。

对于这个问题,我觉得,每一个系统都只能解决当时或者一段时间内的需求,不要指望一座茅草屋能够变成高楼大厦。在其生命周期内,可以不断修葺,让其发光发热。但是,当需求无法满足的时候,就应该考虑重构了。

对于重构,要警惕。不能为了重构而重构。除了要解决原来没解决好的问题,还要考虑能不能带来新的收益。不要闲的没事去重构,考虑下有没有新的问题需要解决,创造更大的价值去吧。

2.2 为什么产品让研发又爱又恨

产品与研发真是一对欢喜冤家,之前看产品和研发的撕逼文章,也是无感。现在终于肉身体会了...

原因有:

  • 需求有变
  • 缺乏共同语言
  • 缺乏共同目标

在“2.1”中已经解释过,需求变化导致研发无法掌控系统,需求是产品提的啊。

研发会的语言不少,但都是程序语言,而产品是描述逻辑,语言不通,交流困难。即便是完成了交流,也难保证研发做出来的,就是产品想要的。这就导致了矛盾加深。

研发是想漂亮的实现。产品是想快速满足用户需求。一个是追求技术,一个是追求体验和收益,俩人不在同一时空。所以目标不一致,导致矛盾进一步加深,各说各有理。

现在来回答“为什么产品让研发又爱又恨”,因为需求变化,导致研发压力大,且产品和研发追求的不一样,无法相互理解。

对于这个问题,我觉得,不想当产品经理的技术不是好研发。不要把产品的希望全部寄托于产品经理。研发也要尝试去理解需求,理解产品。这样看,似乎是研发多干了活。想想那些年白改的需求,改乱的架构,整出的bug...我觉得是值得的。而且,这不白学啊,为自己的未来创造更多可能性,稳赚不赔。而且,研发还有优势,对产品所有的实现逻辑都非常清楚,毕竟代码是一行一行写出来的。

对于需求实现,尽可能的将其配置化,让改动变得容易。同时,也要警惕不断跟进需求变化,警惕系统变成四不像。尽管研发织了产品的梦,但是也要为这个梦负责,噩梦伤人伤己。

2.3 为什么我很难说清楚自己的价值

锄禾日当午,研发好辛苦。有时候觉得流了汗,却很难说清楚自己干了啥。总不能把流的汗接一碗给老大吧...

原因有:

  • 只做不想
  • 只做不记

“只做不想”是指,以完成需求为目标,需求完成了,研发也就收工了。但是,并没有考虑为啥要实现这个需求。这就把自己整成机器人了,只能说做了啥,却很难说解决了什么问题。

“只做不记”是指,只完成了产品的需求,却没有完成研发的需求。举个栗子,如果优化了系统,是要记录下来优化的参数的变化的。要不然只能说是感觉上有效果,但是没有证据说明。

现在来回答“为什么我很难说清楚自己的价值”,因为只把自己当成干活的。

对于这个问题,我觉得,活是干不完的。与其说不断干活,不如把活做细。把自己置身于产品、老大的角度,考虑做这个活有什么价值,需要产出什么东西。作为研发来说,考虑通过这个活能够做哪些方面的技术尝试,进一步提升自己。

尽管研发的工资不算低,但是那是血汗钱啊。要警惕面向工资编程,把活做全,考虑各方利益,提升自己而不是压榨自己。再怎么压榨也买不起房子,还是好好奋斗吧(逃

2.4 为什么我觉得自己在搬砖

工作一段时间后会有一种感觉,觉得自己就是一个搬砖的,风里来雨里去...还记得年少时的梦嘛,替自己想一想吧,多爱自己一点。

见“3”。

3 悦己

“悦己”不是说让自己高兴,是说替自己做长远打算。目前互联网人都还过得挺开心的,吃喝不愁,人文关怀,看起来很和气。

不管是出于对技术的追求,还是未雨绸缪,都要有点忧患意识。

原因有:

  • 技术变化快,一不留神可能就落伍了
  • 互联网工作节奏快,思考自己的时间比较少,大部分时间在思考工作
  • 工资会随着工作年限增长,给人一种能力也会随着工作年限增长的幻觉
  • 外界环境浮躁,当大家都浮躁的时候,就更应该静下心来了

对于这个问题,我觉得,可以从三方面入手:

  1. 工作(深度)
  2. 学习(广度)
  3. 押宝

工作是指,尽可能的把项目做成自己的,也就是说为自己工作。可能会有人觉得这是鸡汤,但是反问一句,能不工作吗?显然不能啊!所以,都是工作,为啥不追求更大的价值呢。

学习是指,多了解技术变化,拓展视野。算是跟进技术的兜底方案。学习的来源有很多,比如公司内网里,技术博客里,知乎里,朋友圈里,唉,反正能凑个热闹就凑呗。

押宝是指,定向学习,找一两个觉得比较有前景的方向,花时间去学习,去应用。万一压中了呢。

2017年,准备押宝“深度学习”,新年快乐!

_以上内容仅代表个人观点,与公司立场无关。_