软件工程师必备沟通技巧
良好的沟通意味着良好的人际关系,一旦你掌握了沟通技能,就会发现沟通是软件开发的关键因素之一。原文:Three Key Communication Skills That Software Developers Must Master[1]
虽然技术水平是让你进入公司的基本要求,但开发软件系统不仅仅意味着要有代码(Code)和咖啡(Coffee,或者换成你更喜欢的茶),要想在软件行业取得成功,第三个“C”至关重要:沟通(Communication)。
对于软件开发人员来说,要想在竞争激烈的软件工程领域占据一席之地,成熟的沟通技巧是必不可少的。代码能力这样的硬技能总是软件开发职业所必须的,但优秀的开发人员总是全面了解并掌握人际沟通的艺术,以及善于与团队内部和外部客户沟通,他们更有可能被视为有能力、成功的专业人士。
糟糕的沟通付出的代价可能和代码错误的代价相同(甚至会更大)。误解不仅会导致错误,还会造成相互指责、减少客户关系和推迟项目。更糟糕的是,它会损害品牌声誉,危及未来的工作。
对于成功的软件开发人员来说,他们必须掌握良好的沟通技巧,包括积极倾听、非语言沟通和压力管理。
积极倾听(Active Listening)
人们无法沟通的原因有很多,但糟糕的倾听是其中最差劲、最令人沮丧的一种。糟糕的倾听者试图替别人说话,总是抢在别人说完之前做出回应,或者试图在别人说话的时候插话。但是,当你打断别人说话或者发表自己的观点时,你(也许是无意)已经发出不重视他人意见的信号,这会让每个人都感到不舒服。对于程序员来说,确保所有团队成员都有空间和机会来分享他们的观点是至关重要的,因为不同的观点可以为每个人提供创造更好解决方案的机会。
那么,怎样才能成为一个更好的积极倾听者呢?首先从建立信任开始。当队友说完后,试着复述他们的想法。你可以这样说,“如果我理解正确的话,……”,然后请他们确认你的理解。这表明你不仅听到了他们的话,而且足够关心他们,确保自己收到了他们想要提供的信息。这可能听起来很笨拙,但却是一个快速的过程,你将会很快看到这么做的好处。
其次,积极倾听还能确保你与所有合作者保持一致,无论是你的团队成员还是客户。不要只是等着轮到你发言的时候才分享好想法,也绝对不要打断或强行转移话题。倾听你的团队,确认你的理解是正确的,然后一起前进。编码和团队协作都需要被重视,积极倾听是证明你的团队合作能力的绝佳方式。
非语言沟通(Nonverbal Communication)
你重视和你说话的人吗?更重要的是,你真的了解他们和交流的各种细节吗?你注意到他们的非语言暗示了吗?虽然很难量化到底有多少交流是纯粹的语言,但专家们普遍承认,很多交流是通过语气和肢体语言传达的。
例如,你可能正在与客户沟通,展示一个令人兴奋的新功能,但客户却表现的异常安静。你可能注意到同事们在做头脑风暴的时候低头看手边的论文,而没有参与谈话。他们的沉默背后可能有很多原因,重要的是要立即解决这个问题,以确保各方一致。考虑一下如果客户拒绝反馈,或者同事坚持自己想法,会造成什么样的影响。相对于几周后的事情,现在就获取各个利益相关方的真实意见,可以节省多少时间?也许你同事的想法价值百万美元呢?
非语言线索是信息的宝库,但需要时间来磨练识别和解释它们的能力。积极倾听是第一步。然后,把你看到的和听到的结合起来,知道如何根据提示采取行动。
试着问一些开放式问题,比如,“到目前为止你有什么想法?”或者在另一个场合,或许问一个要求对方给出回应的特定问题会更好。例如,“用户需要从这个屏幕切换到下一个屏幕的这个工作流对您有意义吗?”你必须读懂周围的环境,控制你的语气,不要让任何人感到不舒服。记住,你的目标是鼓励对方,如果他们不想被关注,就不要给他们太大压力。
如果你不确定,最好私下和对方聊聊,看看他们是否愿意接受这种提示。如果他们不喜欢在会议中发言,你的团队可以考虑尝试书面头脑风暴[2]会议。
压力管理(Stress Management)
软件工程师有责任做出有预见性的决定。但不幸的是,他们常常无法获取完整的信息,因此这成了一个巨大的挑战。而这些因素往往会让软件工程师感到压力,而这是导致倦怠的主要原因之一。
在大多数专业领域,压力是很常见的,软件开发领域也不例外。开发人员经常会发现自己处于压力之下,比如客户不高兴,老板询问最后期限,或者他们正在处理额外的工作。
能够在压力下有效沟通是软件开发人员必备的宝贵技能。
例如,当客户对项目超出预算不满时,软件开发人员必须有能力化解这种情况,并进行有效的沟通。这需要通过保持冷静,承认客户的不满并重申他们的话,概述项目超支的原因和下一步的计划来实现。
并不是每一个有压力的情况都能被完美解决,但通过使用强大的口头沟通技巧,软件开发人员可以处理紧张的关系,并获得一个头脑冷静和能力强的声誉。
结论
可以这么说,沟通是任何软件开发过程的重要组成部分,无论是与老板、团队成员还是客户,都需要进行沟通。沟通风格可能因人而异,但每个程序员都需要是一个强大的积极倾听者,一个细心的非语言线索解释者,以及一个在压力情况下的积极沟通者。这些技能可能需要一些时间和实践才能掌握,但它们定义了一个好的开发人员和一个优秀的开发人员之间的差别。
References:
[1] https://dzone.com/articles/three-key-communication-skills-that-software-devel
[2] https://hbr.org/sponsored/2017/05/how-brainwriting-can-get-better-ideas-out-of-your-team
评论