软件开发的人文关怀

本文由Yurii原创,转载请注明来源: Life Sailor

本文链接 软件开发的人文关怀


几年前,我从温伯格的《技术领导之路》中学到一点:技术人员往往更喜欢和机器打交道,因为他们“认为”自己更适合和机器打交道;但是,优秀的技术人员必须(也必然)具备好的沟通能力。所以,温伯格鼓励各位技术人员多加练习和其他人打交道的能力。温伯格的这个观点我是非常赞成的,好的技术人员一定需要“勇敢”面对他人,不能被“自实现的预言”局限在机器的世界里。

不过我也发现,“技术人员(当然我主要说的是软件开发人员)不适合跟人打交道”的负面影响不止于此,它还成了一种刻板印象(stereotype),进而影响到开发团队之外的人。这个问题其实很严重,它会导致其他人和开发人员沟通时自觉或者不自觉地切换到“和机器沟通”的模式上来,比如单纯依赖邮件而避免见面沟通,比如“你只管这么做出来就好了,别管我用来干什么”。以面向机器的模式来与人沟通,结果往往是完整的项目(而不是狭义的“软件项目”)割裂开来,皆不欢喜。

这种情况我一直在思考,究其原因,一方面是组织不够完善,另一方面,软件开发也缺少人文关怀——软件可以没有活力,而软件开发却不能没有活力;程序可以像机器一样,程序员却不能像机器一样。要改变这种状态,就应当增添更多的人文关怀(这里要多解释一点,“人文”其实也可以叫“人性”,它与“文”并没有太多关系,只是“人性主义”约定俗成翻译成了“人文主义”而已),把开发人员当成活生生的人,而不是视为程序或者工具。

当然,做到这一点并不容易,因为许多人印象里,软件开发人员就是“闷瓜”(充其量是“闷骚”),不好捉摸也不好打交道,那么干脆把他们当成工具来对待好了,“人性化”这样高难度的处理还是免谈为妙。但是事情并没有这么简单,因为不善于沟通,并不意味着开发人员不在乎人文关怀,想法,绝大多数人内心其实是愿意接受而且认可这些关怀的。只是因为许多开发人员不善于表达,因此并没有太多资料研究和论述软件开发中的人文关怀(或者开发人员真正在乎的人文关怀),所以这个话题值得一说。

按照我的经验,以下几个方面都是软件开发人员比较在乎,而往往被其他人所忽视的,所以要增加软件开发的人文关怀,不妨多注意。

第一,开发环境。这里说的“开发环境”不是指的IDE,而是开发人员所使用的软硬件。这类设备是大多数开发人员唯一的生产工具,它们的好坏直接决定了开发人员的生产效率。可惜,许多人似乎并不理解这一点,很多公司只给开发人员配备普通的办公电脑,于是开发人员也只能贡献出普通办公人员水平的程序。目前来看,硬件上有比较大的内存(8G以上),多台显示器(最好其中一台可以很方便地旋转),有用起来顺手的键盘鼠标(这点非常重要),软件上有无障碍访问Google的线路,健全开放的代码库等等,应该是必须的配备。提供这些条件,一方面可以切实提高工作效率,另一方面,可以大大改善开发人员工作的心情。后一点看起来无关紧要,却体现出对开发人员的尊重,其影响甚至超过前一点。

第二,内部交流。我见过许多开发人员,即便是与旁边或者对面的同事交流,也不愿意说话,而喜欢在IM上打字,这样的效率非常低,更厉害的是造成隔膜——上班时间都没话说,下班时间就更没话说了,想要形成有凝聚力、配合默契的团队,就始终只能是美好的愿望了。所以,日常工作中一定要鼓励面对面的交流,(尤其是多人参与的讨论,可以专门安排地方交流),以逐渐形成面对面交流的行为习惯。不少开发人员即便自己比较闷,内心也不排斥甚至渴望活跃热烈的工作气氛。我曾经遇到过一名水平不错的程序员,他虽然不擅言辞,却不喜欢大公司内“死气沉沉”的技术部,更愿意呆在人人都愿意说话,人人有话说的小团队。现在,我们部门的开发人员经常会为了一些问题三五成群地交流,并不影响其他人的工作,这种气氛还很受大家喜欢。这些例子都说明,对开发人员而言,当面对话其实是非常必要也非常合适的交流方式。

