技术开发 频道

让每个人学会更好的沟通

【IT168 技术文章】

    软件项目活动的主体是人,项目计划的执行过程中从开始到结束,始终都贯穿着频繁的沟通。但是一个让人感慨的普遍的现象就是人与人的沟通成本往往会远远超出你的预期,从而大大降低了工作的效率。

    1.1. 认识沟通成本

    沟通是必须的,但是沟通存在“巨大”成本。

    Robert Cecil Martin在他的《敏捷软件开发》一书中曾经清晰的描述了沟通为什么总是那么费劲。作者在书中创造性使用了一个“皮肤触觉”的比喻,用来说明身体接受到的信息和实际上发生的信息之间的差异。为了让大家对沟通的成本有个感性的认识,下面列举一些会让大家感觉非常亲切的场景:

    1. 作为部门架构师的Andel非常苦恼,项目已经到了关键时刻,可是属于自己处理项目核心问题的时间太不够用。排在日程表上的事情很多:9:30参加关于“跨部门技术协调会”;11:00 为测试部作产品部署培训;13:30 参加基础部门的权限设计评审;15:30 讨论产品EAI集成模型。晚上6:30以后的时间才真正属于自己,本想可以干点实事,可是还有开发人员间歇过来询问开发问题。

    2. 控件部的david是公司报表控件的主要开发者,最近抱怨有效工作时间太少。问明原因才知道,由于前期项目时间紧张,报表匆促开发出来,结果bug很多,每天都有很多人叫他过去救火。不去又不行,去了的话,这种中断性的工作让他没有时间来修复很多已知的错误,同时也拖延了许多新功能的开发,导致大家整体进度受损。

    3. 测试部要开始对系统进行功能测试了,发现需求规格说明中的功能描述与实际开发的工作产品存在很多不一致。碰到这种情况,测试人员gigi不知道应该先问明需求再测呢,还是先测再去核实需求文档。这种情况比较普遍,gigi反映严重影响测试效率。

    4. 性能测试虚拟团队已经开工一周了,可是发现工作根本没有什么进展。原因是负责测试数据准备的开发人员在二楼,而测试人员在三楼。直接面对面沟通不便,只能在邮件中讨论。邮件讨论效率很低,问题提出到响应可能都需要半天,几个回合,一周就过去了。

    5. 设计师martin 跟开发人员jack在晨会中通过白板描述调度算法的原理,并嘱咐开发人员一定按照该设计意图去实现,jack也允偌了。一周后,martin在代码走查时发现,jack居然没有正确实现该调度算法。Martin非常恼怒,怎么明明白白面对面讲明白的事情也会做错呢。而jack解释说,自己可能当时没太明白,很多地方可能是误解了,所以…

    还有很多场景可能在身边发生。对于这一切,告诉我们什么呢?沟通是有成本的,这个成本表现在:

    (1) 沟通无法实现100%的信息传递,由于信息失真导致的成本

    (2)沟通本身存在的时间和空间成本

    (3)由于一次沟通不到位,导致发生后续多次沟通,每次沟通都存在上诉1,2的成本。

    下图描述了一个简单的沟通成本模型。图中借用了通讯理论的“信源”和“信宿”概念。信源表示信息的发生端,信宿表示信息的接收端。可以看到,理想的沟通是把全部信息从信源传递给信宿,其间不发生任何信息失真。而实际情况,根据沟通的效果不同,信息会存在或多或少的失真。如果失真过大,势必导致后续进一步的多次沟通,沟通成本无疑提高了。

    1.2. 降低沟通成本

    从上面的沟通成本模型我们可以看到,降低沟通成本的关键在于“如何在一次沟通中尽可能完成更多信息从信源到信宿的传递”。这里面包括两个要素:

    1. 尽可能让信息不失真

    2. 尽可能减少沟通对时间和空间的占用

    明确上述两个基本要素,可以演化出很多沟通技巧来。

    1. 选择正确的沟通途径

    2. 使表述的内容易于理解

    3. 根据情况应用各种沟通技巧

    以实际的案例来说明上述各种技巧:

0
相关文章