工程与产品之间的数据孤岛
产品经理与工程师使用不同工具、语言和时间线。这是孤岛形成的方式 – 以及真正有效的解决方法。
By Ellis Keane · 2026-03-16
在某个时刻,"产品与工程协同"从能干的人共同工作时自然发生的事情,变成了一个职位名称。公司现在专门雇用一些人,其唯一目的是确保两群聪明人–他们坐在同一个 Slack 工作区中,参加同样的站会,理论上朝着同样的目标努力–能够真正理解对方在做什么。使这一切成为必要的工程与产品之间的数据孤岛不是人的问题。这是工具问题。
产品经理和工程师的沟通已经足够多了。问题在于他们在完全不同的系统中工作,而在这些系统之间形成的孤岛具有结构性–嵌入了现代团队选择工具的架构之中。再多的"让我们更频繁地对齐"也无法解决工具本身彼此不感知的问题。
两种现实
我从我们自己构建 Sugarbug 的经历中汲取,因为我们每天都在经历这些,我认为具体细节比抽象版本更有用。
产品经理这边(在我们的情况下,这主要是我)生活在 Notion 中。规格文档在那里撰写,优先级在那里跟踪,客户对话在那里记录,功能请求在每周不断增长的持续列表中归类。Notion 是"为什么"所在的地方–为什么我们要构建某样东西,客户实际说了什么,特定决策背后的战略背景。它杂乱无章、内容繁多,也是写下第一行代码之前大多数重要思考发生的地方。
与此同时,我们的工程师生活在 Linear 和 GitHub 中。Linear 保存任务、sprint 周期、依赖关系链和阻塞 issue。GitHub 有代码、pull request,以及人们就实现细节进行建设性争论(希望如此)的审查讨论串。"如何"和"何时"在那里–某样东西是如何被构建的,何时会发布,什么东西挡在路上。
两种现实都是准确的,两者都至关重要,而它们彼此完全脱节。它们之间的差距正是需求变得陈旧、返工开始积累的地方。
工程与产品之间的数据孤岛究竟是如何形成的
人们容易认为这是一个刻意的选择–是某人决定将信息分开。实际上,孤岛是通过完全合理的行为形成的,没有人打算造成伤害。
产品经理在 Notion 中写了一份规格,在 Slack 中将其链接到工程频道,并认为交接已完成。工程师阅读规格,从中创建三个 Linear issue,然后开始构建。到目前为止,一切正常。
但随后规格发生了变更–一次客户对话改变了优先级,或者业务背景发生了变化。产品经理更新了 Notion 文档,并在 Slack 中留下了关于变更的备注。深陷于编码工作的工程师几个小时都没有看到 Slack 消息。那时他们已经按照旧规格构建了三个功能中的两个,而 Linear 中的第三个 issue 仍然引用着已不复存在的需求。
这里没有人粗心大意。没有人"没能沟通好。"信息存在于一个系统中,工作发生在另一个系统中,它们之间的连接纽带是一条 Slack 消息,在正确的人看到它之前就已经被其他讨论串埋没了。
这一幕不断重复–在每一份规格、每一个 sprint、每一个季度–偏差不断积累。产品认为正在发生的事情与工程实际正在构建的东西之间的差距,随着每一次依赖人在正确时间注意到消息的交接而不断扩大。
为什么"更好的沟通"解决不了这个问题
我曾坐在复盘会议上,行动事项是"更主动地传达变更",而(善意地说)这在组织层面相当于告诉某人只要更有条理就行了。听起来可以操作,让 Confluence 页面看起来很有成效,但对导致问题的系统毫无改变。我们已经执行过同样的复盘行动事项三次了–我查过。
更好的沟通不能解决工程与产品之间数据孤岛的原因是,沟通已经在发生了–数据存在,决策正在做出并被记录。只是被记录在彼此不感知的工具中。
Notion 不知道一份规格已经被分解为三个 Linear issue。Linear 不知道某个 issue 背后的需求在两小时前在 Notion 中已经改变了。GitHub 完全不知道正在审查的 PR 实现的是一个在产品经理 Notion 看板中刚被降级的功能。每个工具都完全按照设计运行–它们只是没有被设计为协同工作。
"花一个周一早晨来确认你付费使用的工具没有在周末悄悄偏离现实,这其中有某种黑色幽默。" attribution: Ellis Keane
因此发生的是:规格变更时产品经理手动将 Notion 的变更同步到 Linear,工程师在 Slack 上问产品经理"这还是计划吗?",而团队负责人则把周一早晨花在对比看板以检查偏差上。我们亲眼看着自己每周浪费几个小时在本质上是手动数据同步的事情上,而这些工具在理论上本应已经彼此了解。
系统性修复究竟是什么样子
当你看到两个工具之间存在差距时,本能是建造一座桥–Zapier 自动化、webhook、同步脚本。对于简单、可预测的工作流(当一个 Linear issue 移至"完成"时,更新 Notion 状态),这种方法完全奏效。
但工程与产品之间的数据孤岛涉及的是上下文,而不仅仅是状态。产品经理不只是更改了状态字段;他们重写了规格中的一个段落,改变了三个 Linear issue 中两个的"完成"含义。简单的状态 webhook 会错过需求级别的变更,除非你在上面添加差异逻辑和语义映射,而大多数团队永远没有机会构建这些。
你真正需要的是能够理解工具间数据关系的东西–不只是"这个 Notion 页面与这个 Linear issue 相关联",而是"规格的这个部分描述了这个 issue 的需求,而那个部分刚刚改变了。"目标是自动将规格编辑映射到受影响的 issue,而不是依赖某人注意到并传播变更。
这就是同步层与知识图谱之间的区别。同步层在工具之间复制数据。知识图谱追踪数据之间的关联方式,检测这些关系发生变化的时机,并将变更呈现给需要知晓的人。
我们正在以这种方式构建 Sugarbug–将产品经理和工程师已经使用的工具(Notion、Linear、GitHub、Slack、Figma)连接到一个维护规格、任务、代码和对话之间关系的知识图谱中。我们仍处于早期阶段(说实话,关于如何在规模上使语义差异检测可靠,我们还有很多没有弄清楚),但核心图谱正在运行,已经捕获了本来会变成返工的规格偏差情况。
工程与产品之间的数据孤岛的形成,是因为工具在结构上彼此脱节,而不是因为人们沟通不畅。解决方案是在关系层面连接数据,而不是增加更多沟通渠道。
本周你可以做什么
我不会假装唯一的答案是"使用 Sugarbug。"使用你已有的任何工具,现在就可以采取一些措施来减少产品-工程数据孤岛的最坏影响。
让交叉引用明确、双向且有责任人。 每份 Notion 规格底部都应该有一个"Linear Issue"部分,链接到它派生出的 issue;每个 Linear issue 也应该链接回其源规格。为每份规格指定一个人负责交叉引用–不是整个团队,一个人,名字写在上面。我们尝试了"人人有责"的版本,结果(可以预见地)没有人负责。随着时间推移,链接无论如何都会出现偏差,但有一个有名有姓的负责人意味着当发现偏差时有人可以联系。
建立带有触发器而非提醒的"规格变更"仪式。 当规格发生实质性变更时(不是错别字–是真正的需求变更),产品经理在关闭 Notion 标签页之前更新链接的 Linear issue。不是之后,不是"有机会再说"–是在关闭标签页之前。每个受影响 issue 上的评论应该只有一行:什么发生了变化,更新部分的链接,以及该 issue 的验收标准是否仍然有效。我们发现,将更新与物理动作(关闭标签页)绑定比依赖任何人的记忆效果更好,因为记忆恰恰是孤岛一开始就形成的原因。
每周五进行 15 分钟的优先级匹配检查。 一个人(每周轮换)将产品经理在 Notion 中的前 5 个优先事项和工程 sprint 在 Linear 中的前 5 个优先事项并排列出。问题不是"这些相同吗?"–它们不会相同,这没关系。问题是"这些中有任何一个在积极地相互矛盾吗?"如果产品经理的第 1 优先级在 sprint 中完全找不到,那就是周一要讨论的话题,而不是状态更新。
这些是手动流程,有一定的有效期。对于五名工程师和两名产品经理来说,它们很繁琐但有效。对于十五名工程师、三名产品经理和一个将 Figma 加入其中的设计团队,跨工具关系的增长速度比任何人手动追踪的速度都快。但它们会教你了解你最糟糕的产品-工程协同差距实际上在哪里–即使你最终将所有事情自动化,这种诊断价值也值得付出努力。
无论长期解决方案是 Sugarbug 还是其他东西(我们显然认为我们正在构建正确的东西,但我有偏见),产品管理与工程协作问题只有在工具本身在语义层面上连接起来、人们可以专注于做决策而不是在应用程序之间传递上下文时,才能得到解决。
如果你的手动交叉引用还在维持,就尽可能长地坚持下去。如果你一再看到关于沟通的相同复盘行动事项,问题不在于你的人。而在于你的数据架构。
将 Notion、Linear、GitHub 和 Slack 连接到一个知识图谱中–让规格变更自动呈现给正确的工程师。
Q: 为产品-工程团队设置 Sugarbug 需要多长时间? A: 每个工具的初始连接只需几分钟–您通过 OAuth 验证 Linear、GitHub、Notion、Slack 和 Figma,Sugarbug 立即开始构建知识图谱。当它摄取您的现有数据并开始映射规格、issue 和对话之间的关系时,知识图谱在一两天内就会变得切实有用。我们仍在完善引导流程,但目标是除了连接账户之外,您无需配置任何内容。
Q: Sugarbug 会取代 Linear、Notion 或我们现有的任何工具吗? A: 不会。Sugarbug 与您现有的工具并列运行并将它们连接起来–它不会取代任何工具。您的产品经理继续在 Notion 中编写规格,您的工程师继续在 Linear 和 GitHub 中工作,Sugarbug 维护它们之间的关系,确保上下文不会在传递过程中丢失。把它看作是您已经使用的工具之间的连接组织。
Q: Sugarbug 能检测到 Notion 规格文档的变更并通知相关工程师吗? A: 这是我们正在构建的核心部分。当 Notion 中的规格发生变更时,Sugarbug 会识别与之关联的 Linear issue,并将变更呈现给正在处理这些 issue 的工程师。我们仍在迭代语义检测部分(确定哪些变更是实质性的,哪些只是表面性的),但跨工具链接和基本变更检测已经可用。
Q: 针对这个问题,同步工具和知识图谱有什么区别? A: 同步工具在应用程序之间复制状态变更–当一个 Linear issue 变为"完成"时,更新 Notion 复选框。知识图谱追踪数据之间的关联方式:这份规格描述了这三个 issue 的需求,验收标准发生了变化,这影响了尚未发布的两个 issue。当变更是语义层面而非仅仅是状态层面时,这种区别最为重要。
Q: 产品与工程的协同是沟通问题还是数据问题? A: 根据我们的经验,这几乎总是被误诊为沟通问题的数据问题。团队正在沟通–只是通过彼此不感知的工具进行沟通。修复这些工具之间的数据流,往往能解决无数复盘会议或同步会议都无法解决的协同问题。