从一个小需求里,我看到了产品、开发和用户的三种误解
“在列表里加一个导出按钮。”这类需求听起来小得不能再小,却常常能把产品、开发和用户带进三条不同的路。
“在列表里加一个导出按钮。”这类需求听起来小得不能再小,却常常能把产品、开发和用户带进三条不同的路。
产品经理想的是:用户需要把数据拿出去,所以加一个入口。开发者想的是:导出 CSV、Excel 还是 PDF?权限怎么校验?大数据量怎么办?用户真正想的可能只是:我明天开会时,想把这几条信息发给同事。
三个人都没有错,但如果只从各自的位置出发,结果就会很奇怪。产品得到一个“已上线”的按钮,开发完成一套严谨的导出服务,用户却仍然不知道如何把重点告诉别人。

我现在遇到这类需求,会先多问三句:用户触发这个动作的前后分别在做什么?他最终要交付或决定什么?有没有更短的路径让他得到那个结果?
有时答案是导出,有时是复制链接,有时只是生成一段可直接转发的摘要。需求表面是按钮,底层往往是一次沟通任务。
小需求之所以容易吵,是因为大家太快讨论“怎么做”,却没人先确认“为什么要做”。把这一步补上,很多技术争论会自然变短,产品也更接近用户真正需要的东西。
一个按钮背后,往往藏着一段没人说出口的流程
继续拿“导出”举例。用户提出这个需求时,可能刚结束一次筛选,正准备把结果带到另一个工具里。他真正的目标不是得到一个文件,而是完成一次交接。如果团队只盯着文件格式,很容易花两周做出复杂的导出中心,最后发现用户多数时候只是复制两行内容发到群里。
这类误解特别常见,因为每个角色接触到的是不同切面。产品从反馈里听到“我要导出”,开发从实现上看到“这是一个带权限和数据量的问题”,用户脑子里想的是“我得赶紧把这事交出去”。没有谁故意理解错,只是中间缺少了一次把场景说完整的对话。
所以需求评审时,除了原型和排期,我很建议补一个最笨的问题:“请你从用户打开页面的前一分钟开始讲,他要完成什么?”
别小看“前一分钟”这几个字。它会把抽象的需求拉回真实动作:用户先筛出十几条记录,再比对其中三条;他发现同事不在系统里,于是想把结果带走;第二天开会时,他需要让所有人快速看懂结论。走到这里,团队才有资格讨论到底该做导出、分享链接、截图水印,还是一份带重点字段的摘要。
这个问题能筛掉许多伪需求。有人会发现,用户不是想导出,而是想和同事共享;有人会发现,所谓的“增加筛选”只是因为列表默认排序让人找不到东西;也有人会发现,用户提出的方案已经是他尝试过几次后的妥协。

