研发人员如何进行有效沟通
沟通,在我们的日常工作必不可少,需求沟通、技术设计沟通、接口联调沟通、实现细节沟通等等等等。敏捷开发更倡导通过面对面的沟通提高效率。作为不善言辞的程序员,有时候不但达不到沟通效果,反而会出现面红耳赤,最后甚至被领导“强迫牵手”。
那么应该如何提高效率呢?
一,了解认知差异,放平心态,平等对话。
之所以要把认知差异放在首位,是因为很多误解的出现正是由于每个人对同一个词、同一件事物、同一个概念的理解是有一定偏差的。我们看一个简单的场景。
A 和 B 在讨论使用缓存提高性能。A:这些统计指标放到缓存里就行了,页面定时刷新的时候就可以直接从缓存中获取,那就会快很多了。B:是个不错的主意。那是不是得先找运维申请资源,单机版的应该就够了吧?A:什么意思?为什么还有申请资源?不需要呀 B:你说的不是用缓存吗?A:是呀 B:对呀,装 Redis 需要资源呀 A:哦,好吧,我明白你什么意思了。不过对于当前这种情况,不需要引入 Redis,咱们用 Map 做一个简单的缓存就够了。
不知道各位在平时有没有遇到过这样的情况。在上面的场景中,问题得到了澄清和解决,这是好的。而现实中,往往出现按照“我以为”行事,出行任务执行偏差。
放平心态和平等对话,自不必多说。如果沟通的目的是为了解决问题,而不是吵架,就应该放平心态,心平气和,更不要玻璃心,这样才能抽丝剥茧逐步接近真相。而如果不能做到平等沟通,对话的渠道很快就会被关闭。
二,拉齐背景信息。
如果说上一条是为了有个正确的心态,而拉齐背景信息就是沟通的起点。背景信息和认知差异有时候有点难以区分,背景信息更多的是指针对当前要沟通的事情,要确保所有参与沟通的人是在同一个起点上;而认知差异,是指个体本身的知识储备,包括广度、深度。前者是比较容易对齐,而后者就比较难,需要双方在沟通付出很多的努力,后面说明如何解决认知差异的问题。拉齐背景信息的做法很简单:1. 不加任何个人判断的陈述事实 2. 找到可以依据的材料,比如会议记录、文档、之前沟通的聊天记录等等
针对开发中最常遇到的几个场景,可以选择不同的依据材料:
产品与研发的实现细节的沟通:
以评审过的 PRD、用户故事为依据,要求一些口头沟通的需求变更及时落实到文档上,防止遗漏
产品与测试、研发的测试细节沟通:
以评审过的 PRD、用户故事、测试用例为依据。要求在产品评审时,通过场景化的描述完善用例,覆盖和信息场景,确保参与评审的人对用例的理解投彻
技术设计与代码实现的细节沟通:
以架构设计和技术详细设计文档为依据。
Bug 的复现和修复:
以评审过的 PRD 和 Bug 的复现步骤为依据。要求 Bug 的复现步骤要能够完全复现问题,不能写的过于简单,还要配合必要的截图。
联调:
以 API 文档为依据。如今前后端分离、微服务架构盛行,对 API 的文档要求是非常高的。API 文档中,不仅仅要包括请求参数、返回值、异常定义,有时候可能还需要一些使用场景的说明。不过有时候文档的维护很难跟上需求和开发的变化,就需要沟通者在沟通时要仔细描述问题,确保各方的理解是一致的。
对于其他场景,我们也要考虑找到合适的依据,仔细沟通确保把大家对问题理解一致。
三,列出沟通事项,逐条沟通,
这一步就开始进入正式沟通环节了。如果是比较正式的会议,一定要列出讨论的议题,最好能在会议之前同步给所有参会人员。在实际的工作场景中,有很多是即时性的沟通。对于这种情况,发起沟通的人也要开宗明义,说出要解决什么样问题。
研发人员最经常参与的应该就是技术方案沟通了。比如架构师同步架构设计、工程师向其他人员寻求帮助。我们分别来说一下。架构师作为团队中技术灵魂,在设计架构时,不仅要满足基本的设计原则,兼顾稳定性与前瞻性,更要考虑技术的落地难度。落地既包括眼前的实现,也包括未来的扩展与维护。在引入一个新的模块或者新的概念时,一定要能给出确切的定义和边界,确保工程师团队能够理解并且可以落地。在沟通过程中,就需要架构师提供相对详尽的设计文档,并且能够通过一两个场景的讲解让架构活起来,立体起来。这个沟通是比较难的,十分考验架构师的沟通能力。建议,架构师在和团队沟通时,可以要预先准备一系列重要的检查点,时不时抛出这些问题,让团队回答,通过团队的回答的就可以判断大家是否已经理解了这个设计,进一步还能够清晰知道如何落地。即时性的技术讨论。其实对于技术沟通,有一个通用的方法:画图;时序图、流程图、状态演化图、类图等等,这些设计图,不仅仅可以大家的理解拉齐,更可以协助我们找到问题所在点,这是解决认知差异的非常好的手段。另外还有一个副作用,可以快速提高团队的设计能力。总结一下:技术沟通以技术设计图为基础。
在逐条沟通的过程中,要对一些关键的概念、技术点、方案做好记录,并且要确认出来行动项是什么。
四,确认沟通结果。
沟通完毕了,问题说清楚了,方案也有了,最后一定要确认沟通结果,留下沟通记录。主要沟通的内容包括:1. 方案详情,尤其关键环节、关键概念、关键步骤 2. 行动项,负责人和完成时间这些既是这次沟通的成果,也是以后某次沟通的依据。
版权声明: 本文为 InfoQ 作者【KJ Meng】的原创文章。
原文链接:【http://xie.infoq.cn/article/8b6b3b1d6d3120217e6e96060】。文章转载请联系作者。
评论