FDE·交付知识库
目录
需求诊断 项目切片 灰度上线 验收交接 报价期望 集成治理

模块 06 · 项目切片与排期

一句话:切片不是偷工减料,是把风险分期。先交一个小的、能跑的、能量化的东西,比交一个大的、说不清的强十倍。

项目锚点 · 德莉玛 7 大系统的 P0~P3 切片

「7 大系统一起上」是客户最初的要求,切成四层后才可执行:P0 数据地基(订单↔经销商 ID 对照表、出厂价红线 PV/KW/K1、尺寸数据源)→ P1 引擎(型号 96.6%/厚度 95.2% 已验证,尺寸 29% 是瓶颈)→ P2 拆单与 BOM→ P3 派单。关键判断:P0 不做完,P1 做出来也是废的。

排期上留 30% 缓冲的真实依据:生产 400 单里 97% 无尺寸,规格缺失直接推翻了乐观工期。延伸:基础 16 · 数据库存东西 讲这批数据为什么缺。

01

为什么要切最小可交付

需求诊断做完,客户紧接着就是一句话:「这几个系统一起上,才算完整。」7 个模块、报价、拆单、派单、报表、库存、权限——听起来都对,都该做。

但你心里清楚:同时上=同时炸。出了 bug 你不知道是哪一块引起的,数据错了你不知道回滚哪一段,客户一线停工了没人能立刻顶上。这不是能力问题,是结构问题。

客户的心理没说出口的真话如果照做
「一起上才完整」他怕的是你做完一个就跑路,或者中途加价你为了留住他全接下来,工期拉成三个月,中途任何一环卡住都收不到尾款
「先做核心功能就行」他自己也没分清哪个是核心你猜一个做三个月,做完他说「这才是我想要的」
「反正都要做」他要的是结果,不是顺序你按他的顺序做,一半功能依赖还没建好的地基,全是空转
关键立场:切片是降低双方风险的手段。客户的风险是「钱花了系统没起来」,你的风险是「做到一半发现做不完」。切片让这两个风险都变小——它保护的是双方,不只是保护开发者。
要说服客户,别讲架构,讲这个说法:「我们第一期只解决你最痛的那一步,跑通了再往下走。这样你两周就能看到东西,而不是等三个月才知道方向对不对。如果第一期跑完发现方向不对,我们只亏两周,你只亏两周。」——把风险讲成对他有利的事,这话就说得通了。
02

MVP 判定的四条硬标准

「最小可交付」最容易被做成空话——什么都能砍一点,结果砍出一个不能用的东西。要有能判定的条件,不是感觉。下面四条全部满足才算 MVP,缺一条就说明还得再切。

标准怎么判定为什么是它
能不能在 14 天内上线把工作量拆到「周」而不是「月」——超过两周的切片不是切片,是分期付款时间是最硬的约束。14 天内能做完,你才有底气面对客户的进度质疑
上线当天就能被一线用起来一线人员不需要培训、不需要换账号、不需要先做一遍数据准备就能上手如果上线第一天没人能用,它就进不了真实业务,永远只能停在「演示挺好」
出问题能在 1 小时内回滚上线前必须实测过一次回滚,不是「理论上能」而是「真的退过」不能回滚的功能,等于把客户的日常经营押在一段还没跑稳的代码上
不依赖还没建好的数据源逐条列出这个切片读哪些表/接口,逐个确认已存在且有真实数据这一条最容易被忽略。依赖没建好的地基,等于上线即空转
四条里最容易翻车的是第4 条。判断依赖是否「已建好」,不要问客户「数据有吗」,要自己跑一遍真实数据看覆盖率。问得到的答案不可信,跑出来的数字才可信。
03

真实案例:德莉玛的 P0~P3 四层切片

客户是门窗/卫浴经销商,真实业务流是四步:订单 → BOM → 玻璃图纸 → 报价。客户要求用真实数据校验,拿出来的校验规模是:33,176 笔真实订单、387 个经销商、2,799 个型号。

这套数据一跑,结论就出来了——不是「7 个系统一起上」,而是「四层,按依赖顺序上」。

