点个关注👆跟腾讯工程师学技术
引言|我们日常工作中我们经常发现部分技术能力和自己相当的人,但绩效、成长速度、合作口碑方面却远超自己,具体是什么原因呢?核心差异是软能力。笔者结合十年来的工作经验,讲述技术之外大家应当具备的软能力,期望可以抛砖引玉,提升大家对软能力的认知和重视,从而有更好的职业发展。为什么需要提升软技能
很多开发同学主要精力在关注技术,忽略了软技能的重要性,导致遇到一些问题,常见问题有:
- 每天忙忙碌碌,但年底回头看,却感觉没有几件事情是有价值的。
- 和产品的沟通要么盲从,要么对立,比较难达成自己的沟通目标。
- 只关注手上的工作,缺乏对项目整体的关注,缺乏主动跟进、主动同步的心态,不能做到『做事让人放心』。
所以在开始之前,我们先简单聊聊学习软技能的重要性。
(一)软技能决定了你的职业上限
人们常说的一句话是:硬技能决定一个人的职业下限,软技能决定一个人的职业上限。虽然不一定对,但说明了软技能的重要性,而且随着我们年龄的增长、职级的提升,软技能重要性越来越明显。
成为高级工程师后,负责的事情增多,日常工作很大有部分是沟通、协调、项目推进,软技能不足,会感觉比较吃力,导致绩效产出不理想。
(二)软技能可以加速职业发展
从我自己总结的开发一般成长路径来看,里面也包含了许多软技能,包括责任心、沟通、项目管理,推动力、带人等,如果有软技能的加持,能让一个人快速成长为做事放心、独当一面的团队骨干,从而加速自己的职业发展。
(三)软技能学会后可以受益终身
软技能多数是通用技能,和公司无关、岗位无关,能力可迁移性比较强,学会后可以受益终身。如沟通能力,可以应用到各种生活场景、工作场景。如何提升软技能?
接下来我们重点看下如何提升软技能,在所有软技能里最核心的就是owner意识,这决定了我们对待工作的态度。
(一)软技能的核心是owner意识
owner意识就是以主人翁的心态去做好每一个项目,说白了就是把自己当成项目、产品的老板,尽力把事情做成,对其成败负责。
有owner意识,才有把一件事做好的原动力,才会积极主动去学习提升自己,和团队成员做好协助,以达成项目、业务目标。
也许有人会说,只是打一份工而已,没必要如此付出,成功了老板才是最大受益者。
其实除了老板之外,我们自己也是最大受益者,除了受益于结果,更受益于过程的成长。
换个角度说:我们需要像经营公司一样经营自己的职业生涯,思考如何提升自身的服务质量,而工作的过程即是我们为客户服务的过程,也是我们提升自身竞争力,形成个人品牌的过程,因此我们不仅是为别人工作,也是为自己工作。
而我们做成的每一个项目都是职业生涯的代表作,证明我们自己这家企业的实力,是职业发展的奠基石。
有owner意识,做事的心态会截然不同,例如我们常见的案例:
情况一:产品给开发反馈BUG
产品:开发哥哥,我线上体验发现xx存在问题
..10分钟过去…
开发:该功能不是我负责,麻烦问问其他人
产品:[一脸黑线]
情况二:产品给开发反馈BUG产品:开发哥哥,我线上体验发现xx存在问题开发:我马上和相关同学一起快速定位修复下,有结论同步给你..10分钟过去…开发:问题已经修复,感谢反馈,我们后面会做XX优化,保证现网服务稳定性。
有很强的owner意识的同学,不仅关注自己的工作,更加关注整个项目的好坏,并尽量往前多想一步。
接下来我们继续看下除了owner意识,还应该具备哪些重要的软能力
(二)软技能包含哪些?
软技能包含的范围很广,基本涉及所有和人有关的方方面面,大到『三观』,小到如何做好每一次『沟通』 。本文分为自我提升、团队协助两个方面,分别讲述职场中较为重要的四个软技能,但因为篇幅限制,每一项只是简单的抛砖引玉,如果感兴趣,大家可以找相关资料进一步学习。
自我提升
时间对大家是最公平的,做好时间管理,提升单位时间价值产出,我们才有时间来学习、思考,并运用学到的知识、技能提供高质量的产品和服务,从而形成个人成长的正向飞轮。
(一)时间管理
我们人最宝贵的就是时间,比时间更宝贵的是注意力,注意力在哪里,收获就在哪,所以时间管理应该包括两部分:时间分配管理、精力管理。
工作中随着负责的事情越来越多,大部分人很难像刚毕业那样『可以安静的写自己的代码』,沟通需求、讨论技术方案、各种问题跟进、问题咨询等,除此以外各种娱乐app、各种消息推送也在抢夺我们的注意力。
如果不做好时间管理,可能一天下来真正有价值的工作时间没多少。
人类虽然有生物钟的概念,但我们对时间的感知其实是非常不准确的,如果不记录,我们根本不知道时间花在哪里了?我自己做过时间记录,事后发现结果跟自己感觉的极其不一样,并且能发现自己的高效时间,建议你也可以试试。
因此要做好时间管理,首先第一步就是记录、分析自己的时间,看看自己的时间都花在哪里了?对记录时间感兴趣可以看一本书《奇特的一生》,作者以分钟的粒度记录时间,了解自己时间花在何处,而且通过记录能精准的预估自己做某事需要花费的时间。
时间记录的方法有很多,核心是必须在每一项工作完成后『立即』记录,才能保证正确,靠事后回忆来记录是不靠谱的。
正常我们可以以半个小时为粒度记录,然后分析自己的时间都花在什么地方了,分配是否符合以下原则:重要不紧急 > 重要且紧急 > 不重要但紧急 > 不紧急不重要,把浪费的时间、低效时间、非生产性时间找出来。
许多人会把时间耗费在第三和第四象限,导致重要不紧急的事情一直没时间去做,从而导致紧急的事情越来越多,形成恶性循环。
也可以像《小强升职记》里说的更简单的记录这半小时是属于哪一部分:集中精力工作、无意义浪费时间、真正的休息。
时间统计后可以复盘分析哪些时间是可以优化的,比如:
我们大脑天生厌恶不确定性,如果我们没有相关计划,没有确定的计划安排,大脑会倾向于享乐,容易被各种app吸引走。
我自己的习惯是每周五做好下一周的工作计划,然后每天早上列出三项今天必须完成的高优任务。
在计划时务必遵从『要事第一』的原则,阶段性把一件事做好,这样可以提升自己的专注力,也会让自己因为完成任务而获得成就感,同时也可以适当激励自己。
我们可以把时间分成三部分:整块时间、碎片时间、暗时间,并根据事项合理安排
用来做零碎的事情,比如查看邮件、回复信息、整理东西、咨询问题等
3.暗时间:在做无需动脑的事情时,可以利用的时间。如开车时、洗澡时、干家务、蹲厠所时,可以用来听音频、思考问题等,许多创新都是在暗时间获得灵感的。
这里我们应该尽量将时间做整块的运用,如果将时间分割来零星使用,纵然总时间相同,效率也完全不一样,日常工作中较多时间需要较长的连续时间才能完成,比如方案编写、核心模块编码、人际沟通等。
以上是我认为时间管理比较重要的几点,入门推荐《小强升职记》一书。
总体来说提升时间利用效率,是我们做好一切事情的前提,若不将时间管理好,要想管理好其他事情就只是空谈。
“认识你自己”对我们一般人来说比较难,但“认识你的时间”却是任何人只要肯做就能做到的,这是我们提升时间效率的有效途径。
当我们遇到问题时,有些人选择抱怨、有些人觉得是自己努力不够,但这个时候更应该思考是否自己能力不足,是否应该进一步学习,对应NLP人才分类的第三流人才,能做到这一点至少可以成为基干。核心就是善于发现问题,并通过学习不断解决问题,提升自己把事情做成的能力。
例如我们技术同学在工作中,经常会遇到一些挑战,比如性能问题、代码编译效率问题、问题定位效率问题等,很多人选择忽视,其实这就是最好的学习机会。我们应该抓住机会,快速学习,并在工作中迅速验证。
“股神”巴菲特在2022年年度股东大会上被问到“超级通胀下你应该买哪只股票”的问题时,巴菲特说:“目前通胀下最好的保护方式就是投资自己,不管遇到什么情况,个人的才华是不会受到通胀压力的。”
确实,最好的投资就是投资自己,很多父母对小孩非常舍得花钱报班学习,对自己的学习投资却少得可怜,其实我们自身更应该不断的学习提升,因为我们更容易学以致用。
哪怕每天只进步一点点,通过复利的作用,长久下来也能发生极大的改变。
如果每天进步1%,一年以后你的水平是37.78(1.01^365=37.78)
如果每天退步1%,一年以后你的水平是0.025(0.99^365=0.025)
很多人学习了半辈子,却没有花时间去学习过如何学习、如何高效的学习,导致学习事倍功半。
在学习方法上,非常经典的是『费曼学习法』,其核心是:以教代学,当你教会别人的时候才说明你真正学会了。这里的核心是需要用自己的语言来描述知识,教会别人,语言组织的过程也是自己消化知识的过程。如下图可以看到,教授给他人是留存率最高的学习方式:
首先是了解知识全局,知道『自己不知道什么』,然后确定学习目标,并搜集权威资料,制定学习计划进行学习,过程中不断结合实践进行思考优化,最后总结输出对外分享。
3.提升自己抽象总结的能力,逐渐形成自己的知识体系、方法论。
有些人性格偏内向,可以通过写作的方式来分享,具体可以参考我们之前的文章 【手把手教你写好技术文章】
关于终身学习,先给大家分享一个『达克效应』,我们很多人工作3-5年后,就容易走向『愚昧之颠』,觉得自己特厉害,什么需求都能搞定了,形成认知偏差,于是停止学习,每天按部就班地过日子。
只有少数人能通过持续学习或者他人的指导收获 "知道自己不知道",从而进入『绝望之谷』,而后通过学习、思考进入『开悟之坡』,最后走向『平稳高原』,成为真正的大神。
已知的大神们基本都具备成长性思维、终身学习的特质,从而实现了伟大成就。
根据我的经验最后强调一个点:学习不在于多,而在于精。把一本经典的书反复看,真正吸收,使之融入到自己知识体系,改变自己的认知,并应用到实践,改变自己的行为,好过泛泛的看十本、百本书。
关于学习,推荐书籍:《认知觉醒:开启自我改变的原动力》
(三)质量意识
对于开发而言,我们最重要的交付就是程序,交付的质量好坏直接决定我们的技术口碑,也是我们和他人建立良好合作关系的前提。
如果自己的线上服务经常有问题也会让我们疲于“救火”,根本没有精力做其他重要不紧急的事情。
所以日常开发工作中一定要有工匠精神,要对自己的工作质量负责到底,不要指望他人来帮助自己发现问题,没有人喜欢给别人擦屁股。
不要『想当然』,对于模糊的边界、可能的异常和产品沟通确认清楚,确保需求的完整性、理解的一致性。
有些人直接上来就撸代码,后面才发现部分逻辑没有考虑到。先谋而后动,先完整思考设计方案非常重要,同时积极邀请高阶工程师帮忙评审、完善方案,确保方案的完备性,为后面的编码工作打好基础。
关于如何提升代码质量,这部分材料非常多,这里不复述了
我们应当对每一次外网抱有敬畏之心,比较好的做法是建立自己和项目的checkList,对于可能出现问题的事项逐一排查,确保不遗漏,检查清单很多时候非常有价值,具体建议学习『清单革命』一书。
比如我们团队,有了checkList就可以大幅降低低级错误。
建立完善的监控体系、日志链路非常重要,以确保能快速发现问题、快速定位问题,做大对线上服务『心里有底』。
(四)产品思维
日常工作中,开发做的事情更偏执行,负责把按需求把功能实现好,导致大家偏工程思维,缺乏产品思维。
产品思维的核心是用户驱动,以产品为媒介,与用户进行价值交换;本质上交换的不是产品这个媒介,而是产品背后的价值。
所以不局限于我们在做的产品,只要是我们对外交付的,都可以认为是产品,包括一封邮件、一个文档、一份代码,包括前面说的,你可以把自己也当做一个产品,『你』这个产品的用户就是你的同事。
因为缺乏产品思维,导致很多开发的输出比较粗糙,比如有些开发写的代码、文档、邮件格式等,更多站在自己的角度,怎么快怎么来,较少去考虑阅读者的用户体验。特别是一切长期的维护的项目,代码、文档阅读花的时间要远超过编写时间,如果体验不好,其实非常浪费自己和他人的时间。
如果我们能带着产品思维去做好每一件事,关注用户的体验,并听取用户的反馈,不断迭代产品功能、服务,相信一定会获得更多人的认可,有更多的职业发展机会。
- 为什么要做这个产品?核心是为了解决什么问题、痛点?
- 用户为什么要选择这个产品?相对其他产品有什么不一样?
- 用户是谁?他们有什么心理特征、社会特征、行为特征、认知特征?
- 用户是在什么情景下使用该产品?如何通过产品和用户建立连接?
推荐书籍:《梁宁.产品思维30讲》《俞军产品方法论》团队协助
关于软技能,除了个人成长部分,另外一个非常核心就是团队协助方面,因为我们的大部分工作都是需要和他人共同协助才能完成。
(一)沟通
我根据自己的理解,对我们日常工作的沟通做了简单定义:
沟通是指为了设定的目标,秉持合作共赢的理念,以他人愿意接受的方式,把信息、思想和情感在个人或群体间传递,并达成共同协议的过程。
沟通过程就是我们信息传递的过程,期间因为大家知识背景不同、表达方式的局限、干扰等因素,导致最终的信息接受其实比我们想象的要低很多,所以重要的事情一定需要反复确认双方理解是否一致,具体如图:
所以才有一句话『被误解是表达者的宿命』,考虑到信息的大量丢失,就要求我们在沟通时不要想当然,以为说一遍别人就理解,多一些『double check』,确保大家的理解是一致的。
同时因为每个人的认知不一样,我们需要用对方能理解的方式沟通,比如我们和产品沟通时,少一些技术术语,多一些常识,或者举个恰当的例子,沟通效率会高很多。
产品:开发哥哥,这个字符串是什么意思开发:稍等,我查一下代码…10分钟过去…开发:这个这个字符串是xxx技术,其原理是xxx产品:[一脸黑线]
产品同学想问的可能是:这个字符串串如何使用、为什么会出现在这个地方、以及有什么需要注意的,并不是想问它背后的技术原理。站在对方角度去思考,才能避免“鸡同鸭讲”。
即使我们表面上在听ta说话,但其实在乎的是『自己看起来怎么样』,或者『自己的诉求』是什么。而较少去真正关注『别人真正想要的是什么』,导致最终沟通目标难于达成。
而真正良好的沟通一定需要具备良好的合作共赢思维,以『合作』作为出发点,以『共赢』为终点,找到共同的目标,达成最终协议。
例如:你在一场分享结束后,被diss分享毫无价值,浪费了他的时间。
这个时候如果你一直说你的分享很干,这种是对抗式的沟通。如果合作共赢式沟通,我们首先应该分析彼此对这场分享的诉求:
听众:期望有收获
发现两者的目标其实是一致的,这个就是合作沟通的基础,只要围绕这个基础来沟通,一定可以达成共赢。
『倾』字有『全数拿出,毫无保留』的意思,如:倾盆大雨。
良好的倾听应该是全身心带情感的用心听,除了言语还应该给予情感上的回应。
生活中,总有一部分人,虽不善言辞,但你跟她聊天感觉非常舒服,核心就是倾听做得特别非常好。
原因是没人愿意跟一个只想去表现自己的人交流,但大多数人都愿意跟对自己感兴趣的人交朋友。
比如我们中国人见面打招呼:『早上好』、『吃饭了吗』等,内容信息其实非常有限,更多是表示友好的情感信息。
比如女生经常说的『讨厌』,不同场景、不同语气后边的情感可能完全不一样,需要我们用心倾听语言背后的情感良好的倾听能瞬间拉近彼此的距离,建立信任基础,从而更容易达成共识,感兴趣推荐一本书《只需倾听:与所有人都能沟通的秘密》。以他人愿意接受的方式沟通
同样一件事,不同的表述方式,给人的感受是很不一样的,如:你不能直接对一个程序员说:“你的代码有bug。”他的第一反应是:“1、你的环境有问题;2、你的使用方法不对”如果你委婉地说:“你这个程序和预期有些不一致,你看看是不是我的使用方法有问题。”他会本能的想:“是不是出bug了?赶紧看看”
你问佛祖:『我能在念经的时候喝酒吗?』『我能在喝酒的时候念经吗?』,两种表述给佛祖的感觉完全不一样,一个是恶、一个是善。
因此沟通中表述方式也非常重要,沟通中要多用“我们”,“能不能”,“是否可以”,“麻烦你”之类的客气用语,实在必须完成的,可以用“最好能”,“如果你可以……那就最好了”之类的语言,这样对方会更容易接受。
沟通中同理心同样非常重要,同理心不是简单的设身处地,而是应该带着『他的认知背景』『他的情感』『他的利益立场』去理解他的感受,并采取行动帮助他。
同理心和同情心的区别在于,同理心是对他人的情绪、想法、立场、行为等有真正的理解;而同情心则更多是情绪上和他人产生共鸣。
所以真正做到同理心其实是非常难的,很多时候我们以为懂他,其实我们根本不懂,我们未曾经历过他的经历,所以完全的『感同身受』其实是不存在的,只能不断去接近。
(二)积极主动
下图是腾讯优秀员工的标签,可以看到积极主动是优秀员工最核心的特质。
总结一句话就是:不是“要我做xxoo”,而是“我要做xxoo”
拥有超强的自驱力,积极思考,主动行动,达成个人目标、团队目标
(三)团队精神
团队精神是大局意识、协作精神和服务精神的集中体现,核心是协同合作,反映的是个体利益和整体利益的统一,并进而保证组织的高效率运转。
在工作中,我们除了关注自己的的利益,也应该关注团队的目标和利益,才能为团队创造更大的价值,获得更大的晋升空间,包括:
现实中我们部分开发甚至不知道团队目标是什么,就需要和leader主动沟通,确保自己的努力方向和团队目标是一致,实现效益最大化。
当团队遇到困难时,能积极参与,共同面对,共同解决。如:有凝聚力的团队遇到线上问题时,哪怕不是自己负责的模块,也会积极参与排查,以尽快修复,减少对公司的损失。
积极思考解决团队技术痛点,如优化技术架构、建设效能工具、优化流程、沉淀文档等。正所谓『团队影响力多大,就有多高的成就』,如果你能影响一个团队,你就是未来组长,如果你能影响一个部门,你就是未来部门经理。
(四)项目管理
而项目管理就是把事情做对的能力,而且是和其他人共同协作把事做成的能力,其应用场景不局限于工作场景,包括买房、装修、婚礼、小孩教育等都可以认为是一个项目。
因此《项目管理精华》一书将项目管理视为“21世纪独有的工作”,作者认为“每一名知识型工作者都在工作中不知不觉中扮演着’非职业项目经理’的角色”。
在我们日常工作中,虽然有时会有PM角色,但一般比例都很小,PM不太可能会细看每一个项目,这个时候就需要有人来充当owner的角色,主动承担其项目管理的职责,做好进度管理、风险管理、质量管理,推动项目能达成预期目标。
如果能做到这些,不仅仅大幅提升项目成功的概率,还可以大幅提升自身的团队影响力,建立良好的个人品牌,后续我们会分享一篇文章专门讲项目管理,敬请期待。总结
以上是今天分享的主要内容,包括软技能的核心owner意识,以及软技能个人成长部分:时间管理、学习能力、质量意识、产品思维;团队协助部分:沟通、积极主动、团队精神、项目管理,期望能对大家有帮助。
罗振宇说:软技能的本质是一种连接的能力,把自己从『工具』变成『接口』。
只有拥有良好的软技能+硬技能,才能让我们在与他人的协作中赢得『靠谱』的声誉,成为优秀的工程师,从而在工作中承担更重要角色,有更好的职业发展。