有效且高效地沟通是每个职场人员需要且渴望的,尤其对于开发人员或测试人员来说,向一个不了解自己“主场”(自己负责模块或功能)的同事、客户等人员解释一些业务逻辑是一个很考验人的理解力和表达能力的事情。
那么,如何能够深入浅出、通俗易懂的讲解一些业务知识,解答一些逻辑问题呢?
我想,类比会是一个很好的办法。分享两个简单案例,喜欢能对大家有所启发。
案例一
某个功能应用安装场景,需要启动supervisor服务进行进程托管。但考虑和其他应用同机混装,supervisor服务可能被其他应用先启动,因此检测到supervisor已经启动,则直接使用。
出现问题:该应用使用root用户安装,所有进程以root用户启动,但最终提示安装失败,进程未启动。
问题排查
1)安装参数修改查验——>参数设置正确;
2)启动方式查验——>启动方式正确;
3)日志排查——>提示不能操作root权限进程。
进一步排查
在该应用启动前,同机已经其他应用,supervisor服务已经正常运行。但此时supervisor服务运行进程是非root用户,不能操作(接管)root用户启动的该功能应用进程。
当我第一次向对方解释这个问题的原因时,我采用的描述方式是:该功能应用需要supervisor服务接管监控进程,你使用root用户启动该应用,所有进程都是root用户。但由于supervisor服务已经启动,且是非root用户运行,接管该应用的进程时会有权限不够的问题,导致该应用启动失败。
我自认为问题解释的很清楚,但是聊天对话框久久没有回复,似乎能看到屏幕后的对方二脸懵逼。我仔细思考了下,可能表达的方式有缺陷,导致对方没有理解。于是,我使用了类比的方式给对方再次解释。
第二次解释这个问题的原因
就相当于我是管理员,我说我给你分配了一些任务,你说你的权限不够,看不到我给你的任务。
然后,对方一下子理解了问题的核心。由这个问题的交流我深刻反思了一下,如何有效、高效地完成沟通,也许用简单易懂地比喻更能让人接受和理解。
案例二
某应用模块B接受上层应用A接口调用,根据某传入参数para_b是否为true决定是否转发给应用C。对外呈现B和C联合完成某一功能,有同事不了解应用B和C之间的关系,问B和C之间是一个什么样的关系?
这样一个简单的业务逻辑描述在负责模块B测试的我看来很简单,但是对于不了解该模块的同事来说,他认为B和C是一体的,而且他们之前是不是并行处理的关系?!为了解答对方的疑惑……
第一次解释
模块A传参给模块B,模块B收到后决定是否转给模块C处理,最后模块B返回消息给模块A。
虽然这样的解释已经够简单,问题也简单。但为了更生动地解释,我再次补充了一下。
第二次解释
大概意思就是,我给你分配一个任务,你看了看处理不了,于是你请了个外包C,C任务处理完后,你告诉我你完成了。这就是A、B、C之间的关系。
经过无数次的沟通和交流,让我发现使用类比的方法,尤其是生活化的比喻描述专业性的事务能够使得沟通有效性加倍,而且结果更能让对方满意。
希望,两个简单的小案例能够帮助我们测试人员、尤其是开发人员更好地完成业务交流。