第三,工作意义。我曾说,程序员职业素养的体现之一就是对业务的了解。现实中,确实有不少一些程序员对业务不够了解,不过程序员对业务没有足够的热情只是一方面原因,另一方面,业务部门不愿意让程序员详细了解也是常见的情况。许多公司的业务部门需要开发力量时,既不描述项目的背景,也不介绍项目的意义,只生硬地扔过来几份文档(而且很多是粗制滥造的文档),就完成了对接。究其原因,有时候是这些人将程序员视作简单的“码农”,认为他们不需要了解业务,只需要写代码即可;也有写时候是因为程序员思维比较严谨,遵守逻辑,而不少业务部门的人缺乏这类训练,表达想法和需求时如不够严谨细致,更习惯“看一步算一步”的野路子。前一种情况是态度上的不尊重,后一种则是能力上的欠缺(或懒惰)。但无论是哪种情况,都会给开发人员造成非常不好的影响,最终结果就是项目的支离破碎,大家都龟缩在自己的地盘上,“铁路公安,各管一段”。其实按照我的经验,绝大多数开发人员并不排斥理解自己所开发的软件的实际应用和意义,以此为基础,大多数人甚至有兴趣去提出改进方案,这其实是非常好的状态,其前提是,需要为给程序员提供足够多的空间和机会去理解自己工作的意义,而不仅仅是告诉他们“你只管这么做就好了,别问我为什么这么做”。

第四,个人成长。“一个人要怎样才愿意呆在一家公司?”一位前辈告诉我的是:如果这个人觉得公司有前途,自己也有前途,就会呆下来。这个答案我非常认可。但是在实际工作中,后一个“有前途”往往被忽略了。在软件开发中这个问题更严重。一方面,开发人员经常被视为生产代码的机器,大家只关注他提交的程序,而不关注他是如何提交程序的,在工作中有什么收获;另一方面,很多开发人员对于前途常有持续的焦虑,又得不到解决。常见的结果就是开发任务显得冷冰冰、硬邦邦,开发人员也感觉自己做的都是简单重复劳动,产生倦意甚至抗拒情绪(我知道许多人会说,要想成为一名好的开发人员,就应当在简单重复劳动中精益求精。这个道理确实没错,但也需要有合适的切入点,换句话说,应当让开发人员认可精益求精的价值,并真切体会到它带来的好处)。其实,有许多开发人员对自己的未来是有所打算的,比如有些人可能希望更了解业务,有些人希望更深入钻研技术。技术团队的领导平时应当能抽时间了解这些设想(如果能加以建议或指点就更好了),在安排新工作时有所照顾和侧重,这样,开发人员就可以感觉到自己的成长,觉得自己的工作是有前途的,工作起来也更有积极性。

许多年前我读到董乐山先生翻译的《西方人文主义传统》,心里从此深深打上了“人文主义”的烙印(也由此知道了“人文主义”其实和“文”没什么关系)。经过这些年来的工作和思考,我又认定软件开发和其它工作并没有迥异的差别,既然其它行业可以提倡人文关怀,引入更多的人性化因素,软件开发也可以这么做。因为软件开发的特殊性,找到开发人员认可的“人文关怀”可能难度更大一些,但并非不可能,而且相当有意义。

Yurii

View Comments

  • 第八段靠前的那一句:
    “另一方面,但业务部门不愿意让程序员详细了解也是常见的情况。”
    这个“但”的位置是不是错了?

  • 嗯嗯,受益了。作为软件开发人员不能只知道搞开发,不知道与人交流,是很难跟上这个开放的国际社会。

  • 您好~我是极客公园的内容负责人,看到您这篇文章觉得非常适合,打算转载到网站,不知您意下如何?这是我们网站的地址:http://www.geekpark.net/

    另外,我们想邀请您成为网站的产品观察家,给我们投稿,如果有兴趣,可以和我联系,我的个人邮箱您应该能看到,另外,我新浪微博是:http://weibo.com/u/1704638362 希望您能考虑~

    • 你好,多谢关注。文章欢迎转载,注明来源即可。
      产品观察家我可能暂时没有时间,如果有合适时机联系你吧:)

