作者:这是你的玩具车吗
juejin.cn/post/6973483540906246152
周年总结的方式不错——除了自身的思考总结以外,去年写的阿里入职一周年总结,到现在都还会时不时有同学点赞,这给这件事增添了不小的附加值。而今,我已经入职两周年啦!在过去的一年里,得益于公司的熏陶和自己职责的变化(从自己干到实线带人干),我总结和沉淀了对我影响最大的几条Tips,在这里分享给大家,希望也能给大家带来帮助。
1. 明确自身的定位
我记得刚进入公司的时候,有小伙伴告诉我一个故事:一个P8大佬在升级为P9之后,第一次绩效考核被打了325,原因是他没有无中生有。我当时听到这个故事之后脑袋都是???,疑惑公司不应该持续培养优秀的人才吗,为什么会刚给人晋升就给人打325?后来我自己也承担了一定的管理责任,最初我自己一直在“自己干”和“带人干”中反复横跳——核心问题是:自己都干了兄弟们就闲着了,而都给兄弟们干了我干啥?
那段时间我很痛苦,现在回想起来,原因就是没有明确自身的定位。定位分为两种:
在我的这个例子里,我给自己的人设是技术核心开发,冲在一线的那种,我也很享受这种问题到我而止的状态。而公司对我的要求是带着一个小团队一起成长,在这个定位中,带领团队成长的优先级>>>自身冲锋在前的优先级。所以,如果我持续自己干,那么就不符合公司对我的定位,也就得不到认可。那么这个时候只能积极调整自己的定位,使自身和公司给你的定位match。
有趣的是,在整个职业生涯中,这样短时间内阶段性不match的情况可能会出现很多次。比如说:
| 自己的定位 | 是否match | 公司对你的定位 |
---|
P5 | 完成任务+持续进步 | Y | 基础扎实、高质完成 |
P5->P6 | 完成任务+持续进步 | N | 独挡一面、辅助团队 |
P6/P7单打独斗 | 技术核心+问题终结者 | Y | 独挡一面、辅助团队 |
单打独斗->带团队 | 技术核心+问题终结者 | N | 深入研究、促进成功、领域规划 |
P7带团队 | 技术PM+技术核心 | Y | 深入研究、促进成功、领域规划 |
P7->P8 | 技术PM+技术核心 | N | 体系构建、共赢、系统规划 |
P8 | 架构师+技术PM | Y | 体系构建、共赢、系统规划 |
每次的晋升或者组织安排都代表着一次新的挑战,必将打破你当前赖以生存的经验方法论,只有主动调整才能让自己持续match。所以现在在回头看开始那个例子,如果那个大佬是被公正对待而不是PUA的话,那么他大概率是没有明确好自己的定位。
明确不好自身定位当然是有原因的,而原因我认为主要有两个:
一是没有认识到,还停留在过去的工作方法论中不可自拔。是的,过去的工作方法论成就了当时的你,但是如果不持续更新的话,最终也会限制你,成也萧何,败也萧何。
另外一个更重要的原因是,不清楚新定位的衡量标准和行为准则。还是以我为例,理智上告诉我要放手,但是都放手之后公司会如何考核我呢,如何考核我的小团队呢,东西都给兄弟们干我就合格了?大概率不是的。**可是我该干什么呢?抛弃代码,改为制订流程规范、需求评审鉴别风险、多社交多寻求合作、和团队谈话多招聘吗?**这当然是重新定位后必须干的,但不是我想要的。还是说我自己也领一块,半个技术核心+半个管理的方式?貌似也很别扭,我自己如果领的是核心的部分,但是我又不能做到全人力投入;而如果不核心,我又领它干嘛。我一直在反复纠结,反复痛苦,直到有一天,我突然悟了,那就是向前兼容。
2. 向前兼容
向前兼容:软件、规范升级时需要尽可能遵循的一个规范。本意是新版本还继续兼容老版本,在这里指的是在晋升到下一个阶段之后,持续保持上一个阶段的能力。
但凡是志在要走管理路线的程序员,我想到一定阶段总会遇到这样的困惑——公司明面上对你的要求是管理,实际上的要求是有产出,有产出的必要条件是团队持续进步,但是管理是团队进步的必要不充分条件。不管肯定不行,而只管不干不仅伤害自己,也会逐渐丧失技术视野,最终丧失团队的管控能力,也会影响团队的产出。我认为,在当前激烈竞争,而且未来还将更激烈的竞争环境中,基层单纯的管理不会令公司满意,也不会有核心竞争力。
那么,问题来了,如何持续保持自己竞争力的情况下,让团队持续进步,从而做到有产出?
向前兼容是我给出的答案。在每个阶段,都保持上一个或者上几个阶段的能力。如下图:
尽管可以看到,从灰区到橙区,技术实现+技术架构的总体占比一直在减少,软性实力(沟通、管理等)的占比一直在增加,但是技术实现+技术架构一直没有消亡。另外,技术架构在总体的占比中还有增长。技术实现上,可以逐步从主PM->核心开发,内容上可以更偏全局设计一点,把自己当成一块万能砖,哪里需要往哪搬。相信我,万能砖不可能都被安排增删改查的,除非都是增删改查,或者这砖根本就不是万能砖。
这样,一旦事有不谐,进可架构调整快速调整,退可果断下沉撑起业务,完美。
说到这里,有同学可能又会说了,这不就是一半技术一半管理吗?换汤不换药啊。其实,向前兼容的本质是绝不放弃技术,有甘当万能砖的心态。一直保持警惕,保持压力,通过万能砖(亲身体会)+项目整体规划(总体管控),来保证团队活力和自身的技术敏锐度。说到这里,是不是感觉到这和公司要求高年级的同学写代码不谋而合。
刚才本文用了1、2两个部分描述我面对定位变化是如何改变的,3、4、5是我在这一年日常工作中感受最深的3点。
3. 复杂的方案往往来自于错误的设计
当你遇到一个代码逻辑巨复杂的时候,请一定静下心来来想一想自己的方案是否有问题。极有可能是
-
定了错误的方案
-
忽略了核心的链路节点
-
没有使用相对应的技术
导致的。这一条箴言是有位同学告诉我的,在我过去的一年中反复被验证。举个简单的例子,在一个弱性能的webview上不要期望用JS实现复杂的动画,可能你辛苦调了N久都有性能问题或者bug,改用CSS动画,大概率能流畅丝滑。
而避免错误设计的本质是平时多看多想多摄入,关键时刻才能手里有枪,心中不慌。
4. 让专业的人去干专业的事
去年因为一个技术项目需要写SQL,因为数据是脏的,SQL又复杂,我们写的贼痛苦,耽误了很多时间,最终导致产出不够。但是类似的事情其实给DA(数据分析),三下五除二就干完了。类似的,DA对于端侧的打点可能很痛苦,但是对于端侧开发,也是分分钟的事情。术业有专攻,不要轻易挑战非自己的领域——这不是勇敢,是拿自己的弱点去迎敌,还妄图以弱克强。如果真的有需要,请拉上相关的专业帮手。
另外一个感慨来自于我们的一位离职同学,他落寞的离开了搜索,但是在PDD干的风生水起。有个成语叫因人善用,没有人是完美无缺的,都有各自的毛病。代码能力强的同学就应该被多安排去coding和做技术方案,推动能力强的同学就应该被安排去横向联通。带人绝不应该只盯着别人的缺点,却看不到别人的闪光点,良将无劣兵。
5. 控制边界,追求合作
在当前的前端领域,已经从蓝海变成红海。想要靠自己,做出一个类似于React, Weex的流行框架已经不太可能了。表层的业务价值也被攫取殆尽,前端想抛弃其他端,独自做一件事的价值也非常有限。随着一大批轮子的诞生,再想靠单打独斗做一个轮子,取得正向结果的情况会越来越少。
换言之,前端已经
在这样的时代,需要以把蛋糕做出来、做大为目的,需要控制好自己的边界和欲望;同其他前端组合作,同其他技术侧合作,同业务侧合作,同运营侧合作,将所有能团结的力量团结在自己身边,做好口碑,有限度的收获自己的那一部分,这样的开发才有出路。
未来,能做出来的轮子一定是复杂的、符合特定业务场景的轮子,包层皮党,捡果子党都将不复存在;而在这一个转换浪潮中,转换的越快越好的人,才能成长和收获。
总结
以上就是我在阿里第二年的5点感悟,有关于自身成长的、有关于日常工作的、还有关于前端领域发展方向的,可能你也遇到过我的痛苦,可能你还没有遇到过,更有可能的你已经成功跨越。希望这些经验能对你有所帮助。
-END-