程序员身上有异味,同事为什么都不会直接告诉他?

2024-03-19 09:18

本文主要是介绍程序员身上有异味,同事为什么都不会直接告诉他?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

别多想,“程序员身上的异味”不是标题党,这是有根据的。

 

在我翻译的《成为技术领导者》(曾用名:《技术领导之路》)中,作者温伯格专门讲了“程序员身上有异味”的故事。可惜老实说,在我翻译这本书的时候,我还不能完全明白温伯格的道理,身为译者,又只能“生吞活剥”。不过,现在我终于明白这个道理了。回头再看,当时的翻译虽然不好理解,但还不算太差。为了把这个道理讲得更清楚,有必要再写一篇文章。

 

我先简单复述温伯格的故事:

 

程序员Ralph身上有异味,许多人不愿意跟他共事。于是他们去找老板说:头儿,味道实在太难闻了,如果你不想点办法,我就不干了。这时候,老板该怎么办?

 

据温伯格说,最早他只是在《程序开发心理学》里讲了这么个故事。但是后来,他收到了大量关于这个故事的反馈:天呐,你怎么也知道这种事。

 

从外人看来,问题很简单,身上有异味,多洗手洗澡,保持清洁,就好了。这种办法,温伯格称为“机械”的方案,意思是它直截了当,没有那么多弯弯绕,没有那么多花花肠子。

 

然而现实世界是复杂的,“机械”的方案未必行得通。比如程序员们,面对这种问题,他们最喜欢的办法往往是这样的:既然你身上有味道让我不舒服,我又不得不跟你合作,那么咱们就动用计算机中的经典思路——增加一个中间层。不跟你当面讨论,只打字聊天。不光是人,代码也是这样,尽量避免和你的代码交互,把接口都写成文档定义清楚,保证出了事责任也很清楚。这样一来,咱们打交道的机会就降到了最低。

 

不幸的是,这样的方案几乎一定会降低效率,甚至增加错误。大家都知道,论沟通质量,打字不如打电话,打电话不如当面。如果两个家伙本来工位就不远,合作起来竟然还要新建严格规范的中间层,可以想见,问题会层出不穷。

 

如果从程序员这一侧不能解决,从领导这一侧能解决吗?似乎也不能。按照常理,领导似乎也很难走机械方案,直接跟Ralph说:哥们,你身上味儿也太重了,多洗洗吧。

 

为什么呢?领导的顾虑也不难想象:这样的程序员,虽然身上有异味是问题,但确实也为公司贡献了自己的力量。换位思考,如果自己身上有味道,你会怎么想?难道你的人格就低人一等?难道你就应该成为大家眼中的另类?

 

故事暂时就讲到这里。

 

十年前,我在翻译书的时候确实很难理解,为什么一个人身上有味道,其他人想尽办法,却谁都不敢告诉他呢?回想起来,这或许和我当时的身份和经历有关。当时我只是一个“看起来还算正常”的程序员嘛。如今再让我翻译这本书,我光看到这个故事就忍俊不禁了。

 

遇到这种事,许多人宁可选择发朋友圈、发微博来抱怨,也不愿意当面说。但是程序员不一样,程序员们相当愿意“动脑筋”,当时是动技术的脑筋。我曾在以前的文章里说过,有一次我们的爬虫系统出了错误,被内容提供方封了服务器IP。大家修正错误之后,下一步的安排并不是大方跟对方解释求得谅解(本来对方也希望内容被“适度”抓取,广泛传播),而是升级系统,找一批代理服务器,再写个代理管理系统,硬生生把个简单系统做成了复杂系统(最终我打了几十个电话,找到对方的负责人,谈妥之后,系统仍然保持简单。这段经历给我印象特别深刻)。

 