Recent Posts

德国育儿经验:家长需要和儿童谈论”空气动力学“吗?

家长应当和儿童,尤其是低龄儿童谈论“空气动力学”吗? 我的答案曾经是非常肯定的:不应当。不要说儿童,就是成年人也不见得理解这些抽象的概念,与儿童谈论这些名词,只会让人望而生畏。身为父母,我们应当做的是,以孩子能理解的、感兴趣的方式谈论相关的具体问题,但绝对不要提这些大词。 不过世界的奇妙就在于,父母对教育并没有绝对的权威,总是需要根据实际情况来修正自己的观点。在“空气动力学”的问题上,我就吃到了教训。 那是一个下午,家里小朋友在iPad上看完他最喜欢的Blippi(这个节目我之前介绍过,对80后父母来说,Blippi可以理解为“带你见识各种新鲜玩意的董浩叔叔”),忽然抬起头来问我:“爸爸,你知道什么是aerodynamics吗?” “什么?你问我知不知道什么是aerodynamics?”我的下巴都要掉下来了。“空气动力学”这种词还是上中学时,身为军迷的我们在《航空知识》上知道的。再往后英语好一些,能看原版科普视频了,才知道“空气动力学”的原文就是aerodynamics。可是,我家这个还没上小学的家伙,竟然就能真诚地瞪大眼睛,一本正经地问我“知不知道什么是aerodynamics”。 (more…)

3 months ago

忆孟繁超老师:他从来没有给我上过一堂正式的课,但我永远都是他的学生。

我本来是不应该认识孟老师的。 2001年,我在寝室夜谈里第一次听到孟老师的名字。当时有同学说“公共选修课的《法学概论》讲得真好,那个老师叫孟繁超”,开始我不怎么在意,慢慢才发现这么说的人还不少。那个年月网上的资料正丰富,出版管制也不那么严格,刚进大学不久的我正自由自在地看得过瘾,心想“大学里的法学概论讲再好,能讲些什么,还不是教科书上老一套”,所以这种课,不听也罢。 但生活就在这么奇妙。那年冬天,有天中午我吃过饭正准备午睡,忽然有人敲门问“计算机系有位叫余晟的同学在这里吗?” 大中午的谁会来找我?我正好奇这个问题,门一推开就有同学喊“孟老师,孟老师来了”。 那是我第一次见到孟老师,中年人,国字脸,身材高大,打扮很精神,披在身后的深色大衣让我一下子想起电影里的斗篷。他笑眯眯地说“你是余晟?听同学说你搞电脑很厉害,我家的电脑坏了,想请你去看看。” (more…)

3 months ago

“历史照进现实”,这似乎不太现实

中国人大概都对历史有一些特别的偏好。对我们普通人来说,历史首先是文化的象征,一个人“懂历史”,基本等于这个人“有文化”;历史也是民族自豪感的来源,哪怕考古上仍然存在争议,但是“五千年文明”的说法是普通人都耳熟能详的。 不过等我长大之后才发现,这种偏好大概还有更深层次的原因,那就是历史看起来有种道德的意味,因为我们从小就熟悉“以史为鉴”的智慧,也熟悉各种“历史的选择”:每当我们对现实感到失望、困惑的时候,我们经常去历史——而不是先贤的智慧中——中寻找解答。找到曾经发生的类似的故事,就可以预言未来的结局。 于是乎,失望也好、困惑也罢,总归会有光明的未来,历史总会给我们支撑的信念。 我曾经很相信,熟谙历史是种智慧,而且是深层次的智慧。但是看得越多、经历得越多,我就越觉得,这很难称之为“智慧”。 为什么? (more…)

