上个月帮一家做出口贸易的客户梳理ERP选型需求,连续开了三天会,业务部门提的需求清单越拉越长,到最后已经写满了三张A3纸的便利贴。我问了现场一句话:各位现在提的需求,假设全部做完,大概需要几期?没有人能答上来。其中一个仓储主管还反过来问我:你先想办法把系统搞出来,能不能用上再说。那一刻我就知道,这个项目的需求分析如果不换打法,后面一定会在上线的道路上反复返工。
后来我把这套“不管项目多大,需求分析只做四件事”的框架,总结成了一个比较好记的缩写:VRPD。V是Value,价值;R是Requirement,需求;P是Priority,优先级;D是Delivery,验收交付。听起来很普通,但我带过的项目里,凡是需求阶段出问题的,回头去看,几乎都是这四件事里的某一环没做实。把这四件事按顺序捋清楚了,新系统上线前的混乱程度至少能降一半。
这篇文章就把这套方法完整展开,讲讲每个环节到底怎么做、用什么工具、踩过什么坑。适合正在被公司推着做新系统选型或内部研发的BA、项目经理、产品经理,也适合那些临时被拉去做需求调研的技术人员。
1. 先别急着收集需求,把四件事按顺序捋顺了再说
1.1 需求翻车,通常不是输在“没收集”,而是输在“没框架”
很多人一听说要做需求分析,第一反应就是约业务部门开会,让大家把想法一条条说出来,然后拼命记笔记。这个方法看起来热闹,但实际效果很差。业务人员不是产品经理,他们表达出来的往往不是真实需求,而是带着情绪、带着个人工作经验、甚至带着临时灵感的碎片化想法。你今天问他,他这样说;三天后你再问,他可能又改口了。
我见过更极端的项目,光需求文档就写了三百多页,把每个界面按钮、每个字段都列得清清楚楚,结果开发做到一半业务说流程变了。为什么?因为大家都没有在同一个框架里对话,收集需求变成了“记录愿望清单”,没有人真正回答过几个关键问题:这个系统为什么值得上?上线后用什么指标证明它是成功的?哪些需求其实可以放到二期?
所以我的建议是:动手收集需求之前,先建立一套共同的语言和检查清单。这正是VRPD四要素存在的意义。它给需求分析划分出一个清晰的动作边界,每一件事都有明确的输出物,做完一件再进入下一件,顺序不能乱。价值没确认清楚就急着列功能清单,等于地基没打就砌墙。
1.2 VRPD:需求分析可以压缩成四个动作
V,Value,价值确认。这一件事回答的问题是:为什么做?值不值得做?做成之后拿什么衡量收益?很多新系统项目死在“为做而做”上,管理层觉得老系统落后了应该换,下面的人觉得换了系统会增加工作量,大家屁股决定脑袋,方向完全不一致。
R,Requirement,需求澄清。这一件事回答的问题是:系统到底要做什么?把“我想要一个更方便的系统”这种模糊表达,翻译成“系统需要支持在10秒内完成客户资料的搜索”这样可执行、可测试的描述。这是整个流程中工作量最大、也最考验分析能力的一环。
P,Priority,优先级排序。这件事回答的问题是:先做什么、后做什么、哪些这期不做、哪些永远不做。很多项目失败不是因为该做的没做,而是因为错误地把资源砸在了不该先做的事情上。
D,Delivery,验收交付。这件事回答的问题是:做到什么程度算“做完”?凭什么说这个需求实现了?需求阶段不把验收标准和交付物约定清楚,到了测试阶段就会出现“开发说做完了,业务说根本不是我要的”这种经典纠纷。
四个字母串起来,其实就是一个完整的逻辑闭环:想清楚为什么做,定义清楚做什么,排清楚先做什么,约定清楚怎么做完算数。我建议不管项目大小,哪怕只是上一个内部审批的小工具,这四个动作都不要省,只是投入的深度可以不同。
1.3 这套方法适合谁,不适合谁
VRPD这套思路最合适的场景是:公司内部要上的业务系统、中小型IT项目、或者从零开始的SaaS选型评估,团队规模不大,没有专职的需求分析工程师,也没有一整套成熟的产品研发流程。这样的团队最缺的不是方法论的种类,而是一个不复杂、能落地、就算临时换人接手也能继续推进的框架。
它也适合被临时拉去顶岗的技术人员。我就带过不少开发转岗做需求分析的同事,他们一开始最迷惑的就是“需求到底分析到什么程度算到位”。有了VRPD之后,至少知道每个阶段要产出什么:价值确认出评估表,需求澄清出用户故事和验收条件,优先级排序出MVP清单,验收交付出测试场景和UAT计划。目标一明确,执行就不会跑偏。
但也要说清楚,如果你所在的企业已经有了成熟的产品经理体系和完备的业务架构方法论,那VRPD更多是一个对齐共识的沟通工具,而不是替代品。它不做端口级的数据字典,不画复杂的ER图,不做严格的领域建模。它解决的是“项目前期最常见的混乱”,而不是“所有软件工程问题”。认识到这个边界,反而会让你用得更顺手。
2. V=Value,价值确认:需求分析启动前先回答“为什么”
2.1 价值确认被跳过,后面全是风险
大多数项目在做需求分析时,跳过的第一个环节就是价值确认。大家默认“系统总是要上的,预算也批了,赶紧干活吧”,于是直接从需求清单开始。这个省略带来的后果通常不是立刻爆发,而是积累到项目中期才全面显现:业务部门参与度低,反正不是他们要上的系统;上线后没人愿意用,大家还是退回Excel;管理层问效果,项目组拿不出一组漂亮的数据来回答。
我见过一个典型案例。某公司要上线考勤和排班系统,信息部门直接把市面上主流的考勤机都列了一遍,然后挨个收集部门意见。结果销售部门说他们不需要坐班要求弹性打卡,生产部门说排班要支持各种班次自动拼接,人事部门说所有数据必须和薪资对接。需求越堆越多,系统预算翻了将近一倍,最后上线日期拖了一年。回头复盘才发现,公司上个新系统的核心目标其实是解决“考勤数据不透明导致薪资核算每个月都要人工核对三天”的问题。全部围绕这个目标来做,很多需求根本不需要在第一期实现。
价值确认就是逼着所有人回到这个起点:我们到底为什么折腾这一次?这个系统上完,业务指标上能有什么变化?如果回答不上来,那项目本身就有问题。
2.2 一张表格完成价值盘点
做价值确认不需要写长篇的商业计划书,我常用一张A4的表格就能完成。关键是召集真正参与决策的业务负责人和项目实施方,坐到一起,把这几个维度逐一过一遍。
下面是一张我常用的价值盘点表,直接拿客户管理系统的场景举例。
| 评估维度 | 要问的问题 | 示例回答 |
|---|---|---|
| 业务现状 | 现在是怎么做的?痛点集中在哪? | 客户信息散落在Excel和销售各自手机里,跨区协作只能打电话问,离职交接经常漏人 |
| 期望收益 | 上线后能带来什么可量化的改善? | 客户跟进记录完整率从60%提升到95%,销售查客户资料从平均10分钟缩短到1分钟 |
| 成本预算 | 愿意投入多少钱、多少人力、多久时间? | 预算40万,信息部2个开发加1个外包团队,周期6个月 |
| 时间窗口 | 最晚什么时间上线不会影响业务? | 明年4月销售季之前必须上线,否则要等下一季 |
| 成功指标 | 什么指标达到,就可以宣告项目成功? | 上线3个月后,销售部门日活使用率≥80%,客户重复跟进率下降30% |
这张表填完,项目到底做不做得成、值不值得做,基本能看出个大概。如果连“期望收益”都写不出具体数字,我所做的第一件事不是继续往下细化需求,而是和用户一起把收益找出来。找不到,就别急着上系统,因为大概率上线了也是一堆石头互相摩擦,谁也没获益。
2.3 价值确认的三个实操动作
第一个动作是把价值盘点表做成工作坊,而不是邮件传阅。拉上拍板的高管、实际使用的业务骨干、以及有决定权的IT负责人,在一个会议室里花半天时间把表格一格格过掉。注意不要让与会人员把表格带回去“有空再填”,那基本等于白填。
第二个动作是把成功指标拆到可跟踪。不要写“提高效率、降低成本”这种话,要写“订单录入时间从15分钟降到5分钟以内”“每月手工导出数据次数从20次降到3次”。有了这些数字,后续做优先级排序时就多了一把尺子:凡是和这些数字强相关的需求,优先做;弱相关的需求,往后排。
第三个动作是写一段不超过两百字的“项目定位声明”,挂在项目文档最显眼的位置。格式可以是:为了达成什么业务目标,我们要为哪些角色提供一个什么样的系统,这个系统要覆盖哪些核心业务范围,不在范围内做的事情明确写出“本期不做”。我见过太多项目做着做着就迷失方向,有了定位声明,每次评审会对需求有争议时,把它念一遍就能解决大部分争论。
2.4 避坑:当业务方说“领导要求做的”,怎么往下问
价值确认阶段最容易遇到一句话:“这个系统是领导拍板要上的,我们也不知道为什么。”遇到这种情况,直接跳过价值分析去做需求是危险的,因为你想不清楚目标,后续所有需求决策都失去了依据。
我的做法是换个角度问:那领导最关心这个系统解决什么问题?如果业务方答不上来,就去找发起项目的领导聊一次,只问三个问题:您希望上线一年后,业务上哪里和现在不一样?这个不一样靠什么数据来体现?如果系统上线后没达到预期,您觉得最可能的原因是什么?这三个问题问完,价值方向基本就清楚了。实在找不到人也没关系,把系统立项时的会议纪要、年度经营目标里和效率、成本、收入相关的指标拿来对齐,也能凑出一份靠谱的价值假设,总比不做强。
3. R=Requirement,需求澄清:把“我想要”翻译成“系统要做什么”
3.1 先打好基础:什么是需求分析里的“需求”
价值确认做完,项目方向统一了,接下来才进入大多数人认为的需求分析环节。需求这两个字看着简单,但在实际沟通中经常被扭曲。业务方说“我想要一个看板界面”,这是需求吗?不是,这是一个解决方案。真正的需求是“我想看到全国各区域当天的销售情况,并能快速发现异常区域”。至于这个用看板、报表还是每日邮件推送来实现,是后面的事。
所以进入R环节的第一件事,是跟所有参会人员对齐一个认知:我们收集的是业务述求,不是具体功能按钮。业务述求回答“业务上要达成什么”,功能按钮回答“系统界面怎么做”。这两个从混在一起,需求分析就会变成一场技术方案辩论赛,谁也说服不了谁。我一般在项目启动会上讲一遍这个区分,后续开会再遇到有人说“我要一个按钮”,我会追问一句:“这个按钮是要帮你完成什么业务动作?”
3.2 需求采集不是只有开会一条路
很多人做需求采集只会一种方法:把业务人员叫过来开会,问他们平时怎么做事的。这个方法不是不能用,但只靠它一定会漏信息。因为业务人员在自己做了多年的工作里会形成大量“理所当然”的默契,你问他,他觉得你都应该知道,根本不会特意讲出来。要想把需求挖全,至少要结合下面几种方式。
一对一访谈适合挖掘深层痛点。不着急记需求,先听业务讲一天的工作流程,遇到哪个环节最烦、最花时间,为什么烦。访谈有个特别好的副产品——你能识别出谁是真正的一线用户,谁是凭着想象发表意见的旁观者。跟岗观察是我个人最推荐的方式。选一个正常工作日,搬把椅子坐业务旁边,看他们怎么操作旧系统、怎么记小本本、怎么相互确认信息。你观察到的往往比对方嘴上说的真实得多。问卷适合解决“不同区域、不同意见众说纷纭”的场景,可以快速收集优先级信息,但要注意问卷题目的设计必须落到具体业务场景,不能问“你希望新系统有哪些功能”这种开放题。需求工作坊则是把跨部门的业务人员拉到一起,在主持人引导下,围绕核心业务场景一条条过流程,现场画流程图和用例图,效率很高。
3.3 用用户故事和验收条件把需求说清楚
需求采集回来后,整理格式非常有讲究。我不建议一上来就写那种几百条的“功能性需求列表”,因为那不便于讨论,也不便于评审。我更推荐用用户故事的格式来写:作为(什么角色),我希望(做什么事情),以便(达成什么业务目标)。
举个电商购物系统的例子。好的用户故事长这样:“作为前台购物用户,我希望在搜索商品时能按价格区间筛选,以便在预算范围内快速找到合适的商品。”不推荐的写法是这样:系统需要提供一个价格筛选功能,支持按价格区间过滤搜索结果。原因在于,前者写清楚了用户角色和业务目标,开发拿到之后能理解“为什么做”,遇到界面设计上的分歧时,可以回到业务目标去判断。后者只是一个冷冰冰的功能描述,业务价值丢了,评审时各人理解会出现很大偏差。
每条用户故事还要配套写验收条件。这个我会在第5章展开讲,但在需求澄清阶段就要同步写,因为很多需求如果在写验收条件时发现有歧义,说明还没想清楚,需要回去细化。
3.4 功能需求和非功能需求一个都不能漏
功能性需求是最容易想到的,比如“系统可以下单”“系统可以打印标签”“系统可以生成报表”,这些是大家开会时最热烈讨论的部分。容易被忽略的是非功能需求,也就是系统运行时要满足的质量要求,比如性能、安全性、可用性、兼容性、备份恢复。这类需求一旦漏了,等到上线测试才发现,返工代价比功能Bug大得多。
我至少见过三个项目,因为事前没提性能要求,上线第一天几百人同时点按钮,数据库被打满,接口响应从2秒变成30秒。业务方很生气地找过来,开发团队很无辜地说“你也没说要支持500人同时在线啊”。这种扯皮完全可以在需求阶段用一张非功能需求检查表避免掉,比如:系统预期峰值在线用户数是多少?关键操作的最大响应时间不能超过多少秒?数据要保留几年,备份频率如何?哪个部门负责权限管理?
3.5 大坑预警:把解决方案当成需求
需求澄清阶段最需要注意的一个坑,是业务方出于对新技术的想象,或者对旧系统的心理阴影,提出各种预设的解决方案。比如“我觉得新系统一定要上微服务架构,否则以后没法扩展”“登录方式必须支持人脸识别,否则太落后了”。这类想法不是不能采纳,但要在需求阶段把它们跟业务需求解耦。
我的处理方式是把这些技术偏好记录在独立的“设计方案建议”栏里,不混入需求清单。然后问一句:如果不用这个技术方案,有没有其他方式达到同样的业务目标?有的话,就把技术方案的选择权交给后续的架构评审,需求清单上只保留目标和验收条件。坚持这么做,你已经避开了大量技术绑架需求的坑。技术选型是必要的,但应该建立在业务需求之上的分析,而不是让业务人员替技术团队做主。
4. P=Priority,优先级排序:划清MVP边界,别让需求清单失控
4.1 为什么必须做优先级排序
需求澄清做得越扎实,收集到的需求清单就越长,这是个必然结果,因为业务场景复杂,每个人的诉求都要被尊重。但一个现实是:团队平均能完成的需求量,往往只有需求清单总量的40%到60%。很多人潜意识里接受这个比例,但在做计划时又习惯性地把整张需求清单塞进项目排期里。这就会导致一个结果:表面上每项需求都排了期,实际开发时资源严重不足,项目时间线只能无限拉长,或者功能做到一半被砍掉,质量没法保障。
优先级排序就是为了解决这个核心矛盾:明确把有限的资源集中在当下价值最高的需求上,同时把“不做、晚点做”摆到台面上,而不是让它在后期突然冒出来干扰节奏。一位老销售跟我说过一句话,放在这里很贴切:你不能指望一个背包上山的人,顺便背着整个超市。
4.2 三种排序武器:MoSCoW、KANO、价值-成本矩阵
在实际项目里,我常用三种方法搭配使用,而不是只用一种:
第一个是MoSCoW法则。把需求分成四类:Must have必须有,这类不满足系统无法上线或核心业务无法运转;Should have应该有,这类很重要但不至于阻碍上线,可以有替代方案先撑着;Could have可以有,属于锦上添花,有精力就做,没精力就放弃;Won't have这次不做,明确放掉或放到下一期。这个方法简单粗暴,适合在评审会上快速和大范围地达成共识。
第二个是KANO模型。从用户满意度角度把需求分为基本型、期望型、兴奋型、无差异型和反向型。基本型需求不做,用户会非常不满,比如电商系统的下单流程;期望型需求做得越好用户越满意,比如搜索筛选的丰富度;兴奋型需求平时用户不会主动提,一旦有了会惊喜,比如一键唤醒客服;无差异型做了用户也没感觉;反向型做了反而惹人烦,比如频繁弹窗引导。这个模型能帮你识别“用户嘴上说要,其实做了也不会加分”的需求。
第三个是价值-成本矩阵。用横坐标代表业务价值高低,纵坐标代表实现成本高低,把需求分进四个象限。高价值低成本的无脑先做,高价值高成本的认真规划作为核心,低价值低成本的有空就做,低价值高成本的直接砍掉或冷冻。这个工具的计算逻辑最直白,也最适合拉技术团队和业务团队坐到一起对话,因为业务谈价值、技术谈成本,交叉下来反而容易收敛出一个大家都服气的排期。
| 排序方法 | 核心维度 | 适用场景 | 输出物 |
|---|---|---|---|
| MoSCoW | 是否必须有 | 快速划定版本边界,粗粒度共识 | Must/Should/Could/Won't清单 |
| KANO | 用户满意度影响 | 优化体验类需求,判断做不做不会加分 | 需求分类表 |
| 价值-成本矩阵 | 业务价值与实现成本 | 技术团队与业务团队联合决策 | 四象限需求地图 |
4.3 优先级评审会怎么开最关键
优先级排序一定不能是某个人关在办公室里自己默默排好的,而是要放在一个正式的评审会上让核心干系人吵一遍。这个会必须请三类人:业务方中能拍板的人、开发团队中能评估成本的技术负责人、以及掌握项目目标的项目经理或BA。
开会之前,我会先把需求清单按用户故事格式打印出来,每一页写一个大需求和对应的验收条件。会上花二十分钟一起过一遍业务全景,然后进入排序环节。排序环节我不用投票,而是用“目标回溯法”:每讨论一个需求,先问一个问题——做好这个需求,离我们在V环节定下的成功指标是更近还是更远?如果答案是更远,就算它再酷,也只能往后安排。
会议最后必须输出一份MVP版本的需求范围表,明确标出本期上线必须包含的功能清单,以及这批功能的验收条件。同时还要输出一个“暂缓清单”,记录被推迟到二期或之后的需求。这份暂缓清单非常关键,有了它,你以后被人质疑“为什么这个功能没有”时,有白纸黑字可以拿来说明。
4.4 实操心得:排序不是民主投票,而是业务价值的取舍
做过几次优先级评审会你就会发现,真正难的不是排前十个,而是说服别人放弃。业务方往往天然认为自己的需求最重要,谁也不愿意被排到二期。这时如果主持人陷入“每人投票”的民主陷阱,排序会变成人缘竞赛,最后出来的这个清单一定是不科学的。
我的方法是在排序前先统一口径:需求清单不是“谁的需求优先”,而是“业务目标的贡献度优先”。有了这个共识,排序过程中就算有人不服气,你也可以把他的需求放到目标框架里去检验。在产品室里立一块白板,左边写成功指标,右边写需求卡片,每张卡片都拉一条线连到成功指标上。连不上的,就问一句:这个需求和指标什么关系?如果对方答不上来,那它在当前版本里的优先级就不该高。这个动作执行几次之后,团队里会形成一种感觉,提需求不再是一件轻松的事,每条需求背后都需要站得住脚的业务逻辑。
5. D=Delivery,验收交付:把“做完”变成白纸黑字的契约
5.1 没有验收标准的需求,做完等于没做完
很多项目走到验收环节,业务方说“这个好像不是我想要的那样”,开发方说“我全是按你写的做的啊”——矛盾的根源几乎都是需求阶段没有把验收标准定义清楚。你以为的只是文字描述了大概方向,对方理解成了自己脑子里想象的完美功能,双方天然错位,越往后期越难调和。
所以我在R环节就强调,每条用户故事在进入开发之前,必须配备可验证的验收条件,英文叫Acceptance Criteria,简写AC。AC就是一条需求完成与否的判定契约。没有AC的需求,我不允许排入研发排期,因为团队拿到它之后一定会产生歧义。
5.2 AC验收条件的写法:Given-When-Then
写AC我推荐一种来自行为驱动开发的场景化写法,稍微简化一下就能在普通需求评审里用:
给定某个初始状态,当某个操作发生时,那么系统应该产生某个可观察的结果。
举一个电商系统购物车场景的例子:给定购物车中有两件商品、总金额为210元,当用户使用一张满200减30的优惠券时,那么订单总额应变为180元,且结算页面应显示优惠明细。
这样写出来的AC至少有三个优势:开发知道用户的真实操作场景,测试可以直接把Given-When-Then翻译成测试步骤,业务方在评审时更容易发现理解偏差。比起在需求文档里写一句“系统需要支持优惠券功能”,这个AC的确定性高了不止一个数量级。我自己实践下来,平均一条中等复杂度的用户故事,写3到8条AC就够了,不需要堆砌太多场景。
5.3 从需求到测试用例:让测试报告反向驱动需求
需求阶段把AC写清楚,到研发后期的测试阶段就能顺水推舟。很多测试团队最头疼的就是测到一半发现需求描述模糊,设计方案也说不清到底哪个是正确的,只能找产品经理一个个口述确认。AC转测试用例,正好填了这个坑。
具体转法很简单:每条AC就是一条主测试场景,测试工程师把Given里的初始状态准备为数据步骤,把When里的操作拆成界面点击或接口调用步骤,最后把Then写成断言和预期结果。如果需要回归测试,可以再加边界值、异常输入等用例。到了测试报告阶段,反过来追踪“哪些AC已经通过、哪些未通过”,一眼就能对应到实际需求覆盖情况,从需求到测试报告的链条是完全闭合的。
这个闭环还有一个额外收益:上线验收时,业务方可以不用看研发代码,打开测试报告里对应AC的执行记录,就能判断需求是否达预期。扣住需求的契约感,会让团队整体的交付质量观更强。
5.4 UAT用户验收怎么组织才不走过场
进入上线前的UAT阶段,很多项目是直接把系统开放给用户“随便点一点,没问题就签字”。这种无导向的UAT得到的结果通常是什么都测不出来。我的做法是把UAT设计成一连串业务场景,而不是自由浏览。
具体来说,从需求清单中抽取最高优先级的端到端业务流程,编排成3到5个业务剧本,每个剧本就是一个真实的日常工作案例。比如供应链系统做UAT,就让仓库管理员拿着剧本“今天有一批货下午到,我需要提前把库位安排出来”,按流程操作一遍,并观察每一步是否有阻碍。UAT结束后,让每位参与者填写一张UAT清单,逐项确认对应的AC是否达成、哪里操作不流畅、流程步骤是否符合日常习惯。
这样组织的原因很简单:业务方参加UAT的时间非常有限,只有用真实工作场景测试,他们才能发现系统是否真正匹配日常习惯。如果只是让他们看一张功能列表,很可能出现“每个功能都对,但组合起来完全没法用”的尴尬。
5.5 文档沉淀:需求文档、测试报告、操作手册一脉相承
验收阶段结束,项目组往往会顺手把需求文档一关,投入下一个项目。这个习惯,我强烈建议改掉,因为操作手册、培训PPT再次启动的时候,你会体会到一笔笔“技术债”多让人痛苦。
实际上操作手册的最快路径不是重新写,而是把AC和测试报告里的场景提炼成标准操作流程。我把这个动作叫“从验收场景到操作手册的三步转化”:从AC和测试案例中找出最高频的十个操作路径,按用户角色整理成步骤式说明,然后配上系统截图。整个转化做下来,两个工作日基本能完成,还不用担心手册内容与系统实际情况脱节。
文档这块,我还有一个执念:需求文档里每一条AC,都要和测试报告里对应的用例编号互链。这样等系统上线一年后新增功能,或者换人维护时,任何人看到“当时为什么要这样做”都能快速翻回原始的业务账。信息化落地的资产,不只是代码,是这套完整的需求到交付的证据链。
6. 踩坑记录:VRPD实践中最常见的五个问题和应对方法
6.1 需求蔓延止不住怎么办
需求蔓延几乎是所有上新系统项目都会遇到的。刚开始做需求阶段很收敛,到了开发阶段业务方突然冒出来:“我们突然发现,报表里最好加一个同比环比,不复杂吧?”一次不复杂,十次就会让项目崩盘。
要止住蔓延,第一道闸门就在需求优先级的暂缓清单上。开发阶段收到任何新增需求,我不直接对业务说“不做”,而是问三个问题:这个需求在当初的暂缓清单里吗?它和项目成功指标的关联强度是多少?如果这期必须加,你愿意砍掉哪个排期里的需求来换?大部分情况下,业务方思考完这三个问题后会发现,新增需求其实可以放到正式二期。如果他说不出砍掉哪个需求,那我只好提醒他,不加变化不等于是停步,等于把项目拖延的风险转嫁给了所有人。
6.2 关键干系人不表态,评审会开成了确认会
有些业务负责人习惯性在需求评审会上不说话,散会后又在邮件里提意见,或者更糟——在项目快交付时才表示“这跟我们方向不符合”。出现这种情况,通常不是因为对方没想法,而是因为会议氛围或流程没有给他表达的空间。
我的排查办法是把需求评审拆成两步。第一步是小范围预审,只请最核心的两个业务决策者和相关功能的一线骨干,带上具体到字段级的需求稿子进行充分讨论;第二步才是大范围会签,让相关协同方确认没有遗漏。两步分开后,关键干系人的沉默压力会减轻很多,因为争议已经在第一步就被消化了,第二步只是走确认流程,他不需要在公开场合冒险质疑一堆人。当然也有个别负责人习惯性表态暧昧,那就把他放到“必须确认否则需求不上线”的位置上,让他意识到不表态也是一种表态,是拿项目的风险在表态。
6.3 模糊需求“到时候再说”,等到后面就是巨坑
“这个到时候再说吧”大概是我做需求分析时最讨厌的一句话。模糊需求一旦进入开发阶段,就会像一个没有标注半径的圆,开发自由发挥,测试无从下手,业务说不对,开发说你不是说灵活处理吗,过程极其撕裂。
遇到这种模糊需求,如果它属于优先级高的Must需求,我会组织一场专门的澄清会,把可能场景列出来,逐一让业务方确认。比如他要求“系统要能智能预警库存”,我会追问:预警触发条件是什么阈值?按天跑还是实时跑?预警消息发给谁?用什么渠道发?如果确实有部分需要在系统中做成可配置的,那也要明确哪些参数可配,哪些逻辑先写死。总之,一定要把“到时候再说”变成“现在有了一份备选方案清单”。这件事没有捷径,只能靠不断追问来磨。
6.4 需求文档写了没人看,评审会变成念稿会
不少团队需求文档写了一大堆,评审会开成“念文档大会”,念完大家大眼瞪小眼,该通过的通过,该忽略的忽略,有价值的讨论几乎没有。问题出在文档形式而不是内容上,说明写出来的东西不方便对方快速理解。
我后来把评审时的材料改成两个各司其职的版本:评审会演示版只放高保真原型图、端到端流程图和场景卡片,用业务语言讲流程,与会者能迅速理解;会后归档版才是繁复的需求规格说明,用于开发查询和测试追踪。这个改动效果非常明显,业务方对演示版投入的关注度远高于对几十页文档的阅读,关键争议也能在评审会当场暴露。既然大家都不爱看长文档,那会议的目标就是达成共识、把问题谈透,文档只是共识的证据而已。
6.5 “研发说做不了,业务说必须做”怎么调停
这种冲突每到排期和开发阶段就会出现,而且往往谁都很委屈。研发眼里的技术限制可能是真实存在的,业务眼里的业务刚需也可能是真实的,硬碰硬只会让项目僵在那里。
我的处理方式是先砍掉情绪,把争议转成三层问题:真实的技术边界是什么(会直接影响业务结果的硬性限制,还是没有明确证据的预判)?业务目标的本质是什么(是否有其他功能可以达到同样目的)?如果保留技术边界,业务的最小可接受版本是什么样的?举个实际例子,曾有客户要求“所有报表导出都要实时跑全量数据”,研发说全量实时跑会导致数据库严重压力。调停后发现业务真实性需求是“每周一上午领导要看完整版数据”,平时只要看增量数据就行。最后方案就是全量报表在夜间预生成,白天走增量接口,双方都满意。这种方案之所以能谈出来,靠的就是在VRPD的框架下聊需求本质,而不是在技术细节里互相抬杠。
我在实际做项目时最大的体会是:VRPD不是一个高深理论,它就是个最容易对齐动作的清单。每次项目例会,我会把四个字母写在白板角落,谁跑题了,我点一下字母提醒。几句题外话一提,会议方向就回到正轨。方法本身不值钱,值钱的是坚持在过去混乱的需求流程里划出一条清晰的线,然后让所有相关方都站在这条线上对话。