《大史住在大前端》前端技术博文集会在多社区同步更新:
字节跳动幸福里大前端团队邀请各路高手前来玩耍,团队和谐有爱,技术硬核,字节范儿正,覆盖前端各个方向技术栈,总有位置适合你,Base北京,社招实习都有HC,不要犹豫,内推简历请直接瞄shiwenqiang@bytedance.com~
[TOC]
下文只是自己对比一些行业现状和过去半年经历的反思,并不影射任何公司任何部门,我在新团队工作的很开心,和优秀的人做有挑战的事是非常有趣的经历,文中的观点和认知也仅是当前这个时间节点上的一些感悟,未来自己打脸也不是没有可能~
农历年前的倒数第二天,我顺利完成了试用期答辩,正式成为字节跳动的前端工程师[撒花庆祝.jpg]。这半年来过得并不轻松,但很庆幸自己收获了认知升级。我们大多数都是天资平庸也没那么自觉的普通人,只有依靠极致的忙碌、压力和高人的点拨才可能获得认知升级,前提是你心态不能崩。面对压力,我们的本能反应都是逃避,只要有一丝余地,都会更期望沿用旧的思维和行动模式,直到无路可退的时候,才会认真思考该如何去解决问题,而这才是能够承载我们未来走得更远的东西。
你能创造更多价值吗?
当分配给你的任务无法在正常的工作时间内完成时,我们最容易想到的解决方案就是延长时间,也就是加班,因为这段时间你本来也没有安排什么其他更有价值的事情,可能牺牲的不过就是打游戏或者追剧的时间,它们的缺失对于幸福感并不会有实质性的负面影响。相比之下,还不如用来加班来获得更多的职业发展空间或者挣点加班费。更重要的是,对于一线的开发者而言,你的行为时刻都是被同事看在眼里的,如果大家都在加班,常常早走的你就会显得很不合群或者工作不饱和,没有人会因为你工作效率高而敬重你,但却很有可能因为与众不同而排挤你,这也算是身处底层的悲哀,这个时候大多人都不想成为出头鸟。
很快,晚上9点~10点变成了常规的下班时间,甚至更晚,自己心底里觉得还可以承受,尽管业余时间被工作占据,但公司提供的晚餐和夜间打车免费的福利还是挺香的。我们总对自己说【过了这段时间就好好休息一下】,但回头看看时常常会发现“这段时间”似乎从来就没有结束过。长期积累的疲惫和工作生活的失衡可能会带来很大的问题,只是它们一直没有积累到爆发的程度。越是忙碌,就越要挤出时间自我提升和思考,我们都期望能够【有完整的时间来系统地提升自己】,但其实你心里比谁都清楚,这几乎是不可能的,只有接受这样一个前提,才会开始寻找新的办法来完成自我提升,过程可能是连滚带爬狼狈不堪的,但总比站在原地自欺欺人要好得多。
自我提升并不一定需要在业余时间,对工作本身进行复盘和优化,针对实际问题去快速学习相关的知识并在工作中应用可能比单纯地学习新技术对你更有帮助,但如果你在脑海中认定是【忙碌导致了自己没时间提升】,很容易会陷入一个”越忙碌就越难以提升“的死循环,并最终面临被淘汰出局的风险。底层的忙碌创造的价值是非常有限的,希望你能尽早意识到这一点,不要搭上了健康感动了自己,最后换得一个尴尬的结局。
如果逃避不了加班的事实,那么就多想想如何让它的收益变的更大吧。
你能创造更多价值吗?
你可能会说【我日常已经需要加班到很晚,真的到极限了,任务再多的话那我只能选择辞职】,但事实上如果Leader真的把更多的事情强行分派下来时,我们最容易做出的选择就是投入更多的时间,哪怕自己已经疲惫不堪,哪怕自己心里烦得要死,因为我们“辞不起”,银行的存款并不足以让自己潇洒滴离开。但你不知道的是,对你来说,退一步可能不过就是换一份工作,但对于很多中小企业的老板来说,很多时候退一步可能就意味着直接出局。
我们来假设一种极限的状况,假设现在Leader分配给你的任务每天需要25小时才能做完,如果做不完的话他就和你同归于尽,那你觉得自己做得到吗?我想至少你不会那么快就给出【一定做不到】的论断,【为问题寻找解决办法】和【为困难寻找更多借口】看起来都很忙碌的,但只有前者才有破局的机会。
在这个极端的假设下,我们只能尝试提高效率来达成目标,毕竟即使不吃不睡你也不可能把一天变成25小时。当你放弃【投入更多时间】这个选项时,会发现思路反而会被打开,因为提效的方式有很多,而大多数都是和行为习惯有关系的,只要刻意练习就可以做到,比如把平时走路通勤改成小跑,比如减少跟同事聊八卦的时间,比如通过练习打字或是记住更多快捷键来提高开发效率,比如编写自动化脚本去来分担日常生活中一些重复性较高的事务等等,再比如购买一些好用的办公用品或是学习一些高效能人士做事的方法论(例如金字塔原理、各种时间管理方法等等),这些细小的点非常多,你可以一点点来养成这些习惯,一段时间的努力后,你会发现25小时完成35~40个小时的工作也并非绝无可能。
也许我们从最开始面对任务量增加时就应该优先思考如何提效而不是以更多的时间为代价,但延长时间和改变习惯相比似乎的确更轻松,笔者自己也是在连续11-12点下班的疲惫感中才意识到需要提升工作效率的,庆幸的是它见效很快且收益明显。工作效率提升后,你又可以愉快地加班了。
你能创造更多价值吗?
工作效率的提升大概可以将原本的产能提升1.2~1.5倍,它对于个人而言更有价值,原本需要加班才能够完成的工作,现在只需要常规的时间投入就可以完成,如果你仍然不得不加班,至少这段时间是可以用来自我提升的。但很快新的问题又出现了。在一次自己负责的紧急项目中,粗评的工作量大概需要30人天,但产品给的期限只有7天,那一瞬间我就知道这件事情已经不是靠加班熬夜就能够应付的了,于是赶紧请求支援,从隔壁组调来3位同事来一起加入项目攻坚,最终才如期上线。在为期40天的开发周期中,我的个人代码贡献量超过5万行,产出效率几乎是外包代码量要求的10倍,但自己并没有因此而觉得沾沾自喜,第一因为过程真的很辛苦,自己觉得非常疲惫,我很清楚这不是一个可持续的状态,第二是因为极致的投入让看到了自己个人能力的极限,我认可自己的能力,但也意识到了风险:如果一个关乎存亡的项目恰好需要11个初级水平的工程师才能完成,那即便自己一个顶十个也无济于事,想要承担更大规模的任务,创造更多的价值,就需要依赖团队,当你能以正确的方式把3-5个人组织起来一起去做事时,如果你们实力相当,整体的产出通常都会大幅增加,哪怕其他人的水平不如你,你也可以因为其他人的加入而拥有更多时间去聚焦那些难度较高的事情,同时也让自己保持一个相对良性的工作状态。
如果老板要求你对一个大型项目进行排期,你肯定不会说这个项目很简单,我一个人就可以搞定,只不过需要1年时间,你觉得老板会不会骂人?作为一个技术管理人员,你可能更需要告诉老板这个项目评估下来预计是xxx人天的开发工总量,以目前团队的状况,哪些人可以投入进来,还有多少人力缺口,最迟需要什么时候到岗,否则就得延期或是砍需求,文档中哪些需求是你认为优先级比较低或者可以砍掉的等等,这才是老板做决策所需要的信息,而不是跟他讲你有多牛逼或者你用的技术有多牛逼。想要带领团队,就不太可能凡事都深入细节亲力亲为,你需要在宏观和微观之间找到那个恰当的平衡。我在刚开始带团队的时候,总是不习惯把事情完全交给别人来做,以至于同事觉得工作太轻松,而我自己疲惫不堪,幸好Mentor及时在沟通中向我指出问题所在,很多事情对自己而言亲力亲为几乎是没什么意义的,但对别人而言却可能是很好的锻炼机会,我们不应该剥夺别人接受挑战的机会,成长是每个人自己的事情,你不能替别人完成他该走的路,你要做的是授权、信任和兜底,然后专注于属于你这个Level的复杂度更高的事情,有心的人自己会效仿,有问题他会主动问你,如果你不能信任他,面试的时候就不该让他通过。
曾经的自己很抗拒带团队做事情,因为相比于写代码而言,管理工作很繁琐而且拥有更高的不确定性,这种不确定性也会带来更多的不安,但当我真正努力到极致后,发现即使自己能够产出普通人10倍的代码量对于项目进度而言仍然是杯水车薪时,我的认知终于开始发生变化,入行三年来我第一次发自心底感受到团队的必要性,如何利用自己的能力来提高团队整体的能力,这才是更值得探索的。也许成为一个技术管理人员并不比编码更有趣,但如果以结果为导向,我愿意去做这种尝试,因为在我的认知里,这是正确的事,是在宏观层面更有价值的事。
你能创造更多价值吗?
如果你和团队所有的产能都已经占满,你还能创造出更多价值吗?答案肯定是可以的,它依赖于一项软技能,就是取舍。当你能够带领一个小队一起作战后,虽然相比只有自己的时候战斗力确实得到了提升,但在一个具体的时间节点上产能的上限仍然是确定的数字,除非有更多的人加入进来,否则在团队产能固定的情况下想要创造出更多的价值,你就需要做选择,放弃相对价值较低的事务,把精力花在真正有价值的事情上,对个人来说也是一样,只是每个人对价值的理解不同,做出的选择也会不同。做更多的事情需要责任心,做更少的事情需要眼光和魄力。
当我在上一个项目中完成攻坚任务后,接下来要做的事情更多,至少包括重读产品文档提升对业务的理解、安排后续的特性迭代、深入学习理解React技术栈、搞团队基建等等,靠我自己显然是忙不过来的,如果换做是你,会如何来安排呢?我是这样想的,直接参与特性迭代的工作对我个人而言成长有限,但对于团队新人而言是很好的锻炼机会,我需要把开发任务拆成模块,分派给其他人来做,并在必要的时候提供支持;基建的任务最终受益的是整个团队,每个人都有责任参与共建,我需要做的是前期技术调研,搭好基础工程,写好示例代码,定好基建的规范,然后推动大家一起落地,而不是试图自己搞定;读产品文档的事只能自己做,这件事长期和短期价值明显,但中期价值不明显,因为对市场和行业认知的积累是需要时间的,所以我应该先拿出时间集中消化一部分资料,理清整体脉络,再减小时间投入,在未来的工作中逐步积累;最后是专项技术提升,大厂的好处就在于你不用什么东西都自己花时间研究,同事们技术水平都不错,大家分别研究不同的东西然后通过技术分享来共同进步就可以了。是不是觉得这样的思路是理所当然的?那我们来换一个格局比较小的思路对比一下。
同样是上面的事情,我也可能做出如下的判断和计划:首先是业务开发,轻车熟路几乎毫无压力,而且看起来工作量也很饱满,留给自己做吧;基建的事情可以算作技术产出,是能够让自己和别人有区别的东西,得自己做,不能让别人掺和进来蹭产出;对业务的理解嘛,那本来就是产品和运营的事情,我专注于技术做好落地和实现就行了,不用操那么多闲心;至于专业技术,团队里其他人也是才开始接触,理解不够深,我还是自己钻研吧,反正自己喜欢技术,自学能力也不错,比别人更厉害也能让自己在团队中的地位更高。
两者之间的差别不需要我过多解读,相信你会有自己的判断。做出选择本质上就是一种取舍,很多人都说“选择大于努力”,听起来没毛病,但选择不是赌博,选择的底气是来自阅历和认知的,没有过极致的努力,你凭什么拥有面对选择时的果断和魄力呢?最后换个角度来讲,即便没有到达个人的极限,你也应该提醒自己保持独立的判断,勇敢地拒绝或放弃低价值的事情,留给自己更多休养生息的时间,你不需要赢得每一场战斗,但是一旦出手,就要赢得漂亮。
还记得那个古老的故事吗,老师用石头、砂砾、细土和水一次次填满杯子,并不断问同学们【杯子被装满了吗?】。你能创造更多价值吗?经历了这几次认知迭代,哪怕毫无思路,我也会笑着说【肯定可以】,因为我知道,认为【可以】和认为【不可以】的人,最终往往都是对的。希望你也能常问问自己这个问题,毕竟大多数时候一个人的收益是和他能够创造的价值直接相关的。
最后推荐一部我非常喜欢的影片《爆裂鼓手》,希望心中有火的你,在新的一年里,不辜负自己,不辜负生命。