业务方来找你:我们想要一个实时报表,能看到每秒钟的订单量。
你说:实时报表需要流处理架构,我们现在是批处理,改造需要三个月。
业务方皱眉:三个月?太久了吧。能不能快一点?
你说:这涉及到整个数据管道的改造,从数据采集、传输、存储到查询,都要重做。而且还要考虑数据一致性、容错性、资源消耗……
业务方的眼神开始变得迷茫。
你继续解释:具体来说我们要上Kafka做消息队列,然后用Flink做流处理,结果写到Druid或者ClickHouse……
业务方打断你:等等,我听不懂你在说什么。我就是想看一个实时的数字,为什么这么复杂?
你感到有点委屈:我在努力解释技术难度,他怎么就不理解呢?
业务方感到有点烦躁:我提了一个简单的需求,他怎么扯出这么多技术名词?
这是数据开发工程师最常见的沟通困境:技术问题很复杂,但业务方听不懂。
你知道这件事为什么难、为什么需要这么长时间、为什么有这些约束。但你说出来业务方一脸茫然。他们不是故意为难你,他们是真的不懂。
而你呢?你不是不会沟通。你只是在用技术语言和非技术人员对话。这就像你用中文和一个只懂英语的人说话。不是话说得不对,是语言不通。
认知重构:你不是沟通能力差,你是没有”翻译”想象一下:你在国外餐厅,服务员只懂英语,你只会中文。你把菜单上的每道菜用中文解释得清清楚楚——用料、做法、口感,说得头头是道。但服务员一个字也听不懂。
问题出在哪?不是你对菜品不了解,也不是服务员笨。是你们之间缺少一个翻译。
技术沟通的本质就是这件事。你和业务方之间存在一条语言鸿沟——你说的是”技术语言”,他们说的是”业务语言”。两种语言各自都很精确,但彼此不互通。
你的工作不只是写代码,还包括当翻译。 把技术世界里发生的事,用业务世界的语言讲清楚。这不是降低专业性,恰恰相反——能翻译的人,才是真正理解了两边的人。

沟通障碍的根源
和业务方沟通不畅,表面上是”他不懂技术”,但深层的原因不止这一个。
知识背景不同。 你有五年的技术积累。Kafka、Flink、数据一致性、分布式系统——这些概念在你脑子里是清晰的。业务方没有这些积累。他们可能知道”数据”是什么,但不知道数据是怎么流动的、存在哪里、怎么被处理。当你用技术术语说话时,对你来说是精确的表达,对他们来说是噪音。这不是智商问题是知识背景问题。你让一个医生给你讲专业医学术语,你也会听不懂。
关注点不同。 你关注的是:技术实现难度、系统稳定性、资源消耗、代码质量。业务方关注的是:能不能做、要多久、花多少钱、对业务有什么影响。当你在解释”为什么技术上这么复杂”时,业务方在想的是”所以到底什么时候能用”。你们在说不同层面的话,自然接不上。
信任不足。 如果业务方信任你,你说”这件事需要三个月”他们会相信。如果信任不足,你说什么他们都会质疑:真的需要这么久吗?是不是在推脱?信任不足的时候你越解释技术细节,他们越觉得你在用技术名词吓唬他们。
技术语言 vs 业务语言:翻译对照表
在学习具体的沟通技巧之前,先看一张表。这张表是”技术语言”到”业务语言”的翻译词典。你会发现,同一件事换一种说法,业务方的理解完全不同。
| 你想说的(技术语言) | 你应该说的(业务语言) | 为什么这样更好 |
|---|---|---|
| 需要上 Kafka 做消息队列 | 我们要加一个”传送带”,让数据实时流过来 | 业务方能想象”传送带”,想象不了 Kafka |
| 目前是 T+1 批处理架构 | 现在数据每天更新一次,看到的是”昨天的照片" | "昨天的照片”vs”实时直播”,秒懂 |
| 需要做 ETL 管道改造 | 数据从采集到展示的整条路要重修 | ”修路”比”ETL”直观一百倍 |
| 存在数据一致性风险 | 有可能出现两个报表数字对不上的情况 | 业务方最怕”数字对不上”,这是他们的语言 |
| 查询性能需要优化 | 现在报表打开要等 10 分钟,优化后 10 秒出结果 | 用他们每天体感到的痛点来说 |
| 需要 3 个人月的开发资源 | 需要 3 个工程师干一个月,或 1 个人干三个月 | 把抽象单位换成具体的人和时间 |
| 要做数据血缘分析 | 要搞清楚这个数字是从哪来的、经过了哪些加工 | ”数字从哪来的”是业务方也关心的问题 |
| 分布式系统的 CAP 限制 | 实时性、准确性、稳定性三个只能保两个,你选哪两个? | 把技术约束变成业务选择题 |
| 需要做数据治理 | 现在数据像一个没整理的仓库,先整理清楚才能用好 | ”整理仓库”人人能懂 |
| Spark 任务调度延迟 | 数据处理排队了,就像高峰期打车要等位 | 生活化类比,零理解成本 |
记住一个原则:你说完一句话,脑子里想一下——如果对面坐的是你妈,她能听懂吗? 听不懂就换一种说法。