首页 / 资讯中心 / 文章详情

需求评审不是过会,而是对答案——三个失败模型与实战应对

需求评审不是过会,而是对答案——三个失败模型与实战应对 ★ FEATURED ARTICLE
需求分析和需求评审这个系列写到第三篇我不想再讲那些流程图上都有的东西了。前面两篇我们聊了需求收集的基本功和评审会的标准流程这篇想换个打法聊点流程表格覆盖不到的软东西——那些藏在评审会前、会中、会后真正决定需求质量的关键细节。先说一个反直觉的结论**需求评审通过并不代表需求正确。**我在实际工作中见过太多评审会开着开着变成仪式的情况——PPT念完、各方点头、签字走人然后开发到一半才发现理解不一致测试到最后才发现验收标准根本没法写。我把这些情况总结成三个失败模型所答非所求、一致但不全、合规但不可测。任何一个评审会只要踩中其中一个后面整个交付阶段都会为此买单。这篇内容适合谁看刚带项目的产品新人、被评审折磨的开发负责人、以及想提高需求评审有效性的测试和项目经理。文章里没有高深理论都是我这些年踩坑踩出来的经验。如果你刚接手需求分析工作建议先把前两篇的基础流程过一遍再来读这篇如果你已经有几个项目的评审经验这篇可能会帮你找到一些说不上来哪里不对的症结。1. 需求评审不是过会而是对答案——先想清楚这三个失败模型很多人没想明白一点需求评审的本质不是我把需求讲一遍你们有意见就提而是开发、测试、业务三方在开工之前最后一次对答案。对的不是你有没有讲清楚而是我们是不是真的共享了同一套认知。既然是对答案那前提就是双方手里都有一份可以对照的卷子。如果拿着题的人自己都没想清楚评审会就变成了一场互相猜测的讨论会。所以真正的高手在评审之前就会先识别自己面临的是哪种失败模型提前做好防范。1.1 第一个模型所答非所求这个模型最隐蔽也最烧钱。具体表现是评审会上讨论得热火朝天技术方案也定得很细但最后做出来的东西客户拿起来发现根本不是自己想要的。这种偏差通常不是技术问题而是问题定义错了。举个例子。某公司要做一个会员积分到期提醒功能评审会上产品经理把积分的计算规则、到期时间的设定、提醒文案的风格都讨论得很充分。开发也评估了定时任务的实现方案。会议开得很顺利结论都记录了最后各方签字。结果功能上线后积分清零的相关投诉不仅没减少反而更多了。问题出在哪会开完了没人问过一句用户是因为不知道积分要到期才不满意还是因为积分突然清零这件事本身就不满意如果根源是后者那再好的到期提醒也只是在美化一个用户讨厌的规则。评审会一直在回答提醒怎么做却没人验证过提醒是不是正确答案。这就是典型的所答非所求。1.2 第二个模型一致但不全第二个模型更常见会上大家都点头文档也评审通过了但需求里没写的东西在开发、测试阶段集中爆发。这种不全不是故意的往往是因为需求文档只写了正常路径没写边界、异常、分支。我见过最典型的例子是用户上传头像。需求文档写得很清楚支持JPG、PNG、WebP格式图片大小不超过5MB上传成功后在个人中心展示。评审时大家觉得没什么问题。结果开发一动手就发现一连串决策点上传过程中断了怎么办图片超过5MB的提示文案是什么上传失败后要不要保留用户原来的头像图片需不需要自动压缩头像要用在哪些页面各页面的最大显示尺寸是多少每一项单独看都不是大事但合在一起就成了延期和沟通成本的大头。更麻烦的是这些没写出来的需求不像新功能那样有专人负责它们散落在开发过程中靠开发、测试顺手决定。等上线了用户看到处理得不好的头像区域骂的还是产品。1.3 第三个模型合规但不可测这个模型最容易在评审现场被放过去因为文字上看全是合理的。某需求文档里写首页加载体验流畅搜索结果匹配度高表单填写流程符合直觉。这些验收标准既合规又正确但谁也验证不了。流畅是多快匹配度高是百分之多少符合直觉是谁的直觉评审签了字测试最后却说写不了用例只能靠开发的自觉。等到交付验收时业务方说体验不够流畅又没有任何客观依据来仲裁。需求的验收标准如果不可量化评审会就是在给未来的扯皮做铺垫。1.4 三层评审框架判断需求是否真的可评审为了对这些模型有个系统性的防范我习惯在评审前用三层框架把需求扫一遍。这套框架不是我的原创但我在实践里反复验证了它很管用语义层先确认我们要做的事到底是什么。评审时问自己能用一句话说清楚这个需求解决什么问题、给谁用、在什么场景下用吗如果说不清就先不要进入细节讨论。契约层确认输入、输出、边界、异常、权限。评审时问自己用户没权限时会看到什么数据量涨十倍这套逻辑还成立吗一切边界和异常情况有没有写下来验证层确认怎么做完、怎么算验收。评审时问自己我们用什么客观标准证明它做完了测试能不能据此写用例在日常操作中我会把这个三层框架做进需求文档模板里对应模型和检查项失败模型典型症状评审前的防范动作所答非所求讨论很热验收时客户说这不是我要的先过语义层写清业务背景和问题定义一致但不全会上全票通过开发测试时不断补充需求逐条检查边界、异常、分支、权限合规但不可测验收标准全是形容词测试无法写用例强制量化验收标准改写成可验证指标这套框架能帮你在评审前快速定位风险点在哪一层。定位到之后对应的准备工作才不会白做。2. 评审会前夜的深度功课把需求和人都读一遍我常说一句话**评审会的成败七成在会前三成在会上。**一个没有做足会前功课的主持人把大家拉到会议室里开始念文档那基本是在浪费所有人的时间。会前功课的核心就两件事把需求文档读透把相关的人读透。2.1 用读代码的态度去读需求文档很多需求文档写得像需求文档但经不起细读。所谓细读不是把每个字都看到而是像开发读代码一样追着每个条目问这个条件成立吗这个分支存在吗这句话换成开发语言是什么样的第一步是检查颗粒度。颗粒度太粗的需求评审时一定会漏细节。比如用户可上传头像这种描述背后藏着格式限制、大小限制、压缩逻辑、失败处理、尺寸适配、旧数据兼容等一长串问题。颗粒度太细也不对把按钮颜色浅一点深一点都写成独立需求条目评审会就会被这类细节占满反而掩盖了真正的功能边界。我见过有人把下拉刷新文案单独列为一条需求结果评审会开了两小时核心功能反而没聊透。第二步是检查依赖关系。需求条目之间往往有先后依赖A功能的数据字段由B模块提供C页面的入口又依赖A的完成度。评审前把依赖关系画出来能发现哪些需求是环环相扣的哪些其实是独立的。依赖关系理不清评审时的讨论顺序就乱一个点卡住了大家就一起耗在那儿。第三步是对齐术语表。同一个词业务、开发、设计理解经常不一样。我遇到过最搞笑的例子某系统里的时间业务方以为是自然日的24点开发实现成了自然日的0点测试用例里没有区分最后上线切数据切错了。评审前把所有术语的定义整理出来哪怕花十分钟也值得。2.2 反向评审换三个角色各读一遍读自己写的需求很容易陷入我以为我写清楚了的盲区。我在评审前夜会强制自己换三个角色各读一遍文档每个角色问的问题还不太一样。换开发视角时我会问这个需求在数据结构上怎么落状态流转怎么走有没有定时任务有没有对外接口哪个字段是必填、哪个允许为空开发视角的价值在于它能逼我补充掉那些实现过程中必须要有但文档里没写的细节。换测试视角时我会问边界值是什么权限组合有几种数据怎么构造哪些功能需要回归测试测试视角特别擅长发现正常路径之外的空白一个需求如果没法让测试设计用例它就是不合格的。换用户视角时我会问第一次用的人能看懂这个页面吗完成一次操作要几步失败了系统给什么提示用户视角逼我站在什么都不懂的状态下去审视文档。这一步能消灭掉很多自嗨式设计。2.3 会前一对一沟通把最大的分歧留在会议室外面评审会最怕的不是有分歧而是分歧在会议桌上第一次暴露。数据口径没对齐、两个部门对同一功能的理解完全不一致这种问题一旦当场摊开气氛立刻变成两方对峙主持人很难再把讨论拉回正轨。所以我在评审前会做一轮一对一沟通把要参与评审的关键角色挨个过一遍逐条问他们对这个需求的看法。谁可能会反对谁掌握着我不知道的信息谁虽然不说话但事后会影响决策这些问题在会前搞清楚的成本很低在会上的破坏力却很高。尤其是数据矛盾务必在会前解决。比如业务方统计出一版订单量数据技术方拉出另一版两者对不上。这种情况绝对不要拿到评审会上说你们的数据不对而是先私下对清楚口径。评审会上的任务是把结论钉下来不是去仲裁数据纠纷。2.4 一份评审前夜自检清单工具化地讲我每次评审前夜都会过一遍这份清单全部清楚才敢安心进会议室检查项具体问题状态业务背景这个需求解决什么问题不做会怎样未通过/已通过目标指标用什么指标衡量成功现在的基数是多大未通过/已通过使用角色谁用权限边界在哪未通过/已通过核心流程主流程跑得通吗分支和异常都写了未通过/已通过数据口径涉及的统计口径、时间口径是否已对齐未通过/已通过非功能要求性能、安全、兼容性有没有量化未通过/已通过验收标准测试能不能据此写用例未通过/已通过上线节奏有没有依赖其他项目上线窗口在哪未通过/已通过遗留问题明确延后的事项有没有记录负责人和时间未通过/已通过这份清单不复杂但能逼你在会前把所有模糊地带都过一遍。花两个小时做完这些评审会往往能缩短一半。3. 评审现场最容易被带偏的五个时刻即便你准备了完整的文档和自检清单评审现场依然会冒出各种突发状况。我把这些年最常见的带偏时刻整理成了五个典型场景每个都附上应对思路。这些处理方法不一定每场都适用但你可以把它们当成一套工具箱遇到类似情况直接拿出来用。3.1 当有人说这个需求很简单评审会上最常听到的一句话就是这个需求很简单。说这话的人往往要么是开发要么是业务方。开发说简单是在表达不用讨论这么多细节业务方说简单是在催促快点过。这句话的问题在于它把严肃的契约讨论降维成了面子和感觉。简单还是复杂不是感觉是证据。我遇到这种情况一般会这样回应既然你判断简单那我们要求两天内完成开发验收标准现在就写死可以吗多数人听到这话会犹豫。犹豫的原因很简单——一旦把简单变成明确的承诺他的判断就要接受检验。如果对方回避承诺就拉回一个更实际的问题那你对验收标准怎么看把对话从简单/复杂的争执转到验收标准是否合理的讨论上。这样做还有一个好处就是让简单这个判断有了可讨论的载体。3.2 当有人说我觉得这样体验更好体验好这三个字是评审会上的高频词也是最难达成共识的地方。原因很简单**体验是主观的工程是客观的。**用主观标准去指导工程决策结果必然是人人的意见都不一样的无休止争论。我的处理思路是翻译——把主观评价翻译成可观察的用户行为。假设有人提意见说这个流程体验不好我会反问你说的体验好具体是指新人能在三十秒内完成首次操作还是老用户能跳过不必要的确认弹窗我们能不能用这两个指标来验收一旦提意见的人被迫说出他到底在意什么问题就变成了可以量化、可以验证的工程问题。如果他说的还是我觉得不好看感觉不对那我会告诉他这属于审美偏好我们先把功能验收标准定完视觉风格单独安排设计评审。3.3 当有人说这个后续再说后续再说是评审会上最典型的拖延方式。真正值得思考的问题不是能不能说后续而是哪些事情可以真正延后哪些事情一旦延后成本会翻倍。我的判断标准很简单如果这个决定会影响数据结构、接口协议、权限模型那就绝对不能延后如果只是影响文案、样式、交互细节延后是可以接受的。举个例子一个需求里没定清楚这个列表的排序规则开发连表结构都没法设计这种问题必须当场拍板。而按钮文案是确认还是好这种则完全可以从评审记录里摘除放到后续UI稿确认里。延后的事项不能说一句后续再说就没了下文。要做的是记录成遗留问题指定负责人约定时间点然后把它挂到需求追踪里下次再确认的时候才算闭环。否则后续再说大概率会变成上线前夜的紧急改动。3.4 当全场沉默没人提意见评审会最大的敌人不是吵架是沉默。我自己经历过很惨痛的教训一场评审会各部门都表示没问题开完会很顺畅。结果项目上线后运营吐槽接口的字段对不上客服发现权限设置漏了场景。而那些在会上沉默的人在事情出了之后反而最活跃。沉默的症结通常有两个一是参会的人觉得这事跟我关系不大二是有人心里有异议但不想当面说。作为主持人你得主动把这两种沉默打破。我的习惯做法是会前就先给每个关键角色打招呼请他们每人至少准备一条疑问哪怕是小问题。会上讨论到某个环节时我会直接点名这个问题你们运营这边怎么看而不是问大家有没有意见。分组讨论也很有用把十几个人的大场子拆成两三人的小组各小组讨论完再汇总回来。沉默的人在小范围内更容易开口。3.5 写评审记录时别写成流水账评审记录的质量直接决定了评审会的价值。很多会议的纪要写的都是某某说XXX某某说XXX然后下一步计划跟进。这种记录最大的问题在于它们是不可追踪的——没有责任人没有截止时间没有状态后面根本没人去跟。我用的是结论导向的记录方式每个议题只记录四样东西结论是什么、责任人是谁、截止时间是什么、关联需求条目是什么。比如议题结论责任人截止时间关联需求ID积分清零前提醒次数2次T-7和T-1某产品同学本周五REQ-103头像上传失败是否保留原头像保留暂不引入新字段某开发同学本周五REQ-27首页加载性能指标P95小于2s数据量按100万估算某测试同学评审后3天REQ-11这份记录的作用不是存档而是能让每个人回去照着做。下周评审会开场的第一个环节就是把前一轮记录的遗留事项过一遍确保没有悬浮的结论。4. 非功能需求与隐性风险的挖掘评审表上最容易被跳过的三列评审表上有三列内容是绝大多数评审会最容易跳过的性能、安全、兼容性。它们属于看不见的需求被跳过不是因为不重要而是因为它们不好用语言表达。业务方想不到开发不愿提测试没人撑腰最后就糊过去了。我来逐个讲一下怎么在评审会上把它们挖出来。4.1 性能与容量用三问逼出量化指标第一问多久算快第二问多少人算多第三问数据涨十倍呢这三个问题问完大部分我们性能没问题这种回答就现出原形了。用一个我实际经历过的例子。某项目要做一个订单列表的分页展示功能。需求文档写得很简单分页展示订单默认每页20条。这个需求看起来非常普通但如果不加约束开发大概率用一个简单的LIMIT查询就交差了。数据量小的时候确实没问题等到订单量上了千万每次翻页都会触发慢查询接口超时就成了常态。如果评审时有人多问一句你们预期数据规模是多少接口响应在什么范围内算达标技术选型就会完全不同要不要加缓存要不要做读写分离索引怎么建这直接决定了整个项目的技术架构。所以分页功能背后的性能指标不是可有可无的细节而是能左右技术路线的大决策。我的建议是**任何涉及查询、展示、下载、上传、导出的功能评审判定之前都强行要求给出三个数——目标用户量、峰值并发、可接受的响应时间。**不做定量要求至少也要写当前阶段按XX数据量估算接口响应不超过XX秒让测试有据可依。4.2 安全与权限问清楚谁能看、谁能改、谁审计大多数内部系统评审时权限问题都默认有就行但有权限设计和权限设计正确是两回事。我一般用三个问题快速过一遍谁能看即每个角色看得到哪些数据、哪些字段需要脱敏。比如客服能不能看到用户的手机号运营能不能导出全部客户表格每个角色背后都是一套完整的数据可见范围必须列成矩阵。谁能改即数据的增加、修改、删除权限边界。这个问题比看更容易被跳过因为改错数据的影响往往比看错数据更大。谁审计即关键操作有没有日志记录出了问题能不能追溯。我见过某些系统上线半年后才发现有人导出过全量客户数据但系统里一点操作痕迹都没有都不知道该找谁追责。评审话术的参考方式是直接抛出具体场景而不是问权限怎么做。比如这个页面运营和客服看到的数据范围一样吗用户提交之后他本人还能改吗导出的Excel里手机号要脱敏吗这类具体问题能逼出细节抽象问题只会得到抽象回答。4.3 兼容与演进旧数据怎么办、其他端要做吗、半年后会怎么变第三个容易跳过的区域是兼容性问题。问三句话就能快速排查旧数据怎么办老用户的历史数据怎么迁移、怎么显示、要不要兼容。比如你们把用户的等级体系重构了那老用户已有的等级和积分怎么折算这就是一个典型的兼容性问题。不问到这一步上线那天就是故障日。其他端要不要做Web端做了App端和移动端页面要不要一起做很多时候因为排期原因只上了其中一个端但接口设计从一开始就要考虑多端复用。如果等App端要做的时候再改接口后端的返工量就不小。半年后这个功能会怎么变这是个反常规的问题但它很能检验设计方案的长期性。如果一个功能定位为临时方案接口写死无所谓但如果定位为长期能力接口设计必须预留扩展点数据模型也要避免过早优化。我把这三类问题整理成了一张问题表评审时直接按表格过主题核心问题评审话术模板性能与容量快、多、涨十倍预期数据量和并发是多少接口响应标准是多少毫秒安全与权限谁能看、谁能改、谁审计不同角色看到的数据范围分别是什么敏感字段脱不脱敏兼容与演进旧数据、其他端、未来变化老数据怎么迁移其他端要不要同步这个功能后续会怎么扩展4.4 让非功能指标写进验收标准光在会上讨论出我们要关注性能还不够关键是这些关注点要落到验收标准里。我每次评审结束后的习惯是把讨论结果整理成可以执行的量化指标附到对应的需求条目后。比如首页在4G网络环境下加载完成时间不超过2秒模拟1万并发时接口错误率低于0.1%所有敏感字段在日志和导出文件中必须脱敏。这样写出来测试同学在评审后的用例设计阶段就有客观依据开发同学也知道自己要做到什么水平。只要指标无法量化评审通过的需求就还是悬着的。5. 评审通过不代表结束需求追踪与变更影响的闭环评审会开完了文档归档了然后呢如果到此为止这个评审会就白开了。**评审通过只是建立了共识基线真正的挑战在于之后的变更如何管理。**很多项目崩盘不是因为初始需求错得离谱而是需求在开发过程中悄悄变了但追踪机制没有跟上。5.1 需求追踪矩阵一条需求走完全程的账本需求追踪矩阵RTM并不复杂但能坚持用下来的团队不多。它的核心是建立一条链路**每条需求条目对应到设计、开发、测试用例并记录当前状态。**有了这张表任何一条需求都能回答三个问题它被实现了没有测试覆盖了没有变更影响了哪些下游环节我见过最反面的例子是某需求在评审通过后业务方提出一个小改动开发觉得很简单顺手就改了。因为需求的原始描述没更新测试用例自然也没覆盖到新逻辑。上线后开发改动过的地方出现历史数据异常而测试回溯时根本找不到依据最后花了两天排查才定位到问题出在那个小改动上。所以不管团队规模大小我都建议做一张简化版的需求追踪表按需求ID逐条记录需求ID需求描述涉及模块开发状态测试用例ID测试状态备注REQ-103积分到期提醒T-7/T-1消息中心、积分完成TC-501, TC-502通过无REQ-27头像上传失败保留原头像用户中心开发中TC-120待执行遗留评审待确认这张表本身不产生价值但它让变更评估有了一个入口。当有人提出新需求时从这张表上能直接看到影响的是哪几行测试该回归哪些用例开发需要改动哪些模块。变更不可怕可怕的是不知道变更在牵动谁。5.2 变更影响分析先看动一发会伤到谁变更来源通常有四类政策法规类变化、业务方又有了新想法、技术实现受限、数据质量问题暴露。不管哪种来源评估的标准动作都是一样的——做一次影响面分析再看值不值得做。我在实际操作中会按五个维度检查影响面功能逻辑改的这一个点会不会牵动上下游页面或模块的逻辑在需求追踪矩阵里顺着依赖线往上往下查。数据模型需要新增字段、修改表结构、迁移旧数据吗这几样动作的改动量级是完全不一样的分别影响上线方案和回滚方案。接口协议涉及的接口是新增还是改协议如果改协议调用方有几个接口版本怎么处理一个接口的字段改名往往导致好几个下游模块一起改。测试用例已有的测试用例里有几条覆盖了被修改的逻辑有没有新增用例需要补充这直接决定回归范围。用户文档有操作手册、帮助文档受影响的吗如果是面向客户的系统文档说明没更新用户就会不知所措。做完影响分析后还需要评估一次成本。这里的成本不单指开发工时而是全链路成本开发、测试、联调、上线、文档、客服培训。我常把这个评估结果做成一张简单的变更影响表让拍板的人看得清楚变更描述影响模块开发量测试量风险评估建议积分清零前增加T-3提醒消息中心、定时任务0.5人天0.5人天中触达范围扩大建议延后至下版本拍板的人拿着这张表做决策至少不用靠感觉。做不了的变更也要记录原因和触发条件而不是直接丢掉。5.3 评审后的72小时需求理解的对齐黄金窗口很多人低估了评审会后的72小时。为什么是72小时因为人对信息的遗忘速度很快刚开完会的那几天大家对需求的理解还处于热记忆状态此时做对齐成本最低。拖得越久理解的漂移就越严重。我自己的固定动作是评审后三天内拉一个快速对齐会让开发和测试逐条过一遍需求正文和评审记录把理解偏差当场消灭掉。这一轮不需要讨论方案只确认一件事**开发说出来的需求理解和需求文档想表达的意思是不是同一个。**很多后期返工就是在这个窗口期错过了对齐机会。另外一个动作是在前三天里集中收集新冒出来的疑问。很多人会后回到家才会想到当时那个场景好像还有一个情况没问到这个疑问如果不及时统一澄清就会被闷在开发过程中。我一般会在会议室里留一个澄清区让所有问题先集中堆在那里等一个固定的澄清时间段统一处理而不是随问随答。最后顺手把变更记录表跑起来哪怕这条需求还没开始开发只要有人提出改一下的意向就先登记再评估后动手。这套流程的习惯一旦建立后续项目会省掉很多顺手改坏了的事故。5.4 我的最终体会评审是一个机制不是一个节点需求分析和需求评审这套工作我做了不少年头最大的体会是评审会并不是一个节点开完就完了。它更像一个持续运转的机制要维持这个机制靠的是会前把人和事读透、会中把每个问题钉在验收标准上、会后用追踪和变更工具守住共识。需求评审这个领域有很多工具和方法但工具只是表底层是共识管理让每个人在动手之前对要做什么、标准是什么、变了怎么办有一致的答案。评审会只是让这个共识暂时显形它能不能维持到上线取决于你之后72小时、之后每一周的持续动作。如果你现在手头正好有一个项目在需求评审阶段我建议你从今天这五个章节里先挑一两件事落地要么把评审前夜的自检清单跑起来要么把需求追踪矩阵先建起来。用几次之后你可能就不太想退回原来的过会式评审了。
阅读完成 · 觉得有帮助?
咨询建站