12 KiB
12 KiB
内部 OA 生产使用度结论与减法路线图
1. 执行边界
- 生产身份、运行 SHA、migration 和回滚窗口 PRE 均通过;运行候选为
origin/main,其后本地变更不含client/src、server/src或 Compose 产品差异。 - 既有部署 wrapper 曾在 provenance 阶段因本地文档 HEAD 领先运行候选而 fail-closed;当时只完成 identity/13 项聚合体检,未进入 migration 或普查。随后用 task-scoped PRE 精确绑定已部署
origin/main,未放宽部署工具。 - 唯一有效普查在一个
READ ONLY事务内完成,20/20 模块queryStatus=PASS,effectiveQueryExecutions=1、zeroRetry=true。 - 第一次
--execute在 stdin 入口条件处被拦截,run()未调用、普查事务未开始;它记为preQueryInterceptions=1,不计有效查询。 - 本轮没有发布、登录、feature flag/导航修改、schema/data 写入或测试业务记录。
- 完整脱敏计数见
production-usage-snapshot.json;本文只解释聚合,不包含个人、金额、正文或原始 payload。 - 本次执行的邮箱 smoke 判据对无分隔符
oasmoke…做了保守扩展;因此真人计数是下界。它不影响零记录模块,也不影响财务闭环已有真人证据的成立;未来复跑前可收紧为 helper 的精确分隔符规则。
2. 一句话结论
当前 OA 整体采用度极低,尚不能称为 5–10 人团队已经在稳定使用的办公系统。问题不是继续补功能,而是管理层必须先决定:要求团队把明确流程真正迁入 OA,还是把 OA 收缩为低频台账和治理兜底;在该定位明确前停止产品功能开发。
| 核心指标 | 生产只读证据 |
|---|---|
| 20 个模块聚合总行数 | 70(其中系统配置 26) |
| 零行模块 | 13 / 20 |
| 近 90 天真人归属/创建记录证据 | 13 |
| 近 90 天认证成功审计中的真人 actor | 1 |
| 近 30 天认证成功审计中的真人 actor | 1 |
这里的 13 是可归属真人的记录证据,不等于可精确还原的 13 次页面点击;认证审计只观察到 1 个真人 actor,也不排除代理提交或审计覆盖外的历史使用。两项口径都指向同一结论:采用度极低,而不是已形成全员稳定使用。
3. 关键观察
3.1 只有一条可证明的真人业务链
reimbursements_invoices:13 条聚合记录中,近 30/90 天均有 5 条真人记录证据、2 个真人 actor;另有 4 条 smoke、4 条 system,说明不去污染会明显高估使用度。workflow_approvals:2 条真人记录、1 个真人 actor,审计交叉验证 6 条真人 action。payments_ap:3 条真人记录、1 个真人 actor,审计交叉验证 7 条真人 action。- 三者合计 18 条业务记录、10 条真人归属/创建记录证据,是当前唯一可证明的端到端财务链。它仍更接近少量流程验证或零星使用,不能据此声称团队已采用;三者也不应拆成三个并行产品路线。
3.2 自动化比真人活动更多
- 20 个模块近 30 天合计:真人记录证据 13、smoke 4、system 24、unknown 14。
- 工作台/通知的 21 条记录没有真人交互证据;其中近 30 天的 18 条、近 90 天的 21 条均归为 system。企微请假留存的 3 条记录也全部是 system 证据。它们证明后台机制工作,不证明用户在 OA 页面主动使用;本次查询未统计通知
read_at,因此也不把它解释为“已证明没人看”。 - 系统配置的 26 条记录中近 30 天只有 1 条真人、14 条 unknown;配置表初始化/历史更新时间不能解释成管理员日常使用。
3.3 主导航存在明确噪音
生产 workspace 将公告、普通待办、周报和项目都暴露在 main,对应 flag 为 on 或无总开关,但四者 90 天均为 0 记录、0 真人活动、0 审计活动。
其中公告、普通待办和周报还偏离当前代码默认层级(默认分别为 admin、hidden、admin)。这不是产品代码故障,而是生产 workspace 配置保留了历史扩张期入口。
3.4 零使用不等于同一种结论
- 合同、采购、资产虽均为 0,但有低频高失败成本、附件/审计和离职交接价值,应保留最小能力并冻结开发。
- 周报、普通待办、公告和项目存在企微群、项目文档或直接沟通等便宜替代,当前主导航暴露没有生产证据支撑。
- 薪资、绩效、预算、完整差旅和 ERP 集成同时满足“零数据/零真人活动 + 无日常入口或关闭 + 有可靠替代”,可进入退役前调研。
3.5 下一步是管理决策,不是工程猜测
- 近 30/90 天认证成功审计只观察到 1 个真人 actor、5/6 次真人登录;smoke 登录为 11 次。
- 该数字不能单独证明其他员工从未使用(可能存在代理提交或审计覆盖差异),但足以否定“系统已经被全员稳定使用”的假设。
- “功能不够好导致没人用”没有生产证据支持。请假、考勤本来由企微主办,其他零使用模块也可能只是业务未发生或流程仍在线下。
- 管理层必须选择 OA 的实际定位:A 为要求团队把明确业务迁入 OA;B 为不强推日常使用、收缩成低频台账和治理兜底。该选择属于组织流程,不应伪装成代码需求。
- 无论选择 A 或 B,先隐藏四个零使用主导航入口都成立;但隐藏动作必须另建 task 并单独批准,本任务只提供证据。
4. 四类模块矩阵
| 模块 | 生产证据(30/90 天) | 当前暴露 | 分类 | 理由与后续触发 |
|---|---|---|---|---|
| 报销/票据/OCR | 真人 5/5、2 actors;smoke 4、system 4 | main | 重点优化(财务闭环) | 唯一有多人真人记录的主流程;先收集实际报销人/财务的摩擦点,再开小任务 |
| 统一审批 | 真人 2/2、1 actor;审计真人 6/6 | admin | 重点优化(同一闭环) | 与报销/付款合并看待,不单独扩建通用 BPM |
| 付款/AP | 真人 3/3、1 actor;审计真人 7/7 | admin/on | 重点优化(同一闭环) | maker-checker 与付款证据不可省;只优化真实闭环痛点 |
| 工作台/通知 | system 18/21,真人 0 | main/on | 保持冻结 | 是真实流程的必要通知基础,但记录量不能证明页面价值;不扩成大门户 |
| 采购 | 0/0 | main | 保持冻结 | 低频金额/附件/审批留痕有价值;建议收进二级入口,首个真实采购触发只读验收,不继续做复杂招采 |
| 合同 | 0/0 | main/on | 保持冻结 | 低频高失败成本;建议收进二级入口,首条生产合同仍是 UI 验收触发条件,需业务确认是否应录未录 |
| 资产/盘点 | 0/0 | main | 保持冻结 | 设备、电子资产和离职交接必要;建议收进二级入口,首批资产建档前不扩建盘点能力 |
| 请假/企微历史 | system 2/3,真人 0 | main | 保持冻结 | 企微主办、OA 留存;不把系统同步当 OA 页面使用,不重造请假流程 |
| 考勤/团队状态 | 0/0 | hidden/on | 保持冻结 | 企微主办且当前已隐藏;保留留存/兜底边界,不扩建 OA 原生打卡 |
| 人员生命周期 | 真人 2/2、1 actor;审计真人 51/51 | admin/on | 保持冻结 | 账号、入离职、角色和主管是基础,但高审计量含近期账号治理,不代表 HR 套件高频使用 |
| 系统配置 | 真人 1/1、unknown 14/25 | admin | 保持冻结 | 权限、workspace 和开关必要;保持后台化,工具债触达时再修 |
| 公告 | 0/0 | main/on | 隐藏入口 | 小团队企微群可替代;需要制度签收时按事件启用,数据与路由先保留 |
| 普通待办 | 0/0 | main/on | 隐藏入口 | 与审批待办、企微消息和项目事项重复;先恢复 hidden,不立即删表/路由 |
| 周报 | 0/0 | main/on | 隐藏入口 | 无提交和阅读责任人证据;周会/项目纪要可替代,先恢复 admin/hidden |
| 项目 | 0/0 | main/on | 隐藏入口 | 当前没有主档或关联数据;保留最小代码,真实项目关联需求出现时再开放 |
| 预算 | 0/0 | admin | 候选退役 | 小团队可由报销/采购审批和表格控制;先确认无预算负责人及保留义务 |
| 完整差旅 | 0/0 | admin | 候选退役 | 当前报销闭环可承接差旅费用;先确认无统付/卡交易真实流程 |
| 薪资 | 0/0 | 无导航 | 候选退役 | 高敏低频,财务/代账与受控表格更合适;物理删除前确认无保留数据 |
| 绩效 | 0/0 | 无导航 | 候选退役 | 5–10 人更适合直接反馈;无周期、无记录、无负责人证据 |
| ERP/集成 | 主表 0;仅 1 条真人“跳过/关闭”类审计 | 无导航/off | 候选退役 | ERP 已明确不接,关闭审计不是业务使用;后续检查依赖/outbox/保留后分批移除 |
5. 后续决策与行动顺序
先做共同动作
- 暂停产品功能开发:在管理层明确选择 A 或 B 前,不以补功能、修视觉或完善测试矩阵解释采用度问题;真实线上缺陷和安全/恢复底线不在冻结范围内。
- 另批可逆导航减法:建立独立 Trellis task,将公告、普通待办、周报、项目从主导航隐藏;合同、采购、资产保留最小能力但评估收进二级入口。保留路由、数据和恢复路径,生产 workspace/flag 写入另行批准。本任务不创建该 task。
管理层二选一
A:要求团队真正使用 OA。 选择一个明确且近期必然发生的流程作为团队规则;最小建议是下一轮报销统一从 OA 提交,不再用微信消息替代。目标不是先优化页面,而是让 5–10 人产生一次真实使用样本,再按实际阻塞点决定是否开一个小任务。若推动失败,先记录组织/流程原因,不默认归因于产品。
B:不强推,OA 作为低频台账和治理兜底。 大幅收缩日常入口与维护面;保留报销/付款、合同、采购、资产、认证、权限、审计、备份恢复和离职撤权等必要能力,冻结或分批审查预算、完整差旅、薪资、绩效、ERP/集成等超出实际需要的模块。
产品开发门禁
- A/B 未明确前,不启动新产品功能 task。
- 选择 A 后,只有团队真实使用暴露出的最高优先级摩擦点可进入小型产品 task;不预先猜需求。
- 选择 B 后,默认只做减法、必要维护和安全恢复,不再追求通用 OA 的功能完整度。
- 低优先工具债只有再次触达对应工具时才处理,不挤占真实业务或减法预算。
- 认证、审计、权限、付款 maker-checker、备份恢复和离职撤权继续作为安全底线,不用低使用频率否定。
明确不做
- 不新增 OA 模块、通用工作流/BPM、BI 看板、ERP、AI 助手或完整 HR/薪资/绩效套件。
- 不为零使用模块继续补测试矩阵、视觉完善或“功能完整度”。
- 不主动处理 SHA 比较器、repair helper 等低优先工具债;只有再次触达对应工具时才顺手纳入门禁。
- 不因本次零数据物理删除表、路由或历史证据。
6. 后续独立 task 候选
| 优先级 | 候选 task | 触发/输入 | 验收 | 生产批准 |
|---|---|---|---|---|
| P1 | 小团队主导航减法 | 用户接受本矩阵;另行批准建 task | 四个零使用入口不再占主导航;合同/采购/资产转二级入口的范围另审;直达/恢复能力保留 | 需要,workspace/flag 写入 |
| P1 | OA 采用模式决策 | 管理层选择 A 或 B | 事实源明确强推使用或台账兜底;选择前产品开发保持冻结 | 无生产动作 |
| P2 | 财务闭环单点优化 | 仅限选择 A 且团队真实使用产生明确摩擦点 | 只解决排名第一的问题;公网部署后才能通知测试 | 代码/部署时分别批准 |
| P2 | 低频业务落地确认 | 负责人回答采购/合同/资产/差旅/预算事实 | 更新既有事实源或入口决策,不造生产数据 | 只读确认无需;配置变更需要 |
| P3 | 退役前依赖与保留审查 | 再次触达预算/差旅/薪资/绩效/ERP 代码 | 数据导出、审计保留、依赖、回滚均明确 | 删除/迁移另批 |
7. 仍需业务负责人回答
- 过去 90 天是否签过合同、发生采购或新增/转移资产;若发生,为什么未进入 OA?
- 实际报销人、审批人和财务是否都知道并愿意使用当前 OA 主流程?
- 是否存在必须由 OA 承担的预算、差旅统付、薪资或绩效流程及明确负责人?
在 A/B 定位和这些业务事实得到回答前,相关模块保持冻结或候选状态,不做写入、不扩大范围。