最近在知乎上看到不少吐槽程序员不会沟通的帖子,什么"发消息不回"、"进度完全不知道"、"说话太直接很不礼貌"。作为在技术圈摸爬滚打十多年的老兵,我觉得有必要聊聊这个话题。毕竟,我既当过普通程序员,也带过团队,现在还经常和产品、运营打交道,对这个现象也算有点发言权。
先说结论:程序员确实普遍存在沟通上的问题,但这绝不是简单的"不会沟通"或"不愿沟通"能概括的。让我们一层层剖析背后的原因。
01
工作特性决定的思维方式
程序员的核心工作是写代码、解决技术问题。这种工作性质决定了他们必须形成一种独特的思维方式:
追求精确性:在代码世界里,0和1是明确的,对错是分明的。这种思维习惯会让程序员在沟通时也倾向于直来直去,不愿意拐弯抹角。
专注导向:写代码需要高度集中注意力。一个复杂问题的解决过程可能需要在脑子里同时处理几十个变量。这时候如果被打断,重新进入状态可能要花半小时甚至更久。
我之前就遇到过一个情况:一个同事在解决一个棘手的性能问题,正在调试关键代码,这时产品经理过来问个简单问题。表面上看只耽误两分钟,但这位同事要重新理清思路可能要花20分钟。这种情况下,他看起来"不爱搭理人"其实是可以理解的。
02
技术人的性格特征
选择做技术的人,往往具有一些共同的性格特征:
偏理性思维:习惯用逻辑和数据说话,对情感因素不够敏感。
内向居多:喜欢独处、专注于解决问题,而不是社交活动。
追求完美:对技术细节的极致追求有时会让他们忽视了人际交往中的"差不多就行"。
我认识的一个技术大牛,每次code review都能抓出很多细节问题,技术水平没得说。但开会讨论需求时,他总是很少发言,即使有不同意见也倾向于会后私下交流。这不是能力问题,纯粹是性格使然。
03
行业环境的影响
互联网行业的特点也在一定程度上加剧了这个问题:
快速迭代:产品需求经常变更,导致技术团队压力巨大,有时候真的顾不上及时沟通。
资源紧张:很多公司技术人员配比不足,一个人同时要负责多个项目,时间管理变得极其重要。
考核导向:大多数公司对技术人员的考核还是主要看技术产出,沟通能力往往是次要指标。
04
教育体系的局限
我们的教育体系在培养技术人才时,存在明显的短板:
重技术轻沟通:从大学到工作,技术培训占据了绝大部分时间,很少有专门的沟通能力培养课程。
缺乏实践机会:校园里的项目合作较少,没有足够的机会锻炼跨部门协作能力。
05
如何改善这个问题?
基于多年经验,我觉得可以从以下几个方面着手:
对技术人员来说:
要意识到沟通能力的重要性,主动学习和提升。
建立个人的时间管理体系,平衡好编码和沟通的时间。
学会换位思考,理解其他角色的工作诉求。
对管理者来说:
建立清晰的沟通机制,比如晨会制度、周报制度等。
合理分配任务,避免过度加压导致没有沟通的余地。
在考核体系中适当加入沟通相关的指标。
对其他角色来说:
理解技术工作的特点,选择恰当的沟通时机。
提供清晰、结构化的信息,减少沟通成本。
建立基本的技术认知,提高沟通效率。
06
一些成功的实践
我之前在一个团队推行的做法:
设立"免打扰时间":每天上午10点到12点是集中开发时间,非紧急事项下午再说。
建立需求池:把所有需求都放在一个系统里,按优先级排序,避免临时打断。
定期组织技术分享:让技术人员有机会练习表达和沟通。
推行"buddy"制度:新人入职时配对一个老员工,帮助其快速适应团队沟通方式。
这些措施实施后,团队的沟通效率明显提升,技术人员的满意度也上升了。
07
未来的趋势
随着行业的发展,我观察到一些积极的变化:
越来越多的公司开始重视技术人员的软技能培养。
新一代程序员普遍具备更好的表达能力和沟通意识。
各种协作工具的发展,也在客观上改善了沟通效率。
总的来说,"技术人难沟通"这个问题确实客观存在,但这是一个系统性问题,需要多方共同努力来改善。技术人也是普通人,他们也希望把工作做好,只是可能表达方式和思维方式与其他人不太一样。与其抱怨,不如多一些理解和包容,建立起顺畅的沟通机制。
最后,我想说的是,每个技术人都是独特的个体,不能简单地贴标签。很多技术大牛的沟通能力其实非常出色,关键是要找到适合自己的表达方式。
这是我的一些观察和思考,不知道你们怎么看?欢迎在评论区分享你们的经验和看法。
加入知识星球智能制造与自动化,加入会员可下载此公众号发布文章中的相关资料(行业报告、MES、数字化技术方案、自动化教程、自动化行业标准化资料VASS\SICAR\戴姆勒等、C#上位机开发、node-red开发、人工智能教程等)。
今天的文章,如果你感觉有价值,请记得一键三连:点赞加关注,留言,转发朋友圈,分享收藏,点击在看之后,一定记着加我个人微信:ZIDHXB。