简单说就是思考业务多于技术。对于工程师来说,第一点是最难的。越是资深的工程师越容易陷入唯技术论的深坑,而忽略了开发成本和用户体验。比如今年做了一个“汪仔不迷路”的活动,核心是一个迷宫游戏。初接触到这个需求的时候我非常兴奋,因为从技术实现的角度考虑是一个非常有意思的项目,涉及到Canvas开发、迷宫生成和寻址算法等技术细节。整个开发团队花费了将近一个月的时间开发,结果上线之后用户数据表现平平,与投入的开发成本比起来简直尬到不行,间接导致了运营团队2018年对于此类活动预算的削减。虽然首要责任不在于技术开发人员,但是开发者完全可以在项目评审时衡量开发成本从而提出建设性的调整意见。
思维上的转变是今年遇到的一个难题,解决的关键是时间和经验,倒也没有对我造成很多困扰。更大困扰来自于身份转变带来的危机感。
身份转变带来的危机感与技术leader相比,工程师的KPI更容易完成。
这句话是我今年最大的感受,与否不论,仅仅是个人观念。工程师的产出更容易量化,比如文档是否清晰、线上Bug多不多、白屏时间几秒等等,这些都是可以直观感受到的,也是衡量一个技术人员能力的基本指标。但是技术leader的产出不能是“论个的”,更多的是从技术以外的角度来评判,并且不能单纯地把团队成员的功劳汇总到一起。这是很让人头疼的,领导也曾经叮嘱过尽量将产出量化,时至今日我仍未得要领。所以目前我给自己的解决办法非常简单粗暴:多做项目,写好代码,一个在量,一个在质。达到这个目标最重要的因素便是时间,而时间恰恰是我感觉最缺乏的东西。
年龄带来的危机感我的父亲今年60岁,爷爷91岁,与他们比起来,刚刚30岁的我真没资格说自己老。然而对于从事技术开发的人来说,30岁却早已不能算年轻了。
技术开发者的核心竞争力是知识储备和学习能力。时间的积累可以增长知识储备,这是从业时间久的开发者相对于初入行开发者的优势。但是互联网技术的发展速度是惊人的,尤其是前端。回顾前几年所积累的经验和技术,很多已经成为了旧时代的产物,只能算是经历而非能力了。年龄越大,需要处理的事情越多,投入到学习技术上的精力越少,这是年龄大的开发者绝对的劣势。就好比一条百米跑道,前50米你领先于别人是因为起步早,但是后50米你的跑道上是跨栏而别人的跑道上是平地,能力相当的竞争者终会被超越。不是因为你老了,是你参与竞争的时间少了。
并且虽然年纪不小了,但是我的从业时间并不长,研究生毕业就已经27了,往后的时间更显紧迫。所以今年一个深刻困扰是:年轻不在如何保持竞争力?
我给自己的解决方案同样简单粗暴:
努力充电;
博取认同。
而我从小就是那种只要有得玩就玩,没得玩才学的货色,所以高中的成绩非常好,甚至某次月考超过了当时的女神班长拿了第一名,就是因为高中没得玩。然后到了大学就浪开了,因为能玩的东西多了。所以虽然现在工作本身的强度并不高,有更多的时间可以充电,但也只有在公司才能真正学的进去。午休时间很长,吃饭顶多半小时,剩下的时间足够学不少东西了。下班回家后就干点不费脑子的事,比如写写文档。其实我挺烦别人闷头苦学的,小时候放学后我写完作业就看电视,我爸就经常指着前邻三叔家我堂姐的房间教育我:看看你姐多好学!因为我姐的房间灯能亮到11点多,那时候我早睡着了。所以基本上每次考试她都是第一,我就在第二第三徘徊。现在觉得努力真的是一种天分,尤其是随着年龄的增长,保持努力的劲头并不容易。
前面提到了名利,工作本身可以带来“利”(工资收入),却很难带来“名”,除非做的非常出色。对于工作来说,“名”也是好东西,比如对外招聘时会有应聘者“慕名而来”,比如内部技术交流时会有人认为你“名声在外”,说白了就是别人会因为“名”而对你产生认同。但是在工作中未达到“非常出色”的程度之前,任何的工作表现都会被认为是分内之事。所以博取认同的方式无非两种:
于内 - 好好工作;
于外 - 自我营销。
工作和营销好好工作的办法说起来很简单:好好做项目、做好项目、把项目做好。做起来也不难,唯坚持尔。