就我的了解,这种思路绝不是个案,而是在程序员身上广泛存在着。我们经常看到一些炫耀帖,比如想知道女友(或意向女友)的一些个人情况,又不愿意当面问,就想各种技术办法去“搞定”,比如猜测密码、登入对方账号。我一度也很羡慕这些手段,后来我才发现根本不是这样。许多问题,不选择大方坦诚沟通来解决,而是剑走偏锋,其实很容易把事情搞砸,给人不健康、不尊重、不值得信任的感觉,反而会把事情搞砸。一个得意洋洋炫耀帖的背后,可能是十起二十起的尴尬和破碎。

 

从管理者的角度出发,这也确实是个棘手的问题。只要员工不是成心和你做对,都必须多肯定、多包容、多看到他们的积极贡献。尤其是对业绩突出的员工,更是必须如此。直接告诉人家“你身上有味道”,或者“你和其他人讨论时声音太大”,或者“你的文档写得实在太马虎”,都难免会被人多想,带来一系列麻烦:你是不是看不到我的贡献?你是不是对我不满意?你是不是想搞些什么鬼名堂,所以小炉匠戴眼镜——成心找茬(碴)?…… 这样下去,管理成本直线上升。

 

这样的情况确实挺麻烦,那么,怎么解决呢?

 

在摸索了很久之后,我不得不承认,温伯格说的是对的:你别无选择,只能而且必须直面问题。下面我来讲讲为什么是这个答案。

 

首先,有问题的人,很多时候意识不到自己的问题。温伯格在书里说,只有一位技术主管采纳了他的建议,直接跟那个程序员谈。结果这名主管惊异地发现,程序员根本意识不到这点。那家伙在写程序之余,还喜欢鞣革(古怪的爱好)。鞣革用的各种制剂当然会带来古怪的味道,但是呆久了也就习以为常了,所以他根本感觉不到,不觉得这是问题。即便看到其他人的古怪反应,他也没法跟自己的气味和爱好联系起来。

 

按照我的经验,有相当一部分问题,当事人根本意识不到自己的问题。或则会即便意识到了,也没有准确意识到它的程度、范围。或者低估了问题,所以轻描淡写、不以为然。或者高估了问题,所以高度敏感、一谈就崩。

 

然而,一旦当事人准确认识到自己的问题,许多时候的反应并不是迷惑、难堪、反感甚至愤怒,而是承认并且不好意思。下面,自然而然的反应就是去注意和改善,所以问题也就不复存在了。

 

所以管理者必须清楚,真正解决问题的前提条件绝对是直面问题,对齐大家对问题的认识。注意,我这里说的是“直面”,而不是简单“面对”。许多时候,不直接面对它,而是处心积虑去走曲折的通道,发模糊的信号,给晦涩的暗示,其实都是在逃避问题,无助于解决问题。

 

其次,管理者在谈问题的时候,必须把握“就事论事”的原则。越是麻烦的问题,越要费尽心思,踩准“就事论事”的边界。

 

大家为什么会觉得这类问题很复杂,很难处理?其实复杂的和难的并不是事实本身,而是大家对事实的反应:你跟我谈这个,是不是小题大做?是不是对我不满意?是不是要抹杀我的成绩?是不是背后想搞什么名堂?…… 种种反应包含的种种情绪、种种疑虑,就如同盘丝洞,一旦进去就休想出来。

 

所以管理者必须严格踩准“就事论事”的边界,不要让人产生过多的联想,产生过多的连带反应。这件事说起来微妙,做起来不容易,也没有固定的规矩可循。但是,我还是可以提供一些经验供参考。

 

首先,管理者应当平复自己的情绪。要知道这样的谈话一定是很难的,加上情绪只会让事情更加复杂。要想就事论事,就必须平复自己的情绪,哪怕问题再眼中,也从客观描述、讲解问题出发。

 

其次,管理者应当仔细斟酌自己的用词。我经常发现,事情本来很简单,一旦用词不当,就容易搞砸。比如“又是”、“总是”之类的说法通常要戒除,你找对方谈的时候,他可能刚刚接收到一些新的信息,心态还没调整好,听到这些词,就容易觉得负担沉重、来者不善,很容易产生排斥感,结果事与愿违。

 

