发布于 2026-01-06 0 阅读
0

程序员的沟通缺陷

程序员的沟通缺陷

在我之前的文章(https://dev.to/bytebodger/most-managers-have-no-clue-what-we-actually-do-k07)中,我曾抨击过大多数组织对程序员的实际工作内容缺乏了解在那篇文章中,我详细阐述了许多令人沮丧的事实,揭示了开发人员的努力常常被忽视的种种方式。因此,我在此提供一些建议作为该文章的补充。

尽管与那些不真正理解软件开发流程的人打交道令人沮丧,但我真心认为,我们程序员常常是咎由自取。你看,一个简单(却也令人痛苦)的事实是,大多数程序员的沟通能力实在糟糕。如果我们沟通能力强,就不会选择这份需要我们每天默默敲击键盘的职业了。虽然我们无法让所有人“顿悟”软件开发,但我们可以做更多的事情来确保与开发团队以外的所有人进行有效的沟通。


图片描述

模仿交流

首先我想指出一点,这一点任何销售人员都非常清楚。与他人沟通最有效的方法之一就是模仿他们现有的沟通风格。

不,我说的不是模仿别人的声音或举止。我说的是仔细观察别人选择如何沟通,然后尽可能地用他们选择的方式与他们沟通。

开发人员在这方面可能做得非常糟糕,因为他们往往已经精通了某种特定的沟通渠道——他们偏好的沟通渠道——然后他们会忽略任何不偏好该特定渠道的人。

例如,你可能讨厌 Slack。你可能总是把自己设置为“离开”状态——即使你正坐在办公桌前写代码。说实话,有时候这样做完全可以理解。但有些人就是拒绝用Slack以外的任何方式沟通。如果你认识这样的人——尤其是那些对你的工作有影响的人——那么你或许应该放下对 Slack 的执念,和他们聊几句。你可能不会喜欢这样做,也不会觉得自在。但最终,这能避免对方把你当成一个不善沟通的混蛋。

我上一份工作中,有个经理要求几乎所有东西都要用 Quip 文档记录下来。就算我在每个提交和拉取请求上都写了大量的注释,就算我在工单里写了一大堆细节,就算我给他发了 12 条 Slack 消息和 39 封邮件,他也不听。他就是想要源源不断的 Quip 文档。

我可以写二十段话来抱怨这家伙。但事实很简单,如果我真的想让他“明白”,除非我开始用他选择的工具输入数据,否则根本不可能。大多数开发者都讨厌这一点。我也讨厌这一点。但为此生气对我一点用处都没有。


图片描述

避免面对面交流

当我加入一家新公司,参加群组视频会议时,我通常甚至在他们自我介绍之前就能认出会议中的程序员。他们总是固执地拒绝打开摄像头。

需要说明的是,我并不是说你必须一直开着摄像头。但是,如果你在视频会议中关闭摄像头,就会大大降低它的实用性。我们潜意识里会接收到很多视觉信号,而一旦某个关键参与者懒得打开摄像头,这些信号就全都失效了。

正因如此,无法将面孔与声音对应起来,加深了部分人对程序员的刻板印象,认为他们是反社会的顽童。如果你认为这不会影响你在公司里的社会地位,那你可能只是在自欺欺人。


图片描述

技术术语

程序员们出了名的不擅长察言观色。如果你是在开发者会议上——和其他开发者一起——讨论各种依赖注入方法或者探讨某个 bug 可能是由竞态条件引起的,那当然没问题。但如果你是在“普通”的商务会议上谈论这些概念,你几乎肯定会失去听众。你甚至可能显得……很没礼貌。

“业务部门”对我们实际的工作一无所知的原因之一是,当他们直接询问时,我们总是乐此不疲地用一堆技术术语把他们淹没。这样做之后,我们常常沾沾自喜,觉得自己已经把事情解释得清清楚楚。但实际上,我们只会让情况变得更糟。

你是否曾经因为一个水平不如你的程序员得到晋升(或其他形式的认可)而感到沮丧,而你的努力却无人问津?这很可能是因为那个笨蛋能够用商业术语来描述他的工作(即使他的工作水平很差


图片描述

自愿隔离

让我告诉你一些可能被某些人视为“卑鄙”的事情。在我职业生涯中,我认识很多开发人员,他们非常讨厌和某些(或者几乎所有)“业务人员”打交道。他们不想参加会议,不想展示(演示)他们的任何工作,也不想参与任何公司活动。在某些情况下,他们甚至会直接让来处理这些沟通工作。你知道吗?我答应了。

几个月后,他们就会开始找新工作。(甚至可能愤而辞职。)他们为什么如此沮丧?因为获得了大量的认可,而他们的努力却无人问津。

首先要说明的是,我从未将任何人的作品据为己有。而且我一直尽力做到实事求是地注明出处。但是,当那些“商界人士”把视为“开发者的代言人”时,他们最终会高度重视我的地位,而把其他人视为“可有可无”的,这几乎是必然的。

时间紧迫时“埋头苦干”无可厚非。但如果你刻意避免与开发团队以外的任何人接触,那么当那些非开发人员无法理解你的贡献时,就别唉声叹气了。


图片描述

好斗性/防御性

给我找出一个不喜欢争论的开发者,我就给你找出一只紫色的松鼠。没错,我坦白承认,自己也常常犯这种错误。

我发现大多数开发人员在避免与开发团队之外的人发生争执方面,都具备相当不错的“生存本能” 。但是,如果涉及到代码相关的问题呢?那些只有软件工程师之间才会讨论和裁决的问题呢?嗯,这么说吧,事情可能会变得很棘手。

人们很容易想当然地认为其他开发者都“站在你这边”。甚至很容易想当然地认为,开发者之间“正常”的意见分歧是开发应用过程中理所当然的,应该被理解和容忍。但我见过太多次这样的情况:那个背后捅我刀子的人,正是当初不认同我“应该用 Zustand 而不是 Redux”这种观点的人。而当开发团队之外的人请他评价我时,他立刻就把我描绘成一个心怀不满的人。

说实话,你不可能开发出大量的软件应用而不偶尔与人争论某种技术方案的优劣。但如果你想要公司上下关注你的价值,而不是你给公司带来的所谓“麻烦”,那么你就必须非常谨慎地选择争论的时机和地点。因为一旦公司其他人听说你是个“麻烦制造者”,他们就会对你任何赞扬你的努力置若罔闻。

文章来源:https://dev.to/bytebodger/the-communication-shortcomings-of-programmers-4ej0