3 months ago

无人出租车,是技术进步的一粒灰,还是普通人头上的一座山?

“无人出租车要来了”。以百度“萝卜快跑”为代表的无人出租车,眼看就要在国内多个城市成规模运营。 熟悉IT的人都知道,IT的独特优势就在于“大规模扩展时边际成本极低”。在软件时代,微软开发的Windows,多卖一份的成本只是多刻录一张光盘而已。在无人驾驶时代,从10辆车到10万辆车的成本,也遵循同样的规律。换句话说,一旦模式“跑通”了,就可以迅速大规模铺开。无人出租车的大规模应用,也是“指日可待”了。 只不过,新技术这一次似乎没有那么激动人心,反而引起了很多争议——无人驾驶出租车大规模推广,会不会影响广大出租车、网约车车主的收入甚至生计?如果是,这样的技术进步,真的是我们所需要、所期待的吗?对于这个问题,不同的人有相差迥异的答案。 按照我的观察,许多人对此是相当乐观的。理由在于,“技术的每一次飞跃发展,虽然有阵痛,最终都创造了更多的新岗位”。既如此,无人出租车短期“看似”抢了许多人的饭碗,但也只是短期的“阵痛”而已。看看历史,纺织机的发明,蒸汽机的改良,汽车的诞生,无不证明了“阵痛说”的正确性。 坦白说,这种观点我是怀疑的。 (more…)

3 months ago

回国感受:松弛一点,愉快一点

因为小朋友放暑假,近期带小朋友回国待了几个礼拜。最深的感受就是标题所说的:松弛一点,愉快一点。 我第一次突出意识到这点,是在上海下飞机乘地铁。当时我们乘的直梯就要关门,远远看见有个年轻小伙子跑过来,我连忙按住开门按钮,并招呼他”别着急,慢慢来“,等他进了轿厢才关门。本来我以为大家起码会打个招呼,露个笑脸,因为我已经习惯如此,但完全出乎我意料的是,他进来之后对我们完全视若不见,自顾自掏出手机,盯着看得入迷。 我继而发现,不管是在电梯里,站台上,还是车厢里,虽然四下里都是广播”请扶好站稳,抓好扶手,不要看手机“,但是似乎人人都盯着自己的手机。年轻人在打手机游戏,年纪大一点的在滑各种小视频,还有不少人在聊天软件里打字如飞……对着屏幕的表情都很生动,可是一旦抬起头来,似乎马上又换了个人。 后来又有一次,我乘地铁的时候,因为比较拥挤,一个小伙子倒退时踩了我一脚,他大概意识到了,很快把脚挪开,脸上闪过一丝不安,马上又恢复正常,我也没有计较。不幸的是,过了十来分钟,他又踩了我一脚,同样是先有一点不安,很快又恢复正常。 这次我忍不了了,于是我开口告诉他:“小伙子,你已经踩了我两脚了。” (more…)

3 months ago

First name, last name, middle name,浅谈外国人名

前几天,国内朋友发来一条消息,原来是乌克兰F-16坠落,飞行员丧生的新闻。我本来以为他要讨论此事的真假和原委,他真正的问题却完全出乎我的意料: 新闻里说,飞行员叫阿列克谢·“月鱼”·梅斯,对应原文是Alexei “Moonfish” Mes,为什么会有人把“月鱼”写在自己的名字里,而且还打引号。 之前看新闻,乌克兰还有一个著名的飞行员叫安德烈·“果汁”·皮尔希科夫(Andrii “Juice” Pishchykov),怎么“果汁”也是正式的名字? 未必Moonfish和Juice之类,还有什么特别的含义吗?…… 这堆问题看的我有点想笑,因为自己以前也很苦恼外国人的名字,只有在国外长期生活,才逐渐搞清楚这其中的名堂。所以,除了解答朋友的问题,我也把自己的解释写下来,搞清楚两个最不容易理解的点,就不会对外国人名有那么多问题了。 (more…)

3 months ago