层做什么为什么是这个顺序
P0 数据地基建订单↔经销商 ID 对照表;建出厂价红线(PV / KW / K1 三档);打通尺寸数据源没有这三样,后面全是空算。这是所有功能的地基
P1 引擎型号匹配与厚度匹配引擎已经验证可用:型号匹配 96.6%、厚度匹配 95.2%。这是最快见效的部分
P2 拆单与 BOM把订单自动拆成生产工单依赖 P1 的匹配结果,也依赖 P0 的价格档位。必须等前面两层落地
P3 派单对接供应商 / 黑湖小工单排在最后。因为它是外部系统对接,不确定性最大,放在地基跑稳之后才接
四层的验证数据摆在这:
校验项真实覆盖率卡在哪一层
型号匹配96.6%P1 已验证可用
厚度匹配95.2%P1 已验证可用
尺寸数据29%🔴 瓶颈,在 P0 要打通的数据源
订单↔经销商对应0%🔴 完全缺失,是 P0 的第一件事
最关键的判断:P0 不做完,P1 做出来也是废的。因为尺寸只有 29%、客户匹配是 0%——引擎算得再准,输入是残缺的,输出就是错的。而这种错不会报错,它会安静地给出一个看起来正常的报价单。这比直接报错危险得多。
反过来说这也是好消息:P1 不用重做。型号和厚度两层的匹配能力已经验证过了,等 P0 的数据补齐,P1 直接就能产出正确结果。这就是分层的价值——每一层都在为下一层铺路,前面的成果不会作废。
切片顺序 = 依赖顺序 ≠客户心里的重要顺序地基层永远排第一,哪怕它最不好看
04

排期怎么算:从「月」拆到「周」

排期最常见的死法是说「大概两个月」。这句话说出来你就输了——两个月之后客户一定会问「进度到哪了」,而你答不上来。

可估算的做法是不按功能拍脑袋,按可数的单位估。这三个维度能覆盖绝大多数工作量:

估算维度怎么数参考量级
接口数需要新写或改造的对接点,一个算一个含外部系统对接要额外加权,对接方不受你控制
页面数一线/后台各自的操作页,含列表、详情、表单列表页和表单页的复杂度差很多,别按一个价算
数据字段数要新补齐或清洗的字段,一个算一个字段数是隐藏工作量的大头,见下面的真实教训

数完之后换算成周,而不是报月。给人报「3 周」比报「1 个月」更可控,因为三周之后你真的能拿东西给人看。一个月之后你只能说「快了」。

为什么必须留 30% 缓冲——这是我真实踩过的:400 单里有 97% 没有尺寸数据。纸面上尺寸字段存在、接口能通、字段类型也对,看着一切就绪;跑真实数据才发现压根没填。97% 的缺失率,是无法从文档上看出来的,只有跑数据才看得见。这类「规格缺失 + 生产数据匮乏」的问题不会主动跳出来找你,它一定吃掉你的缓冲。如果 P0 排了 1 周,实际大概率是 1 周数据排查 + 1 周补数据。没有 30% 缓冲的排期,本质上是一份一定会失约的承诺。
05

明确「不做什么」

这张表是防扯皮的关键。它把「砍需求」从一句情绪化的争论,变成一张有理由、有复查时间的清单。左边这些需求不是不做,是不在这一期做。

被砍掉的需求砍的理由什么时候再考虑
移动端App一线现在的核心动作在电脑端;先让电脑端跑通,避免同时维护两端交互电脑端稳定运行满1 个月,且一线明确提出手机端需求
供应商协同门户涉及外部方账号体系和权限,属于外部依赖,不该由第一期承担P3 派单跑通、且已有明确合作方愿意配合
自定义报表中心各角色报表需求差异大,需求会无限扩张;先用固定几张报表满足验证固定报表已验证够用,且客户愿意为自定义付费
多组织/多门店权限体系本期只服务一家经销商体系,权限模型按单组织设计即可确认要接入第二家体系时
历史数据全量迁移成本高、对本期价值低;新系统只跑增量,旧数据可查即可客户明确要求查三年以上历史数据时
这张表怎么用:立项时和客户一起过一遍,逐行确认「同意 / 有异议」。有异议的行当场改,改不了的行写进合同附件作为范围基线。签了字的清单,后面就不是你在砍需求,是双方约定了范围。
06

