点头不是共识:需求评审为什么总是事后翻车

博客分类: 

每个做过需求评审的人大概都经历过这个场景——产品经理对着投影仪把PRD过了一遍,问了句"大家有什么问题吗?",沉默,没人说话。"好,那就这样。"散会。

然后写代码写到一半,问题冒出来了。前端说这个交互跟另外一个模块冲突,后端说这个数据结构改不动,测试说这个场景根本没法验证。所有人突然都有意见了,但不是在评审会上。

这不是个例。在金融业务这种需求复杂度高的场景里,我见过太多次"全员通过"的需求评审最终落地时面目全非。问题不在某个角色,不在某个人,问题出在需求评审这个仪式本身——它制造的共识感是假的。

 

全员点头到底说明了什么

 

先搞清楚一件事:评审会上大家为什么都在点头。

最表层的原因——大部分人根本没消化。产品经理30分钟讲完40页PRD,信息密度像子弹,你能记住的只有自己那块冰山一角。但没人举手说"我没听懂"。这跟技术评审会上没人敢说"这个架构我没看明白"是同一种心理。沉默被解读为同意,点头被当成认可。会议室比你想的更像剧场,每个人都在演"我在认真听"。

深一层的原因更隐蔽——听懂了也不代表同意。你可能觉得优先级不对,或者技术方案有更优解,但表达异议有成本。你要把异议说明白,要准备替代方案,要面对争论。在当众质疑和默默接受之间,多数人选择后者。尤其当你的leader也在场而且没说话的时候,这个沉默就更心安理得了——上面都没意见,我操什么心。

还有一个原因可能是最要命的——那些真正的问题,在评审的时候根本还不存在。需求评审本质上是在信息不完备的节点做决策。很多问题只有动手实现了才会暴露:接口怎么调、状态怎么同步、边界条件怎么处理。你在评审时想不到,不是因为不够认真,是因为那个阶段的认知就是不完全的。就像让你在动笔写代码之前把所有bug都想清楚——不可能。

我观察到一个规律:评审会开得越顺畅,后面开发过程越痛苦。原因很直白——顺畅意味着没人提出异议,没人提出异议通常不代表需求没问题,而是问题还没被看到。

 

"理解偏差"根本不是偏差,是必然

 

产品经理抱怨"开发做的不是我要的",开发抱怨"产品经理根本不懂技术"。这两种抱怨同时成立,说明问题不在任何一方,而是两者之间存在一条永远无法完全对齐的鸿沟。

需求文档是线性叙述的——先讲业务背景,再列功能模块,然后是交互细节。但软件实现是非线性的——一个按钮点击可能涉及状态管理、接口调用、错误处理、权限校验五个层面。产品经理讲的是"用户故事",开发者想的是"数据流和状态机"。这不是理解偏差,是两种认知模型在碰撞,而评审会的格式根本不支持这种碰撞的展开。

金融业务里这个问题格外尖锐。一个理财产品的购买流程,产品经理看到的是"用户点击购买→选金额→确认→完成",线性、清晰。但开发脑海里浮现的是:资金账户够不够、是不是在交易时间、风险测评过没过期、限额超没超、黑名单校验、合规提示、支付通道选择、结果轮询……每个分支都可能导致完全不同的路径。评审会上产品经理在讲阳关道,开发在走迷宫,可两条路都叫"购买流程"。

更麻烦的是,参会的每个人看到的都是不同的"购买流程"。前端关注交互和状态,后端关注数据和逻辑,测试关注边界和异常。评审会上大家以为自己讨论的是同一件事,实际上每个人脑海中的画面都不一样。只是这些画面从没被说出来——评审会的形式不支持把每个人的认知摊开来对一遍。

 

把对齐压进一场会议,这本身就是问题

 

传统需求评审有一个底层假设:把所有人关进一间会议室讲一遍,大家就理解了。

这个假设经不起推敲。

人没法在30分钟里消化大量陌生信息,尤其是跨职能的信息。让前端理解后端的数据建模,让产品理解前端的渲染机制,不是讲一遍就能解决的事。但评审会的时间压力让所有人假装自己消化了。

口头沟通的保真度低得惊人。你说的"用户点击返回时弹出确认框"和我听到的"用户点击返回时弹出确认框"可能是完全不同的东西——你指的是任意页面的返回,我理解的是特定场景的返回。这种细微的语义偏差在评审会上几乎不可能被发现,直到代码写了一半才突然暴露。

群体动力学也在压制讨论。超过5个人的会议里,沉默的螺旋几乎是必然——持不同意见的人看到多数人没说话,就默认自己的意见不重要。而评审会通常不止5个人。10个人的需求评审会,真正在思考的可能只有3个,剩下7个要么在摸鱼,要么在想昨天那个bug怎么修,要么就是等着散会。

