# M7 工时与资源管理 — 需求分析

| 项 | 值 |
|---|---|
| 模块 | M7 工时与资源管理 |
| 域 | D Professional Service（PS）——但**工时为平台级共有能力**（域归 D 因 PS 主用 + 额度逻辑在此） |
| 主要角色 | **全员记工时**（PS/PS Leader 交付；TAM/CSM 经营；全员内部）；PS Leader 管资源 |
| 成熟度 | 🟡 部分待定 |
| 关联模块 | M6（交付项目）、M1（Quota）、M10（利用率报表） |
| 逻辑设计(LDD) | [ldd/M7（数据模型/换算/消耗汇总/EAC/Workload/利用率）](../ldd/M7-工时与资源管理-设计.md) |
| 上级文档 | [需求分析总纲](../需求分析总纲.md) |

> 本文档只描述**做什么/为什么/规则/验收（What/Why）**；TimeEntry 数据结构、工时→人天换算、消耗汇总/EAC、burn、Workload/利用率计算等**实现（How）见设计文档**。

## 目标（Why）
活动化工时、额度消耗与人力资源。**工时是平台级共有能力（Plugin 模式，类比 Tempo）**，TAM/PS/CSM 全员记工时。业界对标：Harvest/Tempo 工时 + Float/Forecast 资源。

> **工时模型（核心）**：一条 TimeEntry 记在实际做的事上——**项目**（记 Task→汇总到 Project，或直接记 Project）/ **经营活动**（M4）/ **内部非项目**（学习/市场活动等）。**计投入与扣额度由"记在什么上"自然决定**：① **billable（计入客户人力投入/成本核算）** = 项目 + 经营（内部除外）；② 挂项目的工时 draw-down 其**绑定 Quota**（项目↔Quota=M:N、限同客户；绑多份时按序扣）——`finite`（付费或 **Sponsored 赠予 Man-days**）跟踪 used/remaining + 超支预警，**`unlimited`（Dedicated）照记 used、不预警超支**；经营/内部不 draw-down。

## 约束
> **架构原则**：工时/Time 系统**解耦为独立 App/Plugin**（类比 Jira 的 Tempo）；CSP 对部分功能采用 **Plugin/App 架构**，支持解耦与独立演进（详见总纲 NFR 模块化/可插拔）。

## 关键设计决策（已敲定）
| # | 结论 |
|---|---|
| D-P7 | **活动化工时**：一条 TimeEntry 对应一次真实活动（0.5h 步长 + 自由文本内容），**可挂 Task 亦可直挂 Project** |
| D-P8 | 提交后 **24h 内可改**，超期需 PM 审批，全程审计 |
> 换算默认值、TimeEntry 字段等"如何实现"见设计文档。