同时也要注意避免太多反问句。很多人在谈话时会不自觉大量使用反问句,比如“你难道没想到自己的味道让其他人不舒服吗?”之类。他们提出反问,潜意识里大概是要急切把对方“引导”到自己认定的结论上去。但是,反问句其实是相当容易让人难堪、引起对立情绪的,一旦引起对立情绪,就根本谈不上“引导”了。比较好的办法,是放弃反问,平心静气多探寻,比如“鞣革的味道很特别,你能闻到吗”。通过探寻了解对方的真实想法和来龙去脉,才更容易达成共识。

 

最后,尽量不要做额外“补充”。有些领导为了避免谈话对象多想,在直陈问题之前,要做些铺垫,在讲完问题之后,还要挽回一些面子。我也曾尝试过这些做法,但总的来看效果并不好。短期来看,谈话里包含的信息太多,反而可能混淆了你要表达的主要意思;长期来看,如果大家不能形成直截了当、就事论事的工作作风,每次说问题都要事前铺垫、都要事后安抚,考虑得多了,协作效率必然下降。

 

当然,温伯格还讲了另外一点,也是我看来也是更重要的点,那就是自我修炼,控制自己面对事情的反应。我们面对其他人指出问题的时候,到底是选择成为问题的一部分,想想“这背后到底是什么意思”(其实许多时候真没那么多意思),还是解法的一部分,想想“问题是不是真的存在”,以及“如果问题真的存在,我们该如何解决”。按照温伯格的说法,“成熟”存在于在大量的行为之中,这些行为体现出下面的特点:

 

  • 与其他人打交道时保持头脑清晰;

  • 清楚知道自己的想法和感受;

  • 能够看到、听到、感受到身外的世界;

  • 交流的时候,把其他人视为与自己不同的独特个体;

  • 把差异作为学习和探索的机会来看待,而不是视为威胁或冲突的信号;

  • 能够设身处地与人交往,能认清事实,而不是永远按照自己的理解或期望,认为世界“应该”是这样;

  • 自己对自己负责,不把自己的见闻和感受归咎于其他人;

  • 能够坦率表达、接纳、检查其他人的意图。

 

 

如果说十年前翻译这本书时,我还不了解这个话题的奥妙,那么现在,我的理解已经大大加深了。我必须承认,“成熟”行为的这些特点,说起来很简单,做起来很不简单,做好了获益很多。如果你看过《情商》(而不是那些乱七八糟解释“情商”的书)就会发现,丹尼尔·戈尔曼的“情商”和上面说的“成熟”的行为特点,其实是一回事。

 

当然,我还想更进一步,补充点自己的经验:不要轻易形成对人的判断,不要轻易动摇对人的判断。

 

不要轻易形成对人的判断,指的是不要轻信其他人。虽然我们内心对世界常怀善意,但具体到每一个人,我们仍然需要听其言,观其行,才能知道,他/她到底是不是善良的人,值得不值得信任,他/她有什么个人偏好。许多时候,看一个人做了什么,比听他说了什么,更有助于形成准确的判断。

 

不要轻易动摇对人的判断,是建立在已经对人有判读的基础之上。如果我们确认某个人不是坏人,值得信任,那么即便出现一些分歧、误解甚至冲突,都不应该动摇我们的基础判断。

 

如果我们已经相信身边的某人是正直的,那么他来找我谈某些事情,我都应该坚持这个判断。哪怕我之前完全没想到,自己也很难堪,我也应当认为“确实出了问题”,而不是辗转纠结“他为什么让我这么难堪”,“他在搞什么鬼”,“我之前看错了他了吗”。这种纠结,不但对自己是煎熬,对已有的协作和信任也是极大的威胁。更关键的是,它们往往毫无根据。

 

最后,让我们回到原来的问题:程序员身上有异味,你会直接告诉他吗?然后横跨一步:亲人有让你不舒服的举动,你会直接告诉他吗?再前进一步:其他人告诉你,你的某些言行让他们不舒服,你会是什么反应呢?

