FDE岗位实务指南 · 第23篇
试用跑到第三周,澄川制造的资料核验刚立住脚,业务主管在例会后把 FDE 拉住:"系统现在核对资料这么快,顺手再加一个功能——核验通过之后,直接帮采购把单下了吧,反正信息都在。"
"顺手"两个字,是这段话里最贵的两个字。它假设新要求和已完成的工程是同一件事的延长线,成本可以忽略,风险顺理成章。上一篇文章里那场三方会议刚刚定下"限定身份、限定类型试用",墨迹未干,这句"顺手"就是下一次范围变化的敲门声。
FDE 对这类要求的第一反应,既不是"这个好办",也不是"这个要加钱"。第一反应是核对两件事:原来的工作约定写的是什么,新要求和约定里的"变更"边界是什么关系。这一篇讲的就是这条判断路径:先分类,再查影响,再给选项,最后由有权的人确认并留痕。
一、"顺手加一下"为什么难以判断
难以判断,不是因为这个要求复杂,而是因为它把三件不同的事压进了一句话。
第一种可能是修缺陷。核验结果有时候显示不出来,这是个显示问题,属于"把已承诺的事情做对",通常不构成范围变化。
第二种可能是改规则。业务侧发现某种资料类型的判断口径要调整,规则变了,已约定的工作内容跟着变。
第三种才是新增业务:核验通过之后自动下单,这是一个此前不存在的行为,它有自己的对象、权限、审批和失败后果。
三件事在业务主管嘴里都是"加一下",因为从他的座位看,系统界面几乎没变——原来是核验完弹一个结果,现在是核验完多一个按钮。界面相近,是"顺手"最有迷惑性的地方:屏幕上多一个按钮,背后多的是一整套采购承诺动作。第 17 篇讲过,判断一个动作的真实分量,不看它长在哪个界面,看它改变什么对象、需要什么身份、失败时谁兜底。
还有一种更隐蔽的压力:说"不"的成本是即时的,说"好"的代价是延迟的。拒绝"顺手",业务主管当场不高兴;答应"顺手",出了问题在几周之后。人在这种不对称里天然倾向答应。FDE 要做的不是替谁抵抗这种人性,而是把两类代价摆到同一张桌子上,让决定的人同时看见。
也要防止另一个极端:把所有变更都说成重大风险。轻量变更被层层评估,业务方学会不再提任何要求,渠道死了,系统离真实业务越来越远。判断的目的不是拦截,是让每一类变化按它的真实分量走对应的路。
分类的粒度还有两条实务教训。
一条是不够细:把"改规则"笼统当一类处理,会漏掉规则里的硬区别——改显示口径(核验结果怎么措辞)和改判断口径(什么算通过)风险完全不同,前者轻量走,后者要动判据和验证集。
另一条是过于细:每个字段级改动都上变更会,业务方很快学会绕开流程直接找工程师"私下改",正式渠道反而失真。粒度的标尺是第 17 篇那句老话——变化改变什么对象、需要什么身份、失败谁兜底;这三问的答案分几档,变更流程就分几档。
二、把新增要求归入具体变化
分类从原工作约定开始。对表是具体动作,不是凭印象回忆:把约定文档打开,逐行看——任务范围写的什么、系统行为写的什么、排除项列的什么。
很多"顺手"在对表这一步就自己解除了武装,因为约定里早就有一行"排除项"白纸黑字写着这事不干,当初写的时候双方都点过头。也有相反的时刻:对表发现约定里根本没写行为边界,那这份约定本身欠了一笔账,先补约定再谈变更。澄川的约定(第 19 篇运行条件表)写着:范围内任务为限定资料类型、限定申请单来源的核验;系统行为为"给出核验结论",不执行动作;决定人为业务主管和系统负责人。拿新要求对表:自动下单是新增业务——它超出了"给出结论"的行为边界,引入了新的对象(采购承诺)和新的身份需求(下单授权)。
对照着看一个轻量变更:业务方还提过在核验页面加一个"备注"字段,可选填,不进任何规则。同样一句话的"顺手加一下",这一项归入小的界面增强——它不改对象、不改规则、不改权限,验证只需要确认字段能存能取。两个要求用同一句口语提出,分量差着一个数量级,这就是为什么分类不能听措辞,要对约定。
分类落到纸面,就是一张变更影响卡的开头几行:变更内容和业务原因——自动下单,原因是核验完成后人工下单重复录入;变化性质——新增执行动作,不是缺陷修正;原约定中仍适用的部分——资料核验的判断逻辑、判据、数据口径全部不动。
BABOK 的需求生命周期管理里有一条成熟经验:每项拟议变更都应能回溯到一项需要。落到这个场景,就是问业务主管:如果系统不做自动下单,业务损失是什么?如果答案是"其实也没什么,就是少点几下",那这个变更的紧急性评估就有底了;如果答案是"人工下单经常抄错型号,上周刚返工一批",那它值得排期认真评估。变更的价值主张不清楚,后面的影响分析做得再细也只是给自己找活干。
分类还有一个容易被忽略的出口:不改。有的要求听完描述就会发现,它真正要的不是新功能——比如业务主管抱怨的其实是核验结果传给采购太慢,那解法是把结果的推送做快,而不是把下单动作吞进来。分类阶段多问一句"这个问题还有别的解法吗",有时能省下三周的工程。
三、沿需求、规则、数据与动作查影响
归入"新增执行动作"之后,影响分析沿四个维度展开。这一步的方法,本体指南第十九章的变更流程说得很直白:变更不能只看被修改的对象本身,还要看下游影响;低风险的显示调整可以轻量处理,涉及主键、状态、行动层或自动执行范围的变化,必须经过回放和灰度。
需求侧:自动下单依赖"核验通过"这个结论,但通过有强弱——接近阈值的通过和干净利落的通过,下单风险不同。核验判据是否要为下单目的增加置信分层?这是需求影响。
规则侧:采购下单有自己的业务规则——起订量、账期、审批权限、供应商锁定。这些规则此前不在资料核验的范围内,现在要被引入。
引入不等于照搬:核验侧的规则和采购侧的规则分属两个 owner。第25篇讨论共用资产时已说明,规则没有明确维护人就会过期;这条新引入的规则链必须先明确谁维护、谁批准变更。
数据与身份侧:下单需要一个合法的采购身份。核验系统用的是核验员的只读身份,下单要的是采购员的交易身份——身份继承怎么设计,第 17 篇的权限矩阵要新增行。
还有外部副作用:下单动作会真实地改变外部状态(供应商看到订单、财务生成应付),这类动作在第 18 篇已经立过规矩——不可逆、有外部副作用的动作,超时之后不能盲目重试,幂等键、状态查询、重复提交防护都要设计。这里值得把第 18 篇的教训再压一遍:外部动作的超时是最危险的一类失败,因为"没收到响应"和"对方已执行"在外观上无法区分。人工核验出错的代价是看错一份资料;自动下单出错的代价是一张真实的采购订单发给了真实的供应商。影响分析里给每个受影响项标注"失败的后果谁承担",这一栏填完,优先级自己会排出来。
验证侧:既有的 30 笔模拟运行和测试用例,全部只覆盖"核验"这个行为,没有一个用例覆盖"下单"。已确认的业务基线(完成率、及时率)对新动作没有解释力。自动下单需要自己的验证集:正常下单、缺项下单、重复触发、超时中断、部分成功,每类都要有预期结果。验证集的构造有个省力的参照——第 16 篇排障时留存的失败样本,那一批真实异常正好充当异常用例的种子,省掉从零编造故障的功夫。
把这五张受影响清单叠起来,"顺手"的真实体积就显形了:一条新规则链、一次权限矩阵变更、一组新的异常处置设计、一套新的验证用例,以及三项新增的持续成本(下单通道的维护、异常的人工处置、对账机制)。变更影响卡的中间几行,填的就是这些。
影响分析不是把清单列长就好——列长容易,取舍难。BABOK 的影响分析给了五个评估面:收益、成本、影响面、日程、紧急性。澄川这张卡上:收益是消除重复录入和抄错风险;成本是上述全部工程与运行投入;影响面是从一个部门扩展到采购流程;日程是原定的扩大使用评估要顺延;紧急性取决于人工下单的实际出错频率——这个数还没有,列为待补。
四、给出可选择的范围方案
影响清楚之后,FDE 交给业务方的不是"行"或"不行",是两三个可比较的选项。选项的设计原则来自第 22 篇:同一组维度、同一份证据,让每个选项的代价自己说话。
选项一:按原计划推进试用,自动下单立项单议。核验的扩大评估不受影响,自动下单走独立的评估和排期。代价是业务方要多等,且要为两个项目分别投入。
选项二:缩小版集成——核验通过后系统生成一张预填好的采购申请草稿,人工点确认后下单。下单动作仍由人触发,权限模型基本不动,验证集小得多。代价是"自动"打了折,重复录入的节省也打折。
选项三:完整自动下单,接受排期顺延和新增成本。这是业务主管最初想要的版本,代价列出来之后,它自己会说话。
三个选项之外还有一个隐性选项:都不做,先补数据——把人工下单的出错频率统计出来,一个月后再决定。如果出错频率其实很低,整个变更的收益假设就塌了。
选项设计还有一个纪律:不给选项贴推荐标签。FDE 把三个选项的代价摆齐就走开,让业务方自己选——不是清高,是因为选项一旦带上推荐,后面的每一次故障都会被重新解读成"FDE 当初的选择",第 22 篇里协调者不占利益行的道理,在这里原样成立。选项表上可以留一行"各选项共同的前置条件"(比如无论选哪个,人工下单出错频率都要统计),但结论栏必须留给有权的人。
选项摆出来,选择就是有权人的事。变更影响卡的最后一栏因此有两个必填项:决定人是谁、生效版本是哪个。澄川的卡上,决定人是业务主管(收益侧)加系统负责人(行为边界侧)——两类确认分开,和第 22 篇的分工一致。未确认之前,系统保留原行为:核验页面不出现下单按钮,这既是工程纪律,也是对分类结论的忠实执行。
五、确认之后怎样验证和保存决定
假设澄川选了选项二。决定的落地不是改代码,是三件事按次序发生。
第一件,工作约定更新。原约定里"系统行为:给出核验结论"改为"给出核验结论,并可生成采购申请草稿";范围变化单独记录一版,注明日期和决定人。约定是所有后续判断的锚,约定不更新,三个月后没人说得清系统现在到底承诺了什么。
第二件,验证补齐。新增行为的验证集单独建:草稿生成正确性、缺项时的降级提示、人工确认后的状态回写、异常时的错误信息。回归验证同时跑——确认新增没有破坏既有核验行为,这正是本体指南变更流程里"测试回放"一步的本意:用历史场景和评测用例验证,不是只测新功能。第 15 篇的判据相应扩行:草稿字段与核验结果的一致性,成为新的质量判据。
第三件,决定进档案。变更影响卡、选项比较、决定记录、新的验证结果,进澄川那份越来越厚的项目档案。
这张卡的价值要到下一次才显现:下一个"顺手"出现时,FDE 不必从头讲一遍道理,翻出这张卡——上一次同样的话是怎么分类的、查了哪些影响、谁决定的、结果怎样。
变更卡连起来,就是组织的变更记忆。这张记忆还有个立竿见影的用法:下一次同类请求出现时,先翻旧卡。如果"生成草稿人工确认"跑了两个月、复核没发现一笔错单,那升级到完整自动的讨论就有了起点;如果草稿被人工推翻的比例不低,那说明判断口径本身还没站稳,自动下单要继续排队。新决定站在旧证据上,而不是每半年从零争论一遍——这是第 22 篇"决定的可复用性"在变更场景里的翻版。
回头看这篇的路:先核对约定,再把要求归入修缺陷、改规则或新增业务,然后沿需求、规则、数据与验证查影响,把影响换算成可比较的选项,最后由有权人确认并落进约定和档案。整条路上没有一步是"听出客户的真实意图"这种玄学,每一步都是可以检查的动作。
迁移练习留给你:假设某个系统要把"联系电话"字段改名为"联系方式",试着把这个变更映射到五个地方——报表里引用这个字段的公式、判断规则里的字段名、工具参数配置、历史数据记录、用户操作说明。五处都列出来的,去核对有没有第六处。这个练习最常见的收获是发现:改名这个"最简单"的变更,也会在至少一处留下没人记得的引用。
下一篇讲一个每个 FDE 都躲不开的时刻:项目告一段落,你写的说明要交给别人使用——怎样判断你的交接真的够用。