一、项目准备阶段(Scrum Master + PO)
1. 定义愿景 & 范围
- 愿景:为车企构建一个高效、安全、可扩展的采购系统,覆盖 采购申请 → 审批 → 下单 → 供应商对接 → 支付 → 报表。
- 最小可行产品 (MVP):先上线采购申请、审批、下单。
📌 产出:在 Confluence 写下《产品愿景与范围文档》。
2. 搭建工具体系
- Jira:新建一个 Scrum Software 项目,配置好 Epic/Story/Task 模板。
- Confluence:作为文档库,存放愿景、需求规格、架构设计、会议纪要。
- GitHub/GitLab:源代码仓库,按 microservice 模块 或 单体仓库+模块目录 管理。
- GitLab CI/CD:流水线配置,负责 构建 → 测试 → 制品(Docker 镜像) → 部署到 K8s。
- K8s + Helm:部署环境,提供 测试环境 / UAT / 生产环境。
二、敏捷实践(Scrum 流程)
1. Backlog 建立(PO 负责)
在 Jira 里创建以下 Epic:
- Epic-1: 用户与权限管理
- Epic-2: 采购申请流程
- Epic-3: 审批与下单
- Epic-4: 供应商对接
- Epic-5: 支付与报表
- Epic-6: 系统运维与监控
每个 Epic 下拆分 Story(用户故事),例如:
- Story: 作为采购人员,我希望能提交采购申请,以便走审批流程。
再将 Story 拆成 Task(开发/测试/运维任务):
- Task: 设计采购申请表结构(数据库)
- Task: 实现采购申请 API
- Task: 前端页面开发
- Task: 单元测试与集成测试
📌 最佳实践:Story 用 用户语言,Task 用 开发语言。
2. Sprint 计划(Scrum Master 主持)
- Sprint 周期:2 周
- Sprint-1 目标:实现用户注册/登录 + 提交采购申请
- Sprint-2 目标:实现审批流程 + 下单
- Sprint-3 目标:实现供应商接口对接
- Sprint-4 目标:实现支付 + 报表
- Sprint-5 目标:运维与性能优化
在 Sprint Planning 中:
- PO 提供 优先级排序后的 Backlog
- 团队估算 Story Points(工作量)
- Scrum Master 监督 可交付性
3. 日常敏捷实践
-
Daily Scrum(站会):每天 15 分钟,回答 3 个问题:
- 昨天完成了什么?
- 今天计划做什么?
- 有什么阻碍?
- Sprint Review(评审):演示已完成的功能给 PO & 业务方。
- Sprint Retrospective(回顾):团队总结改进点。
三、技术落地 Demo
1. Git 流程
采用 GitLab Flow:
main
→ 稳定分支develop
→ 集成分支feature/*
→ 功能分支release/*
→ 预发布hotfix/*
→ 紧急修复
2. GitLab CI/CD Pipeline (示例 .gitlab-ci.yml
)
stages:
- build
- test
- docker
- deploy
build:
stage: build
script:
- mvn clean package -DskipTests
artifacts:
paths:
- target/*.jar
test:
stage: test
script:
- mvn test
docker-build:
stage: docker
script:
- docker build -t registry.example.com/purchase-service:$CI_COMMIT_SHA .
- docker push registry.example.com/purchase-service:$CI_COMMIT_SHA
deploy:
stage: deploy
script:
- helm upgrade --install purchase-service ./helm/purchase-service \
--set image.tag=$CI_COMMIT_SHA
environment:
name: dev
url: http://purchase.dev.company.com
3. Helm Chart (示例 values.yaml
)
replicaCount: 2
image:
repository: registry.example.com/purchase-service
tag: "latest"
service:
type: ClusterIP
port: 8080
resources:
limits:
cpu: "500m"
memory: "512Mi"
4. 监控与日志
- 在 K8s 部署 Prometheus + Grafana → 监控 API 延迟、错误率。
- 部署 EFK(Elasticsearch + Fluentd + Kibana) → 日志收集与可视化。
四、Scrum Master & PO 的日常角色
-
作为 PO:
- 维护 Product Backlog
- 确保优先级和需求清晰
- 和业务方沟通需求
-
作为 Scrum Master:
- 确保团队遵守敏捷原则
- 主持 Sprint Planning / Daily / Review / Retrospective
- 解决阻碍(技术、资源、跨部门)
五、Confluence 知识库结构(推荐)
- 产品愿景与范围
- 需求规格文档(分 Epic/Story)
- 架构设计(微服务图、数据库设计、K8s 拓扑)
- CI/CD 流程文档
- 运维手册(监控告警、日志分析)
- Sprint 回顾总结
六、敏捷落地指南:如何高效拆分 Story 和估算 Story Points
关于如何搭建 Epic, Story, Task,以及如何向组员讲清 Story Points,核心原则是“从业务价值出发,先简单后复杂”,避免为了“敏捷形式”而过度拆分。以下是具体落地指南:
一、需不需要建Epic和Story?看“需求规模”和“团队协作效率”
- 核心判断标准:如果一个需求大到“无法在1个冲刺(Sprint)内完成”,或“需要拆分给多个角色(开发/测试/设计)协作”,就需要用Epic和Story拆分;小需求(如1人1天能做完的bug修复)可直接用“Task”,无需过度拆分。 层级 适用场景 核心作用 Epic(史诗) 大型、跨多个冲刺的需求(如“用户支付模块重构”“APP登录功能升级”) 聚合相关Story,方便跟踪“大需求”的整体进度 Story(用户故事) 1个冲刺内可完成、聚焦“用户价值”的具体需求(如“用户可通过手机号验证码登录”“支付失败时显示错误提示”) 明确“做什么对用户有价值”,方便团队认领和估算 Task(任务) 拆分Story的具体执行步骤(如“编写登录接口”“设计验证码输入页”“测试支付失败场景”) 把Story拆解为“可执行的最小单元”,方便每日同步进度
二、如何建Epic和Story?按“业务价值→用户视角→可交付”三步拆
- 建Epic:聚焦“大目标”,不纠结细节
-
创建逻辑:以“业务目标”为核心,名称体现 “要解决的问题”,而非“要做的功能”。
-
示例:
-
❌ 错误:“开发支付模块”(只说功能,不说价值)
-
✅ 正确:“优化支付流程,降低用户支付失败率”(明确业务目标)
-
-
JIRA配置(极简版):
-
类型选“Epic”,填写“名称”和“描述”(描述清楚Epic的业务背景和最终目标);
-
无需加过多字段,初期只留“负责人”(通常是PO或核心业务负责人)和“优先级”。
-
- 建Story:用“用户故事三要素”确保清晰
-
Story 的核心是 “从用户视角描述价值”,避免写成“技术任务”。用经典的“3C原则” 搭建:
-
Card(卡片):简短描述“谁要做什么,为什么”,格式:作为[用户角色],我想[做什么操作],以便[获得什么价值]。
-
示例:
-
❌ 错误:“开发验证码发送接口”(技术视角,无用户价值)
-
✅ 正确:“作为APP新用户,我想通过手机号接收验证码,以便快速完成注册”(用户视角+价值)
-
-
Conversation(对话):Story卡片只写核心信息,细节通过“对话”补充(如需求评审会、Confluence文档)。
-
操作:在JIRA的Story描述中,附上Confluence需求文档链接,或直接记录“验收标准”(如“验证码有效时间5分钟”“连续3次输错需重新发送”)。
-
Confirmation(确认):明确“如何判断Story完成”,即验收标准(Acceptance Criteria),避免开发和测试理解偏差。
-
示例:Story“用户可通过手机号验证码登录”的验收标准:
-
输入手机号后,点击“发送验证码”,60秒内收到短信;
-
输入正确验证码,点击“登录”,跳转至首页;
-
输入错误验证码,显示“验证码错误,请重新输入”提示。
-
- (可选)Story拆分为Task:拆到“1人1-2天能做完”
-
如果一个Story工作量较大(如“开发登录功能”可能需要3天),可拆分为多个Task,确保每个Task是“最小执行单元”:
-
示例:Story“用户可通过手机号验证码登录”拆分为:
-
Task1:设计验证码登录页面UI(设计师,1天)
-
Task2:编写手机号验证接口(后端开发,1天)
-
Task3:开发前端验证码输入和提交逻辑(前端开发,1天)
-
Task4:编写登录功能测试用例并执行测试(测试,1天)
-
三、如何给组员讲清楚Story Points(故事点)?用“共识+类比”替代“精确计算”
Story Points的核心是“团队对‘工作量相对大小’的共识”,不是“具体工时(如几小时)”,新手最容易陷入“纠结点数对应多少小时”的误区,需先明确3个核心认知,再用“三步教学法”让组员理解:
- 先统一3个核心认知(避免误解)
-
认知1:Points是“相对值”,不是“绝对值”。比如:团队认为“登录功能”是5点,“修复一个简单bug”是1点,代表“登录功能的工作量约是这个bug的5倍”,不用纠结“5点等于几小时”。
-
认知2:Points包含“工作量+复杂度+风险”。比如:同样是“开发一个接口”,简单的查询接口可能是1点,涉及第三方支付的复杂接口可能是3点(因复杂度和风险更高)。
-
认知3:Points是“团队共识”,不是“个人判断”。即使个人觉得某个Story是2点,只要多数人认为是3点,就按3点算,避免争执。
- 用“三步教学法”让组员快速上手
第一步:选“基准Story”,建立“点数锚点”
找1个团队都熟悉的“最小工作量需求”作为“1点基准”,让大家对“点数大小”有直观感知:
-
示例:“修复一个‘按钮文字错误’的bug(只需改1行文案,测试1分钟)”= 1点;
-
以此类推,大家可快速联想:“修复一个‘页面样式错乱’的bug(需改CSS,测试多个浏览器)”≈ 2点;“开发一个‘简单查询接口’(无需复杂逻辑,1天做完)”≈ 3点。
第二步:用“斐波那契数列”简化估算(1, 2, 3, 5, 8, 13)
不用连续数字(如1,2,3,4,5),因为数字越接近,越容易纠结“2点和3点的区别”;斐波那契数列(1,2,3,5,8)的间隔更大,强迫团队聚焦“相对大小”,而非“精确计算”。
- 操作:估算时,团队成员每人用手势比出自己认为的点数(如比“1”代表1点,比“5”代表5点),如果不一致,让点数差异大的人说说理由(如“我觉得是5点,因为要对接第三方,有不确定性”),再重新投票,直到多数人达成共识。
第三步:用“日常类比”帮新手理解(避免技术术语)
如果组员对“点数”仍陌生,用生活中的“工作量类比”举例,快速建立认知:
-
1点:像“泡一杯咖啡”(简单、无意外,5分钟搞定);
-
2点:像“做一份简单的早餐(煎蛋+面包)”(比泡咖啡复杂一点,15分钟);
-
3点:像“做一顿午餐(一荤一素)”(需要准备食材、烹饪,1小时);
-
5点:像“周末大扫除(扫地、擦窗、整理衣柜)”(工作量大,半天时间);
-
8点:像“筹备一次家庭聚餐(买菜、做饭、收拾)”(复杂且耗时,1天)。
- 初期允许“估算不准”,通过回顾会调整
不用追求“第一次就估对”,首个冲刺结束后,在回顾会上对比“估算点数”和“实际耗时”:
- 比如:团队估3点的Story,实际用了2天;估5点的Story,实际用了1天——让大家一起分析原因(如“3点的Story没想到要对接第三方,低估了复杂度”),下次估算时更精准。
总结:落地顺序建议
-
先从“1个Epic+3-5个Story”开始(比如下一个冲刺的需求),不用拆太多;
-
用“用户故事三要素”写清楚每个Story,附上验收标准;
-
选1个“1点基准”,用斐波那契数列和“生活类比”带组员做首次估算;
-
冲刺结束后,通过回顾会优化拆分和估算方式,逐步形成团队习惯。