我自己是一名大数据架构师,目前辞职在做线上教育大数据讲师,每天都会直播分享免费公开课,大家可以加群参加。以及我自己整理了一套最新的大数据学习系统教程,包括Hadoop,数据挖掘,数据分析。送给正在学习大数据的小伙伴!这里是大数据学习者聚集地,欢迎初学和进阶中的小伙伴!加QQ群:584900118(招募中)
 

这篇关于程序员身上有异味,同事为什么都不会直接告诉他?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/825494

相关文章

如何保证android程序进程不到万不得已的情况下,不会被结束

最近,做一个调用系统自带相机的那么一个功能,遇到的坑,在此记录一下。 设备:红米note4 问题起因 因为自定义的相机,很难满足客户的所有需要,比如:自拍杆的支持,优化方面等等。这些方面自定义的相机都不比系统自带的好,因为有些系统都是商家定制的,难免会出现一个奇葩的问题。比如:你在这款手机上运行,无任何问题,然而你换一款手机后,问题就出现了。 比如:小米的红米系列,你启用系统自带拍照功能后

[项目][CMP][直接向堆申请页为单位的大块内存]详细讲解

目录 1.系统调用 1.系统调用 Windows和Linux下如何直接向堆申请页为单位的大块内存: VirtualAllocbrk和mmap // 直接去堆上按页申请空间static inline void *SystemAlloc(size_t kpage){#ifdef _WIN32void *ptr = VirtualAlloc(0, kpage << 13,

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

看完这个不会配置 logback ,请你吃瓜!

之前在 日志?聊一聊slf4j吧 这篇文章中聊了下slf4j。本文也从实际的例子出发,针对logback的日志配置进行学习。 logack 简介 logback 官网:https://logback.qos.ch/ 目前还没有看过日志类框架的源码,仅限于如何使用。所以就不说那些“空话”了。最直观的认知是: logback和log4j是一个人写的springboot默认使用的日志框架是

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心

在项目开发中,jsp页面不会少了,如何公用页面(添加页面和修改页面)和公用样式代码(css,js)?

在项目开发中,如何公用添加页面和修改页面? <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html><head><title>岗位设置</title><%@ include file="/WEB-INF/jsp/public/common.jspf"%></head><body> <!-- 标

PageOfficeCtrl支持直接打开服务器磁盘文件

一般来说,PageOfficeCtrl控件的WebOpen方法的第一个参数是待打开文档的URL,此URL可以是相对于当前页面的相对URL,也可以是相对于整个网站根的相对URL,还可以是http开头的完整URL,但是这个URL必须是当前网站的URL,不能跨域。 现在为了更加方便开发者编程,WebOpen支持打开服务器磁盘文件。也就是说,第一个参数可以写成服务器文件的绝对磁盘路径。例如: P

最直接显示 ubuntu 版本号的命令

有时候去看ubuntu版本号,去网上查,很多文章都列出一堆命令,复制命令运行一下,都是打印一些不相关的信息,我只是想看ubuntu版本号而已,能否直接列出版本号就可以了。 有,下面这条命令就是直接的打印出ubuntu版本号, 没有多余信息 lsb_release -a

【UVA】10651-Pebble Solitaire(直接递归或者记忆化)

不知道这个题UVA的数据是怎么的,用2个方法交了,第一次直接递归,第二次记忆化剪枝,时间竟然一样!? 直接郁闷了,简单的二进制表示状态和二进制运算。 14145176 10651 Pebble Solitaire Accepted C++ 0.009 2014-09-04 09:18:21 #include<cstdio>#include<algorithm>#inclu

程序员都在使用的画图工具

大家好,我是袁庭新。 程序员都在使用的画图工具,你一定没用过这款画图工具吧!我教程中的架构图都是用它来画的。 比如我编写的RDB工作原理图就是用draw.io绘制的,如下图所示: 再例如Redis集群故障恢复原理图我也是通过draw.io工具绘制的,如下图所示: 是不是觉得draw.io绘制的图形特别简洁、美观。它的官网是: https://www.drawio.com dra