第一种误解:产品把用户说出的方案,当成了需求本身
用户通常不会用“我在跨团队协作时缺少一个低摩擦的交接方式”来提需求。他只会说:“能不能导出 Excel?”
这不是用户表达得不专业,而是正常人就是从自己最熟悉的办法出发。很多人过去习惯用 Excel 接力,也知道“导出”是最容易被理解的词。产品如果把这句话原封不动写进需求池,流程看似很顺,信息却在第一站丢了一层。
更稳妥的做法,是把用户的话拆成两部分记下来:一部分是他提出的方案,另一部分是他所处的场景和期待的结果。前者是线索,后者才是需要验证的东西。
比如可以继续追问:“你一般把文件发给谁?”“对方需要继续编辑,还是只需要看到结论?”“这件事一周发生几次?”“如果现在不能导出,你会怎么完成?”这些问题不需要做成一套审问流程。聊上两三句,往往就能知道用户是临时救急,还是一条高频而稳定的工作链路。
产品最容易掉进的坑,是把“有人提出”误判成“应该做”。一条反馈可能代表一个真实的麻烦,也可能只是某位用户在特定情境下想起的熟悉工具。真正值得投入的不是那个词,而是词背后反复出现的阻塞点。
第二种误解:开发把工单的边界,当成了问题的边界
开发者很容易把需求理解成一张待实现的工单。这样做效率很高,但一旦需求本身描述得不够准确,工程能力越强,越可能把错误的方向做得很完整。
假设需求写着“列表增加导出 Excel”。开发很自然会想到字段选择、异步任务、下载记录、权限校验、大数据量分批处理、失败重试。这些考虑都专业且必要。问题在于,如果用户真正只想让三位没有系统权限的同事确认结果,那么完整导出也许不是最小解;一个有有效期的只读链接,甚至一段可复制的摘要,都可能更接近目标。
这不意味着开发要替产品拍板,更不是要求每个人在写代码前都去做用户访谈。开发真正能做的,是在开始前确认一件事:这个实现动作结束后,用户下一步准备做什么?
如果答案说不清,就值得把问题抛回讨论。比如:“导出后是要继续加工数据,还是为了分享?”“是否只需要当前筛选结果?”“接收方是否有系统账号?”这些问题会带来一点点前置沟通,却能避免日后返工一个完整模块。
很多团队把这种追问看成“需求不清,别开工”的防御姿态。其实它也可以是一种建设性的协作方式:先说明你看到的实现成本,再给出一两个可选路径。产品不必被技术细节淹没,开发也不必默默承担一个定义含糊的结果。
第三种误解:用户以为自己只能提出一个解决办法
还有一种常被忽略的误解,发生在用户自己身上。用户经常担心需求太模糊会被拒绝,于是努力给出一个看起来足够具体的方案:“加个按钮”“加一个筛选项”“做个批量操作”。这份具体有时是帮忙,有时也会让团队更难看到原始问题。
好的反馈不必专业,但最好把困境说出来。比起“请加导出”,一句“我每周要把筛选结果发给外部合作方,他们没有账号,现在只能手动截图”更有用。前一句把选择收窄了,后一句把场景交给团队一起找办法。
当然,不能把责任推给用户,说“你没讲清楚,所以我们做错了”。产品和开发本来就比用户更熟悉系统的能力边界。用户只需诚实描述他想完成的事、现在卡在哪里、什么样的结果算有用;剩下的翻译与取舍,应当由团队来承担。

把小需求讲完整,只需要补齐四个空格
不需要为每个按钮开一场长会。面对这类细小但容易跑偏的需求,我更愿意用四个空格把话补全:
- 谁在什么场景下遇到了问题?
- 他现在是怎么绕过去的?
- 他最终要交付、决定或告知什么?
- 做完后,怎样才算真的帮到他?

以导出为例,补完后可能变成:“销售运营在每周例会前,从客户列表筛出高风险客户;现在靠截图发群;他要让没有系统账号的销售经理确认优先级;如果能在手机上直接打开并看懂重点,就算解决。”
到了这一步,方案空间反而变大了:可以是导出,也可以是可分享的只读页面、自动生成的周报,或者一个更合理的通知入口。接下来再结合频率、权限、成本和未来扩展性做选择,讨论才有了共同的坐标。
少问一句“做不做”,多问一句“帮谁完成什么”
小需求之所以容易吵,是因为大家太快讨论“怎么做”,却没人先确认“为什么要做”。产品担心错过用户声音,开发担心范围失控,用户只想赶紧把手头的事办完。三个担心都合理,但它们不该各自变成一堵墙。
一个成熟的团队,不是从此没有模糊需求,而是遇到模糊需求时,知道先把它还原成一个人的一次行动:他从哪里来,卡在什么地方,要带着什么结果离开。
好产品很少来自某一方单独的聪明。它通常来自有人愿意把一句模糊的话多追问半步。这个动作看起来慢,却经常是整个流程里最快的部分。因为你省下的,不只是一轮返工,还有一次做出了功能、却没有解决问题的失望。