## 功能需求 / 候选
| 编号 | 需求 | 优先级 |
|---|---|---|
| FR-RES-01 | 活动化工时录入（D-P7）+ 周填报视图 + 缺报提醒。 | P0 |
| FR-RES-02 | **工时汇总 + 额度消耗（两正交维度）**：**billable（计入客户投入/成本核算）** = 项目 / 经营活动（内部非项目除外）；**Man-days 额度消耗（draw-down）发生在挂载=`项目`**——挂项目的工时一律按项目汇总扣减 Quota.used：`finite`（付费 Man-days 或 **Sponsored=免费赠送 Man-days**）跟踪 total/used/remaining + 超支预警，**`unlimited`（Dedicated 持续型项目）照记 used、remaining=∞、不预警超支**；经营/内部**不 draw-down**。 | P0 |
| FR-RES-03 | 额度视图与**超支处理**：接近/超过额度分级预警并标红、触达 PM/Sales/TAM；**超支后仍可继续记工时（软预警、不阻断）**。定期向 Sales 推送消耗。 | P0 |
| FR-RES-04 | 产能与利用率、Workload 负载视图：让 PS Leader 看清谁忙谁闲、据以调配与接单；**产能基准可配默认**（如 5 人天/周，可按人/团队调；本期不扣请假）。 | P1 |
| FR-RES-05 | **项目 burn 跟踪**：计划 vs 实际人天、燃尽/进度，供监控与变更控制（M6 FR-PROJ-12）与看板（M10）使用。 | P1 |
| FR-RES-06 | **技能/胜任力管理 + 按技能派单**：PSE 技能画像**在 CSP 内维护（自评 + PS Leader 确认）**；派单按 Service Package 所需技能匹配。 | P1 |
| FR-RES-07 | **需求与排期预测（Demand & Staffing Forecast）**：人力供需预测，**需求来源 = Sales 商机/pipeline + M6 立项 backlog**，支撑提前配置。 | P1 |
| FR-RES-08 | **利用率口径**：区分 **billable（项目/经营 = 计客户投入）与内部非项目工时**，支撑利用率（Utilization）/realization（利用率分子口径可配、待业务）。 | P1 |
| FR-RES-09 | **内部非项目时间**（学习/培训/内部事务）纳入工时系统，标记为**非项目/non-billable**，不消耗客户额度；计入利用率分母。 | P1 |
| FR-RES-10 | **活动类型分流（防持续型工时"赖通用桶"）**：retainer/Dedicated 下工时录入须选活动类型——**运维型**（答疑/on-call/巡检等 reactive 小颗粒）可挂通用支持桶；**交付型**（Migration/Upgrade/Tuning/POC 等有目标工作）**必须挂到具体 Service Package 项目**，选交付型未关联项目则引导立项（M6 D-P14/FR-PROJ-23）；通用桶异常占比/关键词告警 PS Leader 兜底。 | P0 |

## 已敲定（补充）
- 口径：**billable（计投入）= 项目/经营（内部除外）**；**Man-days 额度在"项目"消耗**（finite=付费或 Sponsored 免费 Man-days；**unlimited=Dedicated 持续型项目，照记 used、不预警**），经营/内部不扣（FR-RES-02）。
- 工时→人天换算：**可配，默认 1 人天 = 8h**（默认值与算法见设计文档）。
- 超支处理：**软预警照记**（不阻断），分级预警 + 标红触达（FR-RES-03）。
- 人力管理深度：**本期 = 利用率 + 产能 + Workload 负载视图**（FR-RES-04）；完整排期与请假暂不做（后续）。
- 技能画像 **CSP 内维护**（自评 + PS Leader 确认）；产能基准**可配默认**（如 5 人天/周）；需求预测来源 = **Sales 商机/pipeline + M6 backlog**。

## 验收标准（关键）
- 工时录入步长=0.5h；挂 Task 与直挂 Project 两种方式均支持；缺报（低于应报标准，标准目标值待业务确认）提醒率=100%。
- 提交后 24h 内自助修改可用；超 24h 修改 100% 走 PM 审批并留审计（审计缺失数=0）。
- billable 计投入判定正确（项目/经营=是、内部=否）；**挂载=项目**其工时汇总 draw-down Man-days 率=100%（finite 跟踪 used/remaining + 超支预警；**unlimited=Dedicated 照记 used、remaining=∞、不预警**）；**经营/内部 扣额度=0**（额度漂移=0）。
- 接近/超额（分级阈值目标值待业务确认）分级预警触达 PM/Sales/TAM 率=100% 且标红；超支后工时录入阻断率=0（软预警不阻断）。
- 利用率 = billable 工时/产能（分子口径可配、产能基准默认如 5 人天/周，目标值待业务确认）；内部非项目 non-billable 计入利用率分母率=100%。
- 项目 burn（计划 vs 实际人天）数据可被 M6 变更控制与 M10 看板消费（对接可用性可验证通过）。

## 遗留待确认
- 需求预测依赖 **Sales 商机/pipeline 数据来源**（Nexus 是否提供商机/opportunity 数据待对齐）。
- （其余无阻塞项；细粒度字段进详设）