常见坑 / 红线

坑表现 / 对策
需求蔓延上线后客户「顺便再加一个小功能」。对策:新需求一律单独评估、单独排期、单独报价。算谁的变更要写清楚——谁提的、影响哪一层、延几天、多少钱,一次性讲明白,不要在开发过程中零散地做「人情加单」
用「先做着看」掩盖没想清楚需求没想透就先动手,做一半发现不对,推倒重来。产出:所有功能开工前必须能一句话说清「它解决什么问题、谁用、怎么算成功」。说不清就不许开工
把 P0 估成一周,结果做了两周数据地基最容易被低估,因为它的「工作量」大部分是等客户给数据、反复对字段,而这些时间不算在你写代码的时间里。对策:估算时把等待客户的时间单独列一行,不算进开发工期,但要写进交付承诺的日历
切片切在错误的位置把最花哨、最好演示的功能放第一期。后果:演示很惊艳,一线不用。对策:第一期要选一线每天都要用、且当前最痛的那一步
层与层之间留了「后面再说」P1 用临时假数据跑通,客户验收时看到的是演示效果,上线才发现没法用真数据跑。对策:每一层验收都必须用真实生产数据
红线:没有写清「不做什么」和「每层验收用什么数据」,不要开始写第一行代码。这两项是后期扯皮成本最低的预防手段。
✓

自查清单

  • ✓我能用「风险分期」而不是「偷工减料」向客户解释为什么先切小的
  • ✓我能说出 MVP 的四条判定标准,并能用它判定一个需求该不该进第一期
  • ✓我能复述德莉玛的四层切片(P0 地基 / P1 引擎 / P2 拆单与 BOM / P3 派单)及各自的验证数字
  • ✓我知道 P1 引擎型号匹配 96.6%、厚度匹配 95.2% 已可用,瓶颈在尺寸 29% 和客户匹配 0%
  • ✓我知道为什么 P0 不做完 P1 就是废的——输入残缺不会报错,只会安静地输出错误结果
  • ✓我估算工期时按接口数/页面数/数据字段数拆,并且留了 30% 缓冲
  • ✓我手上有一份客户签字确认的「不做什么」清单,且每项都写了什么时候再考虑
面试怎么答

「客户要求一次上全套,你怎么处理?」

我先明确一个立场:切片不是砍需求,是把风险分期。一次上全套看起来省事,实际上是把所有风险堆在同一个时间点爆掉——出了 bug 分不清是哪块引起的,数据错了不知道回滚哪一段,客户一线停工了没人能顶上。最后往往是双方都受损。

德莉玛这个项目就很典型。客户是门窗/卫浴经销商,业务流是订单 → BOM → 玻璃图纸 → 报价,要求用33,176 笔真实订单、387 个经销商、2,799 个型号做校验。客户一开始的想法也是「几个模块一起上」。但跑完校验我就知道这条路走不通——型号匹配 96.6%、厚度匹配 95.2% 都还行,可尺寸只有 29%、订单↔经销商对应是 0%。

所以我把方案改成了四层,按依赖顺序上:P0 数据地基(订单↔经销商 ID 对照表、出厂价红线 PV/KW/K1 三档、打通尺寸数据源)→ P1 引擎(型号与厚度匹配)→ P2 拆单与 BOM → P3 派单(对接供应商/黑湖小工单)。这里最关键的判断是:P0 不做完,P1 做出来也是废的。因为尺寸和客户匹配是残缺的,引擎算得再准也只是在错的基础上算得更快,而且它不会报错——它会给出一张看起来完全正常的报价单,这比直接报错危险得多。

另外两件我会坚持做的事:一是每一层验收都必须用真实生产数据,临时假数据演示得再漂亮,上线就会发现跑不通;二是写清「不做什么」清单,把砍掉的需求连同理由和复查时间一起让客户签字。P1 也不作废——它已经验证过了,等P0 的数据补齐就能直接产出正确结果。这就是分层的好处:每一层都在为下一层铺路,客户两周就能看到东西,而不是等三个月才知道方向对不对。