文件
hyb-oa/.trellis/tasks/08-11-internal-oa-usage-census-and-simplification/research/portfolio-decision-matrix.md
T

12 KiB
原始文件 Blame 文件历史

内部 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. 后续决策与行动顺序

先做共同动作

  1. 暂停产品功能开发:在管理层明确选择 A 或 B 前,不以补功能、修视觉或完善测试矩阵解释采用度问题;真实线上缺陷和安全/恢复底线不在冻结范围内。
  2. 另批可逆导航减法:建立独立 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 定位和这些业务事实得到回答前,相关模块保持冻结或候选状态,不做写入、不扩大范围。