阿里美攻略:沟通说起来容易,做好难。如何将复杂的技术问题用通俗易懂的方式表达出来让别人看得懂,是每个技术人都会面临的难题。本文作者以自身经历为背景,总结了技术人员在日常技术沟通过程中遇到的一些低效的技术沟通方式,试图分析沟通双方的心理状态,试图探索改善沟通的途径效率。1一些技术沟通效率低下的案例1技术问题描述不清晰,解决效率低。同学A在发货现场遇到技术问题,找同学B在项目组帮忙解决流程。同学A:老大,云架构改了之后,数据库规划就做不了了。同学A:解不出来。其他同学CDEF:其他问题的讨论打乱了语境。同学A:数据库不能规划,报了风险。学生乙:先把问题描述清楚。同学A可能的心理状态:这是产品问题,不是我的。我已经把日志和截图发到群里了。你要为你爬上楼看到的问题负责。B同学可能的心理状态:这是什么问题?我必须爬楼梯才能看到它。我现在没时间,先不处理了。......N小时后,娜妮,刚才@我是哪个群,群太多找不到了,没有电话,看来我不着急,走吧先吃饭。A同学的心态和方法需要改变:谁的问题不是最重要的,最重要的是如何让下一个环节的接口人在最短的时间内看懂问题?让他知道我在等饭煮熟的焦急。可行的提问方式:比如提取爬楼梯时需要看的碎片化信息后,提出如下问题:“这里有一个问题需要你解决,问题的现象是xxx,我们的期望是xxx,实际看到的是xxx,没有达到预期。从日志和报错来看,可能是xxx出了问题,我们的xx项目在线等待,急需解决。”2解决方案太抽象,复现性有限,有一次在线技术分享直播,有同学在会后讨论培训细节请教讲师C:我们的方案中,controller调用apiserver进行调度,然后apiserver查询数据库中的元数据配置信息,然后向业务服务器发送请求。芭芭拉,我不想浪费你太多的时间,快点吧。培训结束,掌声雷动.D同学:我需要用这个方案跟客户沟通,我得把原理讲清楚,加上一些文字说明,方便客户理解C讲师电话中可能出现的心理状态:我已经画清楚了,而且我也做过培训,所以听完后要自己思考消化。同学D可能的心态:这些画框很容易画,没有相应的说明,与客户的沟通效果可能很差,需要找不同的人交叉核对,再完善材料。C讲师的心态需要转变:最好的学习方法就是用通俗的语言教别人。如果你不能让别人容易理解,那说明你还没有掌握透彻。可行的交流方式:上次的分享时间比较有限,没有讲的很透彻。举个通俗的例子可能更容易理解。……此处省略500字。然后结合客户场景,双方进行了更详细的讨论,各有所收获。3核心问题(技术决策点)没有突出,技术审评效率低。E同学给客户介绍了一个三机房方案。客户需要决定是选择物理第三机房还是逻辑第三机房。但是,听了客户的话,还没有到决策点有什么不好呢?可行的决策报告会沟通方式:方案介绍后,梳理两个备选方案的优缺点,用红色加粗标注的决策点是什么。在上面的场景中,有两个问题需要解决:同理心不够。他们只考虑自己的需要,并没有考虑到对方的利益和风险。不是用对方能听懂的语言表达的。2.解决方案同理心是一种意识上的改变。这种改变说起来容易做起来难。《终生成长》本书有一个核心思想:比起“证明我比别人强”“这不是我的问题”的思想,“一起解决问题,多学习”的思想更有帮助成长。借用费曼学习法来解决问题,核心思想是“如果你认为自己已经学会了某种专业知识,看看你能不能把这些知识教给一个10岁的孩子。”费曼本人是诺贝尔奖得主,也是著名的教育家。他的学习方法分为四个步骤:1.选择一个概念选择一个你想学习的概念。2.教授这个概念(费曼技术的灵魂)。想象一下,你面对的是这个领域的菜鸟,甚至是一个十岁的孩子,试图把这个概念解释清楚,让对方完全理解。一方面,加深自己的理解,另一方面,找到自己不理解的节点或卡点。3.查漏补缺。当你无法解释时,回过头来寻找答案。回到书本上,回到你的同学、老师和已经理解它的人那里,重新研究这个概念。结果要求您能够流利地重新解释这个概念。4、简化语言,尝试类比,不断升华。如果它是一个学术或抽象的术语,请尝试用简单的术语来解释它,并将其与其他事物进行比较。特别是,分类的目的是为了更好地理解核心思想,允许与技术意图有细微的偏差。3.体验Feynman学习法的过程当笔者第一次听别人介绍微服务中注册中心的功能介绍和实现原理时,对RPC、RS、SessionServer、DataServer、MetaServer这些名词感到有些迷茫。笔者当时有一个想法,如果我把微服务产品介绍给客户,如何让他们更容易理解?于是开始找官网文档和研发团队文档了解,然后用生活中的小故事和场景来讲解介绍。1、什么是RPC?技术解释RPC(RemoteProcedureCall)的本质是屏蔽网络的细节和复杂性,提供简单易用的API,让用户像调用本地函数一样实现远程调用,所以最重要的是RPC是实现远程调用“像调用本地函数一样”,完全不让用户感知底层网络。Sofa产品中不同容器之间,通过RPC调用实现“高内聚低耦合”的效果。流行介绍几个逛街的闺蜜,有人说突然想起快递被没收了,想回去取快递。还有人说,你打个电话,回你老公那里去取快递就行了。提前跟老公说明收快递的信息(哪个快递公司,快递点在哪里,快递里面有什么,收件人姓名电话),打电话给老公远程操作收快递的过程,这称为RPC。2.什么是注册表?技术解释Registry是指一个高可用的服务注册中心,能够承载海量的服务注册和订阅。Registry服务注册中心分为四种角色:客户端(Client)、会话服务器(SessionServer)、数据服务器(DataServer)、元数据服务器(MetaServer)。每个角色在执行不同的能力后对外提供服务能力。Registry服务注册中心的主要组件有:Client:提供应用程序访问服务注册中心的基本API能力。应用系统依赖客户端JAR包,以编程方式调用服务注册中心的服务订阅和服务发布能力。SessionServer:会话服务器,提供客户端访问能力,接受客户端的服务发布和服务订阅请求,并作为中间层将发布的数据转发给DataServer进行存储。SessionServer可无限扩展以支持海量客户端连接。DataServer:数据服务器,负责存储客户端发布的数据。数据存储按照数据ID存储在一致的哈希分片中,支持多副本备份,保证数据的高可用。DataServer可无限扩展以支持海量数据。MetaServer:元数据服务器,负责维护集群SessionServer和DataServer的一致列表,当某个节点发生变化时及时通知集群中的其他节点。通俗介绍,登记中心产品可以理解为二手房中介机构。微服务架构中的服务注册/发现/调用可以类比为买卖双方通过中介完成房产交易的过程。客户:客户可以是购房者或房东。SessionnServer:类似于中介店,负责接待购房者和房东。可根据业务增长情况增设门店。DataServer:类似于中介公司后台的数据库,记录了所有门店的客户数据,包括买家和房东。MetaServer:类似于中介公司的门店系统,维护门店和客户数据,买家和房东不可见。当任何门店或客户信息发生变化时,及时通知所有门店。比如,房子突然降价20万元,急卖,就需要通知所有门店寻找客户。服务注册流程(房东卖房)服务订阅流程(购房者买房)服务调用流程(买家询价)4.建立自己的场景库1.维护自己的词汇表,在客户沟通界面识别高频术语通过身体的知识属于自己,即使看到别人写得很好的材料,也要复制一遍。2.为高频词准备一个有生活场景的介绍。平时观察生活中人/事/事的关系,方式自然。很多设计模式,比如代理模式(例如:专利申报代理),责任链模式(例如:提交购房资格申请,不关心哪个委员会来处理,最终拿到购房资格),观察者模式(例:某银行在招标网发布项目招标需求后,各家乙方厂商认购新项目招标,蜂拥而至)等等,生活中都能找到类似的影子。作者比较迟钝,不可能在这里穷举所有的设计模式。3.及时做笔记,不断更新,为高频词准备故事或场景。一段时间后无法完善。有时候是半夜突然冒出来的灵感,有时候只是看到一个写在里面的文档。好的。
