微信号:infoqchina

介绍:有内容的技术社区媒体

沟通对于程序员的重要性

2014-05-14 21:08 侯伯薇

早在几年前,曾经看到过一条很有意思的新闻,说的是国外某大学为计算机软件专业的同学们开设了一门课程,叫做“Flirt”,这个词直接翻译成中文的话,叫做“调情”。当然,这门课并不是教IT男如何恋爱的课程,而是要讲授一些我们在日常生活和工作中都必须要用到的一项软技能——沟通。

在最初开始做程序员的时候,我也认为,我们主要的工作是要和计算机打交道,而不是和人打交道,所以学习与计算机或者编程相关的知识才是王道,像什么沟通能力,应该是销售员而不是程序员才应该学习的知识。

然而,随着时间的推移,我对沟通的看法也有了很大的改变。现在我觉得,对于一名程序员来说,想要提高自己,成为真正优秀的程序员,真正可以实现自己的价值,沟通能力是必须要具备的。

为什么会这样呢?那就是因为我们每时每刻都需要运用这项能力。

在传统的软件工程中,我们会经历各个阶段,大家都已经耳熟能详:需求分析、概要设计、详细设计、编码、测试、后期维护等等,而每个阶段都需要沟通,只不过是沟通的对象不同而已。需求分析阶段要和客户沟通;概要设计阶段也要和客户沟通,而且可能会与架构师沟通;详细设计的时候,除了和上面提到的二者沟通之外,还需要和界面设计人员沟通,那样才能够设计出合理的系统界面;编码的时候,程序员同学们必须不断和负责架构和设计的同学沟通,而且彼此之间也需要交流;测试阶段负责编码、测试、设计的同学都需要彼此沟通,那样才能够保证开发出来的系统没有问题,并且能够满足客户的需要。

到了敏捷的时代,沟通显得尤为重要。比方说XP编程的实践中,现场客户意味着要在开发现场有一位客户,那就是要程序员不断和客户确认需求,确保开发出来的系统能够真正满足他的需要;而结对编程更是要求结对的双方能够不断交流,相互补足,共同开发出优秀的程序。

敏捷宣言中也有两条强调了沟通的重要性,一条强调的是“个体与交互”,另一条强调的是“客户合作”,所以可以很明显地看出来,想要进行敏捷开发,缺少沟通能力,必定会举步维艰。

那么,既然沟通对于程序员来说这么重要,我们应该怎样提升沟通能力呢?我在多年的开发过程中,有些体验可以供大家借鉴。

首先,想要与人沟通,那么就要摆正和沟通对象之间的关系,最好是一种平等的关系,否则就会比较难以沟通。这并不是说职位上的平等,或者是年龄、资历上的平等,那是很不容易达成的。只是说在沟通的过程中,不要带有太多的因为不平等所带来的顾忌,而应该和对方都能够心平气和,以开放的心态沟通,那样才不会有太多障碍。

其次,想要和对方畅快地沟通,就需要彼此之间对一些知识有共同的认识。比方说,在于业务客户沟通的时候,我们需要先了解一下相关的业务知识,那样才能够在客户介绍相关业务的时候,明白对方说的是什么;在与设计人员沟通的时候,也要了解设计上的一些术语,否则就会被不明白的术语影响对内容的理解;和其他程序员沟通的时候,也同样要对同一种语言、技术、工具都有足够的认识,否则就会不清楚对方所讲述的内容。想要具备那些必要的知识,当然就要把握一些可以利用的机会进行学习。

最后,我们还需要一些沟通技巧。比方说了解一些沟通的模式,提问的技巧,回答问题的技巧等等。乍一看起来,似乎沟通的时候,只要真诚就可以了,运用技巧可能会显得有些生硬,甚至让人不舒服。但如果没有任何技巧,很可能在某些场合下导致沟通的误解,或者是因为某些细节,导致和沟通对象产生不愉快的印象,那些情况都不是我们想要看到的。而一种技巧如果在几次刻意地使用之后,就会越来越娴熟,从而显得越来越自然,也就不会让他人觉得生硬和刻意了。

总之,对于任何人来说,沟通能力都是一种非常重要的能力,程序员也不例外。那么亲爱的读者朋友们,你是否也觉得这项能力很重要,并且能够使用好这种能力,在工作和生活中无往而不利呢?

“第三只眼”:

主要由InfoQ编辑专门为微信公众账号自编自写的一个栏目,旨在表明编辑态度及表述平日见闻和思考,期望成为和读者沟通的桥梁。亦接受投稿:spark@cn.infoq.com

今日专栏作者:

侯伯薇@大连,快乐的程序员,InfoQ中文站翻译团队主编,热心的社区活动组织者。本文首发于他的微信公众账号快乐的程序员(happyprogrammer)。

***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 道一声感恩,做一世伙伴 开放数据,拒绝信息孤岛 Pokémon GO的蝴蝶效应——国内哪些APP借了任天堂的东风? PHP 判断数组是否为空的5大方法 深情检讨:那些年出现的职业倦怠期