Files
wiki/研发型企业AI转型方案/报告/ai-tools-training-lesson5-pm.html
T
zdh c677393d08
Deploy Wiki to Production / deploy (push) Has been cancelled
feat: 入库 17 个新报告页
- 银行业Agent建设方案/报告/ 4 篇:建设方案 · 智能中台 · 意图识别 · 合规风险
- 研发型企业AI转型方案/报告/ 9 篇:角色矩阵(交互版) · 培训1-6课 · 角色矩阵 · 实操培训 · 培训路线图
- AI Agent 驾驭工程/报告/ 1 篇:Harness Engineering 全面解析
- 简历AI技术讲解.html + .md
- Dify部署分析报告.html
2026-06-20 22:38:20 +08:00

485 lines
25 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AI 工具实操培训 · 第五课 — 项目经理:开发计划·进度跟踪·风险管理</title>
<style>
:root {
--color-primary: #0078D4; --color-primary-hover: #106EBE; --color-primary-active: #005A9E; --color-primary-bg: #DEECF9;
--color-success: #107C10; --color-success-bg: #DFF6DD; --color-success-border: #A7E3A1;
--color-warning: #FF8C00; --color-warning-bg: #FFF4CE; --color-warning-border: #FFD335;
--color-error: #FF4D4F; --color-error-bg: #FDE7E9; --color-error-border: #EEACB2;
--bg: #FAF9F8; --bg-container: #FFFFFF; --bg-elevated: #F3F2F1;
--border: #E1DFDD; --border-light: #EDEBE9;
--text-primary: #201F1E; --text-secondary: #605E5C; --text-tertiary: #8A8886;
--radius-xs: 2px; --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px;
--shadow-sm: 0 0 2px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.14);
--header-h: 64px; --sidebar-w: 260px;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Segoe UI Variable Text','Segoe UI',system-ui,-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;background:var(--bg);color:var(--text-primary);line-height:1.57;font-size:14px;}
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}
.header{position:fixed;top:0;left:0;right:0;height:var(--header-h);background:rgba(255,255,255,0.85);backdrop-filter:blur(24px) saturate(125%);border-bottom:1px solid var(--border-light);display:flex;align-items:center;padding:0 2rem;z-index:100;}
.header .back-link{margin-right:16px;font-size:13px;color:var(--color-primary);text-decoration:none;flex-shrink:0;}
.header .back-link:hover{text-decoration:underline;}
.header h1{font-size:18px;font-weight:700;background:linear-gradient(135deg,#0078D4 0%,#2B88D8 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.sidebar{position:fixed;top:var(--header-h);left:0;bottom:0;width:var(--sidebar-w);background:var(--bg-container);border-right:1px solid var(--border);overflow-y:auto;padding:1.25rem 0;z-index:90;}
.sidebar .toc-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);padding:0 1.25rem;margin-bottom:.75rem;font-weight:600;}
.sidebar nav a{display:block;padding:.45rem 1.25rem;color:var(--text-secondary);text-decoration:none;font-size:12px;line-height:1.4;border-left:2px solid transparent;transition:all .15s;}
.sidebar nav a:hover,.sidebar nav a.active{color:var(--color-primary);background:var(--color-primary-bg);}
.sidebar nav a.active{border-left-color:var(--color-primary);font-weight:600;}
.sidebar .nav-sep{height:1px;background:var(--border-light);margin:.5rem 1rem;}
.main{margin-left:var(--sidebar-w);margin-top:var(--header-h);padding:32px 40px 64px;max-width:1000px;}
h2{font-size:22px;line-height:30px;padding-bottom:8px;border-bottom:1px solid var(--border);margin:40px 0 20px;color:var(--color-primary);scroll-margin-top:calc(var(--header-h) + 1rem);}
h3{font-size:18px;line-height:26px;margin:28px 0 12px;color:var(--text-primary);scroll-margin-top:calc(var(--header-h) + 1rem);}
h4{font-size:15px;font-weight:700;margin:20px 0 8px;color:var(--text-primary);}
p{margin:8px 0;color:var(--text-secondary);line-height:1.65;}
blockquote{background:var(--color-primary-bg);border-left:4px solid var(--color-primary);margin:16px 0;padding:12px 20px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:14px;color:var(--text-primary);}
.code-block{background:#1E1E1E;color:#D4D4D4;border-radius:var(--radius-md);padding:16px 20px;margin:14px 0;font-family:'Cascadia Code','Fira Code','SF Mono',monospace;font-size:13px;line-height:1.7;overflow-x:auto;white-space:pre;}
.inline-code{background:var(--bg-elevated);color:var(--color-primary);padding:2px 6px;border-radius:var(--radius-xs);font-family:'Cascadia Code','Fira Code','SF Mono',monospace;font-size:13px;border:1px solid var(--border-light);}
.box{padding:14px 20px;border-radius:var(--radius-md);margin:18px 0;font-size:13px;line-height:1.6;}
.box-info{background:var(--color-primary-bg);border:1px solid #91CAFF;}
.box-good{background:var(--color-success-bg);border:1px solid var(--color-success-border);}
.box-warn{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);}
.box-idea{background:#F9F0FF;border:1px solid #D3ADF7;}
.box-danger{background:var(--color-error-bg);border:1px solid var(--color-error-border);}
.box h4{margin:0 0 8px;font-size:14px;}
.box-info h4{color:var(--color-primary);}.box-good h4{color:var(--color-success);}.box-warn h4{color:var(--color-warning);}.box-idea h4{color:#722ED1;}.box-danger h4{color:var(--color-error);}
.table-wrap{overflow-x:auto;margin:20px 0;border:1px solid var(--border);border-radius:var(--radius-md);}
table{width:100%;border-collapse:collapse;font-size:13px;}
th,td{padding:10px 14px;border:1px solid var(--border);text-align:left;vertical-align:top;line-height:1.5;}
th{background:var(--bg-elevated);font-weight:700;color:var(--text-primary);white-space:nowrap;}
td{background:var(--bg-container);color:var(--text-secondary);}
tr:hover td{background:var(--color-primary-bg);}
.tag{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:600;}
.tag-blue{background:var(--color-primary-bg);color:var(--color-primary);border:1px solid #91CAFF;}
.tag-green{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border);}
.tag-warn{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border);}
.tag-red{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border);}
.tag-purple{background:#F9F0FF;color:#722ED1;border:1px solid #D3ADF7;}
.steps{counter-reset:step;list-style:none;margin:16px 0;padding:0;}
.steps li{counter-increment:step;padding:12px 0 12px 42px;position:relative;color:var(--text-secondary);line-height:1.6;}
.steps li::before{content:counter(step);position:absolute;left:0;top:12px;width:28px;height:28px;background:var(--color-primary);color:#fff;border-radius:50%;text-align:center;line-height:28px;font-size:14px;font-weight:700;}
.prompt-template{background:#1E1E1E;border-radius:var(--radius-md);margin:14px 0;overflow:hidden;}
.prompt-template .pt-header{background:#333;color:#ccc;font-size:11px;padding:6px 16px;font-family:monospace;}
.prompt-template .pt-body{padding:14px 16px;color:#D4D4D4;font-family:'Cascadia Code','Fira Code','SF Mono',monospace;font-size:12px;line-height:1.6;white-space:pre-wrap;}
.kpi-row{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0;}
.kpi{flex:1;min-width:130px;background:var(--color-primary-bg);border-radius:var(--radius-md);padding:14px 12px;text-align:center;}
.kpi .num{font-size:22px;font-weight:800;color:var(--color-primary);line-height:1.2;}
.kpi .label{font-size:11px;color:var(--text-tertiary);margin-top:4px;}
.kpi.warn{background:var(--color-warning-bg);}.kpi.warn .num{color:#8A6D00;}
.kpi.good{background:var(--color-success-bg);}.kpi.good .num{color:var(--color-success);}
.kpi.danger{background:var(--color-error-bg);}.kpi.danger .num{color:var(--color-error);}
.footer{text-align:center;padding:28px 0;color:var(--text-tertiary);font-size:13px;border-top:1px solid var(--border-light);margin-top:40px;}
@media(max-width:1024px){:root{--sidebar-w:0;}.sidebar{display:none;}.main{margin-left:0;padding:24px 20px 48px;}}
@media(max-width:768px){.main{padding:20px 14px 40px;}.header h1{font-size:13px;}}
</style>
</head>
<body>
<header class="header">
<a href="../../index.html" class="back-link">← 返回知识库</a>
<h1>第五课:项目经理 — 开发计划·进度跟踪·风险管理</h1>
</header>
<aside class="sidebar">
<div class="toc-label">课程目录</div>
<nav>
<a href="#s0">课程目标</a>
<a href="#s1">PM 的 AI 工作流全景</a>
<a href="#s2">Part 1:开发计划</a>
<a href="#s2-1">WBS 拆解</a>
<a href="#s2-2">排期+资源</a>
<a href="#s3">Part 2:进度跟踪</a>
<a href="#s3-1">AI 读 Gitea</a>
<a href="#s3-2">周报日报</a>
<a href="#s4">Part 3:风险管理</a>
<a href="#s4-1">风险识别</a>
<a href="#s4-2">风险追踪</a>
<a href="#s5">现场演示</a>
<a href="#s6">课后作业</a>
</nav>
</aside>
<main class="main">
<section id="s0">
<h2>课程目标</h2>
<blockquote>
<p><strong>第五课结束后,每位 PM 应能:</strong></p>
<p>① 输入需求文档 → AI 自动生成 WBS + 里程碑 + 资源分配 + 甘特图数据<br>
② 从 Gitea 实时采集 commit/PR/Issue 数据 → AI 自动生成进度报告和偏差预警<br>
③ AI 识别项目风险(技术/人员/进度/需求)+ 给出缓解措施 + 持续追踪<br>
④ 管理文书时间从 2 天/周压缩到 2 小时/周</p>
</blockquote>
<div class="kpi-row">
<div class="kpi"><div class="num">2天→2h</div><div class="label">每周管理文书<br>从2天降到2小时</div></div>
<div class="kpi"><div class="num">实时</div><div class="label">进度数据<br>不再等日报</div></div>
<div class="kpi good"><div class="num">提前2周</div><div class="label">风险预警<br>不再是事后救火</div></div>
<div class="kpi warn"><div class="num">1 PM: 3-5 项目</div><div class="label">管理半径<br>AI 辅助后翻倍</div></div>
</div>
</section>
<section id="s1">
<h2>PM 的 AI 工作流全景</h2>
<blockquote>
<p>项目经理的日常三件套——做计划、盯进度、管风险——传统方式严重依赖手工 Excel、人工催进度、凭经验预判风险。AI 介入后,PM 的角色从<strong>"信息收集者+报表填写者"</strong>升级为<strong>"决策者+异常处理者"</strong></p>
</blockquote>
<div class="table-wrap">
<table>
<thead><tr><th style="width:12%;">场景</th><th style="width:36%;">传统方式</th><th>AI 方式</th></tr></thead>
<tbody>
<tr><td><strong>制定开发计划</strong></td><td>手写 WBS→Excel 排期→和开发逐个确认,2-3 天</td><td><span class="tag tag-green">AI 30 min</span>:需求→AI 拆 WBS→估算人天→输出甘特图数据</td></tr>
<tr><td><strong>进度跟踪</strong></td><td>每天催日报→手工汇总→Excel 画进度条,1h/天</td><td><span class="tag tag-green">AI 10 min/天</span>:Gitea 数据自动采集→AI 生成进度报告+偏差分析</td></tr>
<tr><td><strong>周报</strong></td><td>手工收集团队信息→写周报→画图表,3-4h/周</td><td><span class="tag tag-green">AI 10 min</span>:一键生成含甘特图/燃尽图/风险表格的周报</td></tr>
<tr><td><strong>风险识别</strong></td><td>靠 PM 个人经验,事后发现,被动救火</td><td><span class="tag tag-green">AI 持续分析</span>:commit 频率下降→预警,Bug 趋势上升→预警</td></tr>
<tr><td><strong>需求变更评估</strong></td><td>人工评估影响面,容易遗漏关联模块</td><td><span class="tag tag-green">AI 代码分析</span>:改这个接口→影响哪些模块→估算额外人天</td></tr>
<tr><td><strong>项目汇报</strong></td><td>精心准备 PPT,数据手工整理</td><td><span class="tag tag-green">AI 5 min</span>:生成汇报 PPT 大纲+数据图表+关键信息一页纸</td></tr>
</tbody>
</table>
</div>
</section>
<section id="s2">
<h2>Part 1AI 驱动开发计划制定</h2>
<h3 id="s2-1">2.1 从需求到 WBS</h3>
<h4>输入材料</h4>
<p>需求规格说明书(FS)、合同中的功能清单、技术方案中的模块划分——任何一个都可以。</p>
<div class="prompt-template">
<div class="pt-header"><span>WBS 生成 Prompt</span></div>
<div class="pt-body">"基于以下项目需求文档,生成详细的 WBS(工作分解结构)。
项目概况:
- 项目名称:XX 智慧管理平台
- 总工期:6 个月
- 团队规模:前端 2 人、后端 3 人、测试 1 人、PM 1 人
需求内容:
[此处粘贴 FS / 功能清单 / 合同范围]
请输出以下内容:
1. WBS 分解(最多 4 级)
- 一级:阶段(需求/设计/开发/测试/上线/运维)
- 二级:子系统/模块
- 三级:功能点/任务包
- 四级:具体任务(每个 ≤5 人天)
2. 每个四级任务的:
- 前置依赖(哪个任务必须先完成)
- 预估人天
- 负责角色(前端/后端/测试)
- 交付物
3. 识别关键路径(最长依赖链上的任务序列)
4. 里程碑建议(5-8 个,含验收标准)
输出格式:Markdown 层级列表 + 任务依赖关系图描述"</div>
</div>
<h3 id="s2-2">2.2 排期 + 资源分配</h3>
<div class="prompt-template">
<div class="pt-header"><span>排期+甘特图 Prompt</span></div>
<div class="pt-body">"基于上面的 WBS,生成详细的排期计划。
团队配置:
- 前端 AVue3 熟练,可用率 100%
- 前端 B:初级,可用率 80%(每周 1 天培训)
- 后端 AJava 主力,可用率 100%
- 后端 BJava+数据库,可用率 100%
- 后端 C:兼运维,可用率 60%(剩余时间在处理其他项目运维)
- 测试 A:可用率 100%
- PM:可用率 50%(同时管 2 个项目)
约束条件:
- 法定节假日:春节(2 月)、五一(5 月)、十一(10 月)
- 前端 A 在 8 月有 5 天年假
- 第三方接口联调需要提前 2 周预约
输出:
1. 按周的排期表(表格格式,列:周次/日期/任务/负责人/产出物/里程碑)
2. 资源负载热力图(每周每人负载百分比,标出超载风险)
3. 甘特图数据(任务名、开始日期、结束日期、负责人——可直接导入 Excel/Project/OminiPlan
4. 关键路径上的任务列表(标注:任何一个延期都会导致总工期延期)
5. 缓冲期建议(哪里应该放 buffer,放多少)"</div>
</div>
<div class="box box-idea">
<h4>💡 关键技巧</h4>
<p>让 AI 做排期时,<strong>必须明确告知团队成员的能力差异和可用率</strong>——不给这些信息,AI 会按"所有资源均等可用"来排,排出来的计划在实际中根本执行不了。</p>
</div>
<h3>2.3 需求变更影响评估</h3>
<div class="prompt-template">
<div class="pt-header"><span>变更影响分析 Prompt</span></div>
<div class="pt-body">"客户提出以下需求变更:
[描述变更内容]
我们当前项目的 WBS 和代码结构:
[粘贴 WBS 和目录结构]
请分析:
1. 这个变更影响哪些已有功能点?(精确到 WBS 的四级任务编号)
2. 哪些已完成的功能需要修改?(从 Git 提交历史推断已完成的模块)
3. 新增工作量估算:
- 前端:X 人天
- 后端:X 人天
- 测试:X 人天
4. 对关键路径的影响:总工期会延期几天?
5. 如果不同意变更,有什么替代方案可以部分满足客户需求?
6. 如果同意变更,建议从哪里削减其他范围来保工期?"</div>
</div>
</section>
<section id="s3">
<h2>Part 2AI 驱动的进度跟踪</h2>
<blockquote>
<p>这是第二课 Gitea 工作流的升级应用。PM 不再每天群里问"今天做了什么"——AI 从 Gitea 自动拿数据,生成比人写的更客观的进度报告。</p>
</blockquote>
<h3 id="s3-1">2.1 AI 读取 Gitea 数据</h3>
<div class="prompt-template">
<div class="pt-header"><span>Gitea 进度分析 Prompt</span></div>
<div class="pt-body">"以下是本周(2026-W23)项目 Gitea 仓库的提交数据。
请分析并生成进度报告:
1. 本周整体数据
- 总 commit 数、活跃开发者数
- 新增代码行数、删除行数
- 按开发者统计 commit 数和代码行数
- 与上周对比(增加/减少百分比)
2. 按功能模块分析
- 哪些模块本周有活跃开发?
- 哪些模块本周没有提交?(可能阻塞或延期)
- 哪些模块提交频率突然增加/减少?(标注异常)
3. 进度偏差
- 对照开发计划(粘贴 WBS),当前进度是超前/正常/滞后?
- 如果滞后,哪些任务滞后了多少天?
- 按照当前速度,预计完成日期
4. 代码质量
- 本周 commit message 规范性(符合 feat/fix/refactor 格式的比例)
- 是否有异常大的 commit(>500 行,说明可能缺少小步提交习惯)
- 是否有频繁 revert(说明质量控制有问题)
生成数据的方法:
git log --since='2026-06-02' --until='2026-06-07' --format='%h|%an|%ae|%ad|%s' --numstat
# 把上面命令的输出粘贴到下方:"</div>
</div>
<h3 id="s3-2">2.2 周报/日报自动生成</h3>
<div class="prompt-template">
<div class="pt-header"><span>周报一键生成 Prompt</span></div>
<div class="pt-body">"基于以下本周数据,生成一份项目经理周报。
本周数据:
- Gitea 提交汇总:[粘贴 git log 分析结果]
- 测试 Bug 汇总:[粘贴 Bug 列表]
- 本周完成的功能:[列出来]
- 本周遇到的问题:[列出来]
周报格式(面向客户和管理层):
1. 本周摘要(一段话,不超过 5 行)
2. 关键指标
| 指标 | 本周 | 上周 | 变化 |
提交数 / 活跃开发 / 新增代码行 / Bug 数 / Bug 关闭率
3. 本周完成(按模块列,每个 1-2 句话)
4. 下周计划(按优先级排序)
5. 风险与问题(红色=需管理层关注,黄色=已处理,绿色=已关闭)
6. 需要客户配合的事项(例如:需客户确认 XX 接口文档)
写作风格:客观、数据说话。多用数字,少用形容词。"</div>
</div>
<div class="box box-good">
<h4>✅ PM 的日报未来状态</h4>
<p>不再是 PM 催→开发写→PM 汇总。而是:<br>
① 每天上午 9 点,脚本自动从 Gitea 拉取昨天数据<br>
② AI 自动生成日报草稿<br>
③ PM 花 5 分钟审核、微调、发送<br>
④ 项目数据永远真实——基于 commit 而非基于记忆</p>
</div>
</section>
<section id="s4">
<h2>Part 3AI 驱动的风险管理</h2>
<h3 id="s4-1">3.1 风险自动识别</h3>
<div class="prompt-template">
<div class="pt-header"><span>风险扫描 Prompt</span></div>
<div class="pt-body">"请基于以下项目数据,扫描当前项目可能存在的风险。
数据源:
1. Gitea 过去 4 周的 commit 趋势:[数据]
2. Bug 追踪系统的 Bug 趋势:[数据]
3. 开发计划中的里程碑 vs 实际完成日期:[数据]
4. 团队人员变动:[数据]
5. 需求变更记录:[数据]
从以下维度识别风险:
1. 进度风险
- 哪些里程碑可能延期?概率多大?
- 关键路径上是否有任务阻塞?
- 连续 2 周 commit 频率下降→人员效率预警
2. 质量风险
- Bug 新增速度 > Bug 关闭速度→质量债务累积
- 某个模块 Bug 集中→可能设计有问题
- revert 频率上升→代码质量失控
3. 人员风险
- 某人 commit 突然大幅增加→可能在做不该做的重构
- 某人 commit 连续 3 天为零→离职前兆/严重阻塞
- 单点依赖——某个模块只有一个人在开发
4. 需求风险
- 需求变更频率 >1 次/周→范围蔓延
- 已开发完成的功能被要求修改→前期需求确认不足
对每个识别出来的风险,给出:
- 严重程度(🔴高 / 🟡中 / 🟢低)
- 发生概率(%
- 影响(延期天数/额外成本)
- 建议的缓解措施(具体可执行的动作)"</div>
</div>
<h3 id="s4-2">3.2 风险登记册与追踪</h3>
<div class="prompt-template">
<div class="pt-header"><span>风险追踪 Prompt</span></div>
<div class="pt-body">"维护一份项目风险登记册(Risk Register),格式如下:
| 编号 | 风险描述 | 类型 | 严重度 | 概率 | 影响 | 提出日期 | 负责人 | 缓解措施 | 当前状态 | 关闭日期 |
请基于我之前提供的项目数据,填充已知风险。之后每两周更新一次状态。
更新时,我提供最新数据,你对比:
- 哪些风险状态变化了?(🟡→🔴 升级 / 🔴→🟢 缓解)
- 是否有新风险出现?
- 哪些风险可以关闭?
- 当前风险敞口(所有未关闭风险的预期损失总和)
本次的基础数据:
[粘贴最新一周的 Gitea/Bug/里程碑数据]"</div>
</div>
<h3>3.3 风险看板</h3>
<div class="prompt-template">
<div class="pt-header"><span>风险一页纸 Prompt</span></div>
<div class="pt-body">"基于风险登记册的最新状态,生成一份面向管理层的风险一页纸报告:
1. 风险仪表盘(四个色块):
🔴 高严重度未关闭:X 个
🟡 中严重度未关闭:X 个
🟢 已关闭本月:X 个
📊 风险敞口:预计 X 人天 / ¥X 万元
2. Top 3 风险详述(每个含:当前状态、最新进展、下一步动作)
3. 风险趋势图描述(最近 4 周风险数量变化:5→3→4→2,用文字描述趋势)
4. 一句话总结(给管理层的结论和建议)"</div>
</div>
</section>
<section id="s5">
<h2>现场演示路线</h2>
<div class="table-wrap">
<table>
<thead><tr><th style="width:6%;">#</th><th style="width:26%;">步骤</th><th style="width:10%;">工具</th><th style="width:10%;">用时</th><th>演示要点</th></tr></thead>
<tbody>
<tr><td>1</td><td>需求→WBS</td><td>Claude Code</td><td>5 min</td><td>给一份 FS→AI 输出完整 WBS+依赖关系→PM 验证合理性</td></tr>
<tr><td>2</td><td>WBS→排期</td><td>Claude Code</td><td>5 min</td><td>加入团队约束→AI 排期→输出甘特图数据→展示资源负载</td></tr>
<tr><td>3</td><td>Gitea→进度分析</td><td>终端+Claude</td><td>5 min</td><td>git log→粘贴→AI 输出本周进度分析+偏差预警</td></tr>
<tr><td>4</td><td>生成周报</td><td>Claude Code</td><td>3 min</td><td>一键生成含数据图表的周报→PM 审核 5 分钟可发送</td></tr>
<tr><td>5</td><td>风险扫描</td><td>Claude Code</td><td>5 min</td><td>基于历史数据→AI 识别出"前端 A 下月休假 5 天→关键路径风险"</td></tr>
<tr><td>6</td><td>学员动手</td><td>各人电脑</td><td>15 min</td><td>用自己的项目数据走通 WBS+进度分析+风险识别</td></tr>
</tbody>
</table>
</div>
<div class="box box-info">
<h4>演示关键信息</h4>
<p><strong>核心要传递的信息</strong>:PM 的价值不在填表——在判断和决策。AI 帮 PM 把 80% 的"信息搜集+格式整理"工作自动化,让 PM 的时间花在"这个风险该怎么处理""客户这个要求怎么响应"上。</p>
</div>
</section>
<section id="s6">
<h2>课后作业</h2>
<ol class="steps">
<li><strong>为一个真实项目生成 WBS</strong>:用 AI 把正在管的项目的 FS 拆成 WBS,和现在手工版的 WBS 做对比——AI 遗漏了什么?AI 多拆了什么?</li>
<li><strong>跑通 Gitea→进度报告</strong>:git log 导出→喂给 AI→生成进度报告。对比和你手工写的周报,看 AI 报告有没有发现你没注意到的事</li>
<li><strong>建风险登记册</strong>:为当前项目建一份风险登记册,用 AI 做第一次风险扫描。两周后更新一次,看 AI 识别出的风险和实际发生的风险是否匹配</li>
</ol>
<div class="box box-good">
<h4>✅ 五课毕业标准(全角色)</h4>
<p><strong>开发岗</strong>Claude Code ✓ · Gitea Push ✓ · 5+ AI commit · 去版权+风格统一完成<br>
<strong>售前岗</strong>:1 个真实 Demo ✓ · 1 份 AI 投标方案草稿 ✓<br>
<strong>PM 岗</strong>1 个 AI 生成 WBS ✓ · 1 份 AI 周报 ✓ · 1 份风险登记册 ✓<br>
<strong>全员</strong>DeepSeek Token ✓ · Cherry Studio ✓ · 每天使用 AI ≥1 次</p>
</div>
</section>
<footer class="footer">
<p>AI 工具实操培训 · 第五课 · V1.0 · 2026-06-06</p>
<p style="margin-top:4px;">课程体系:<a href="ai-tools-hands-on-training.html" style="color:var(--color-primary);">第一课</a> | <a href="ai-tools-training-lesson2-gitea.html" style="color:var(--color-primary);">第二课</a> | <a href="ai-tools-training-lesson3-presales-demo.html" style="color:var(--color-primary);">第三课</a> | <a href="ai-tools-training-lesson4-bidding.html" style="color:var(--color-primary);">第四课</a></p>
</footer>
</main>
<script>
(function(){
const navLinks = document.querySelectorAll('.sidebar nav a');
const sections = document.querySelectorAll('section[id]');
function onScroll(){
let current = '';
sections.forEach(function(sec){ if(window.scrollY >= sec.offsetTop - 100) current = sec.id; });
navLinks.forEach(function(a){ a.classList.toggle('active', a.getAttribute('href') === '#' + current); });
}
window.addEventListener('scroll', onScroll, {passive:true});
})();
</script>
</body>
</html>