我不是说需求评审毫无价值——至少它让所有人知道了有这个需求。但它完成的是"通知"的功能,不是"对齐"的功能。通知和对齐之间的差距,远比大多数人以为的大。

 

对齐不发生在会议室里

 

如果评审会解决不了共识问题,那什么能?

我见过效果好的做法,不是改进评审会本身,而是把"对齐"从会议室里拆出来,分散到不同节点上。

在评审之前,做异步的信息传递。把PRD提前发出去——不是发一封"请大家提前阅读"的邮件,那种邮件不会有人点开。而是把关键决策点标出来,用问题的方式引导思考:"这个页面弱网怎么处理?""这个数据走哪个接口?""接口超时用户看到什么?"好的需求文档不是讲故事的,是提问题的。问题才能引发思考,陈述只会让人打瞌睡。

在评审之后,做小范围的技术确认。评审会是大场面,适合广播信息,不适合深挖问题。真正的问题在2-3个人的小群里才能聊清楚——前端和后端对一下接口,产品和开发对一下边界条件,开发和测试对一下验收标准。这些小范围对话比评审会有用得多,因为人少、目标明确、没有表演压力。

在开发之中,保持纠偏机制。别指望一次评审把所有问题想清楚。开发过程中持续对齐的效果远好于事前的一次性对齐。每天站会上一个"这个逻辑跟预期不一样"的反馈,比评审会上的一百次点头值钱。关键是建立快速提出问题、快速调整的氛围,而不是"评审过了就不能改"的流程刚性。

还有一个经常被跳过的实践:写技术方案。不是给领导看的那种方案汇报,是开发者写给自己的——我要怎么做、可能遇到什么问题、依赖哪些接口、边界条件有哪些。写方案的过程本身就在发现评审没发现的问题。很多团队省掉了这步,觉得直接写代码更快,省下来的时间最后都在返工里还回去了。

 

金融业务的特殊情况

 

金融业务的需求评审还有自己的特殊困难层。

合规是第一个。监管要求变化快,合规团队的人坐在评审会上,但他们关心的是"是否合规",不是"怎么实现"。一个合规要求在产品侧是"加个提示",在技术侧可能意味着状态机多三个分支、接口多两次调用、测试多五个场景。这种差距评审会上看不出来。

数据一致性是第二个。金融业务对数据一致性的要求到了极端的程度——一分钱都不能差。但产品需求通常描述的是正常流程,对异常流程往往只有一句"做容错处理"。这一句话在开发阶段会膨胀成几十个边缘场景。评审会上谁也预料不到这些场景,直到某个用户在某个极端时间点做了某个极端操作,然后资金对不上。

多团队协作是第三个。理财业务的完整链路涉及前端、BFF、后端服务、数据团队、推荐算法、运营平台——一次需求评审可能涉及5个以上的团队。让5个团队在一场会上达成共识,组织协调的成本本身就很夸张了,更别说真正的对齐。最后往往变成"各团队自己理解,联调时再对"——而联调时才发现理解不一致的修复成本,比评审时多讨论一个小时高得多。

 

评审会真正的价值

 

说了这么多,我想表达的不是取消需求评审——取消会在另一个方向上制造更大的混乱。我想说的是:对需求评审的预期要调整。

需求评审能做到的事:让所有人知道有这个需求,理解大方向,识别明显冲突。这已经很有价值了。需求评审做不到的事:让所有人真正理解需求的所有细节,在30分钟内发现所有潜在问题,达成真正的共识。

把评审当起点,不当地点。评审会之后的工作——异步的技术方案、小范围的对齐对话、开发中的持续纠偏——才是共识真正形成的地方。如果非要把这些后置的对齐也纳入"评审"的概念,那真正的需求评审不是一个会议,是一段过程。

一个有趣的现象:很多成熟团队最后演化出的需求处理方式,跟教科书上的评审流程差别很大。大家对着某个字段在IM群里讨论半天,在茶水间5分钟把一个交互方案对齐了,在PR review里才发现需求理解有偏差然后当场改——这些看起来松散的、碎片化的沟通,反而比正式的评审会有效。不是评审会有什么错,是"把共识建立压在一个会议上"这个想法有问题。

人越多,共识建立的成本越高;分歧发现得越早,修复成本越低。这两个道理大家都懂,但大部分团队的做法正好反过来——在人最多、成本最高的场合(正式评审会)试图建立共识,在人少、成本低的时候(两个人私聊对齐)才暴露分歧。

也许需求评审最该调整的不是内容,而是心态:承认这场会议达成的不是共识,是"暂时的方向认同"。真正的共识,要等代码写出来、跑起来、测过了,才算数。在那之前,所有的点头都只是礼貌。

You voted 5. Total votes: 1

添加新评论