软件开发人员的软技能
一位优秀的程序员(或者臭名昭著的10倍效率工程师)也需要是一位优秀的队友。两者相辅相成。
仔细聆听,然后发言
沟通极其困难,所以即使你完全不是故意的,你也应该预料到这种情况会发生
如果当别人提出改变某件事的可能性时你立即感到受到攻击,那么问题就出在你身上,而不是这个想法本身。
最初发表于Giancarlo Buomprisco 的“Bits and Pieces”
写下我对成为一名好队友的想法,以及我希望我未来的每一位同事都知道的事情。
在我的职业生涯中,我很荣幸能与来自世界各地的团队共事多年,他们有着不同的工作方式、文化和经验。当然,无论是从个人角度还是技术角度,这段经历都有过起伏。
这让我经常反思,每个团队的软技能水平不仅影响着技术成果,也影响着个人健康和工作满意度。因此,我每天都努力提升和反思自己的软技能,并与他人分享我的想法和建议。
这篇文章最终写下了我对如何成为一名好队友的想法,以及我希望我未来的每一位同事都知道的事情。
提示:使用正确的代码共享工具来优化团队合作
使用Bit共享、安装和协作单个 JS 模块/UI 组件。无需再浪费时间配置软件包、管理多个仓库或维护繁琐的单一仓库。
在我们开始之前:什么是软技能?
软技能是沟通、情感、社交和人际交往技能的结合,使我们能够与他人良好地合作。
这些技能经常被忽视,但在我看来,它们是软件开发领域中至关重要的技能,每个软件开发人员都应该在职业生涯开始时理解并努力培养这些技能。
当然,写出好的代码很重要,但我倾向于将硬技能和软技能放在每个程序员同等重要的位置。在我看来,一个优秀的程序员(或者臭名昭著的10倍效率工程师)也需要成为一个优秀的队友。这两者是相辅相成的。
如果您即将开始您的第一份编程工作,或者即使您已经是一名老手,请继续阅读并思考以下几点。
一位优秀的程序员(或者臭名昭著的10倍效率工程师)也需要是一位优秀的队友。两者相辅相成。
培养同理心
同理心是一种理解他人感受的能力。它会瞬间将自己想象成另一个人,并试着去想象成为那个人会是什么感觉。在我看来,这是所有互动的基础。
作为必须与众多人合作的开发人员,其中有些人可能喜欢或不喜欢,我们的同理心每天都会在各种情况下受到多次挑战,例如:
-
配对和查看时
-
收集需求时
-
调试别人的代码时
-
领导其他程序员时
语言的重要性
语言和交流对我们的日常生活有着巨大的影响:很多时候,我注意到人们表现出傲慢或冷漠,这是由于文化和语言相关技能而不是缺乏同理心造成的;特别是对于那些没有 100% 掌握某种语言的人来说,他们往往比母语人士更容易被误解。
由于我所在的团队多元化,类似的情况每天都会发生;有时很难不感到沮丧。当一个人说另一种语言时,你会面临两个问题:措辞和文化差异。
当然,词语的选择可以由文化方面驱动:例如,在英语(尤其是在英国)中,我们经常在句子中使用“对不起”,“谢谢”和“请”。
当然,我们期望对方了解这一点,并在适当的时候使用相同的词语。但如果我们的对话者不经常使用这些词语(或者根本不使用这些词语!)怎么办?
我自己并不是以英语为母语的人,这就是为什么在这种情况下我能与其他人产生共鸣的原因:我对他们感同身受。
简而言之,这就是为什么程序员拥有同理心如此重要。即使我们并不真正了解,这也是一项我们每天都需要运用的技能。
先听后说
这或许是普遍适用的常识,但还是需要列出来。毕竟,作为开发人员,我们力求在生活的各个方面都高效运行。
打断同事是我在会议中看到的最常见的行为之一。如果你想知道的话,这肯定会让同事感到沮丧。
认真倾听至关重要,这不仅仅是出于尊重,即使你们对每个字都意见相左。你可能觉得这是浪费时间,但这是正确的做法。
仔细聆听,然后发言
教与学
当你试图表达自己的观点、解释某事或指导别人时,很容易显得居高临下。
沟通极其困难,所以即使你完全不是故意的,你也应该预料到这种情况会发生。
我们可以尝试使用一些方法来避免在讨论时显得居高临下:
-
当然,谨慎选择措辞很重要,我的建议是尽可能保持中立:例如,与其说是“一个糟糕的方法”,不如说是“不是最优的”或“它可以更好”。
-
停止命令,开始建议:不要说“你应该这样做”,你可以说“我的建议是这样做”
-
不要只谈论你的观点;经常提问,并检查对话者对你所讨论内容的看法
-
不要以为你对这个话题了如指掌
沟通极其困难,所以即使你完全不是故意的,你也应该预料到这种情况会发生
接受批评并乐于改变
我们的产业是创意产业。
对我们来说,我们的代码就是艺术,就像绘画对于艺术家、歌曲对于词曲作者一样。
作为一名开发者,每天都会以各种方式被评判。由于我们倾向于将自己的成果与自身联系起来,因此任何针对我们的代码、想法和观点的评判,我们都会非常在意。
我们工作中最困难的部分之一就是接受他人的批评,无论是在采访、会议、公关评论等期间。
我认为我自己还没有完全掌握这一点,但自从我成为专业人士的第一年以来,我确实有了很大的进步。
我们花费数年时间磨练某一特定技术的技能,随着时间的推移,我们逐渐习惯了自己或团队的做事方式。结果,我们越来越抗拒改变,尤其是来自第三方的改变。
还记得那个想要重构整个代码库的新人吗?或者那个想要引入 Go 语言并取代 Java 技术栈的人吗?我相信我们所有人都经历过这样的情况:我不认识你,但对我来说,他们(毫无理性地)认为这是人身攻击。
可以理解的是,开发人员讨厌改变。
如果你还没有注意到,这是双向的:
-
新员工喜欢他之前公司的架构,并迫不及待地想按照他习惯的方式重写所有内容,因为他 100% 确定这样更好
-
相反,团队习惯于他们编写代码库的方式(或继承它的方式),并且无意让新员工改变一切
当然,这只是一个普遍的情况(虽然很常见),任何一方都可能说得对。也许当前的架构确实很糟糕,需要重构,也许这个人只是一厢情愿。
关键在于,如果当别人提出改变现状的可能性时,你立刻感到受到了攻击,那么问题就出在你身上,而不是这个想法本身。你甚至还没完全理解新方法,就不理智地开始防御它。
我觉得这种事经常发生在我身上。我就是这样,很多人也是这样。我该如何确保自己不会因为自己而反对这个想法呢?
一般建议
-
如果你认为同事做得很好,不要犹豫,真诚地称赞他们
-
适当的时候给予他人信任
-
尽可能保持透明:与同事讨论澄清、修改和意见。例如,在有人不在办公室时偷偷提交代码并不是重构他人代码的好方法。开诚布公地一起讨论和思考才是
-
有时,即使你没有做错任何事,并且遵循了所有可能的建议,冲突仍然会发生;请记住,这绝对正常,我们无法掌控一切。公司和人类都很复杂,这只是对日常实际发生情况的简化。
总结
当然,这只是我个人对优秀团队成员的理解,以及一个全面发展的软件工程师应该如何与同事和职场相处的看法。这些并非科学依据,只是基于我的经验。
总而言之,我希望我的下一位同事具备以下几个方面:
-
拥有同理心会让你成为一个更好的人,尤其是一个更好的同事
-
尝试理解对方的观点,同时考虑到文化、语言以及他们的社会规范与你的不同之处
-
在听取他人的完整论据之前,不要否定他们的观点
-
在容易产生误解和冲突的情况下,尽量不要表现出居高临下的态度
-
尝试以更开放的态度接受批评和改变,并理解自己何时会不理智地为自己的观点辩护
-
有时,即使你把所有事情都做对了,也会发生不好的情况;不要灰心,这是正常的,这些将成为你长期职业生涯的经验
如果您需要任何澄清,或者您认为某些内容不清楚或错误,请发表评论!
希望你喜欢这篇文章!如果喜欢,请在 *Medium 、*Twitter或我的网站上关注我,获取更多关于软件开发、前端、RxJS、Typescript 等的文章!
鏂囩珷鏉ユ簮锛�https://dev.to/giteden/soft-skills-for-software-developers-7co