建立可持续的日常维护和迭代节奏,确保系统长期健康运行,用户反馈被有效处理,产品持续演进而非"上线即 abandoned"。
- 产品上线后的日常运维
- 每个迭代周期开始/结束
- 收到用户反馈/Bug 报告
- 定期系统健康检查
- 规划下一迭代内容
每日(5 分钟):
- 服务运行正常?(监控仪表盘无红色)
- 有无新增 ERROR 日志?
- 备份是否成功执行?
- 磁盘/内存使用率正常?
每周(30 分钟):
- 依赖有无安全更新?(Dependabot PR)
- 错误率趋势是否正常?
- 性能指标有无退化?
- 用户反馈有无未处理项?
- 证书/域名是否即将过期?
每月(1-2 小时):
- 全量依赖更新评估
- 技术债务清单审查
- 文档准确性检查
- 备份恢复演练(每季度)
- 安全扫描
- 清理过期日志/临时文件
反馈分类与响应时间:
| 类型 | 响应时间 | 处理方式 |
|---|---|---|
| 系统崩溃/数据丢失 | 立即 | 紧急修复流程 |
| 功能不可用 | 4 小时 | 当日修复 |
| 功能异常但有替代 | 24 小时 | 纳入最近迭代 |
| 体验优化建议 | 3 天 | 评估后纳入 backlog |
| 新功能需求 | 1 周 | 评估优先级排入规划 |
处理流程:
- 记录反馈(来源/描述/复现步骤)
- 分类和优先级判断
- 回复用户(确认收到 + 预期时间)
- 纳入 backlog 或立即处理
- 修复后通知用户
- 关闭反馈
推荐节奏(个人开发):
- 迭代周期:2 周
- 每周有效开发时间:20-30 小时(含维护)
- 维护占比:20%(Bug 修复/依赖更新/技术债)
- 新功能占比:80%
迭代周期:
第 1 天:迭代规划(选 backlog、定目标)
第 2-12 天:开发 + 每日小检查
第 13 天:集成测试 + 修复
第 14 天:发布 + 迭代回顾
迭代回顾问题:
- 这个迭代完成了什么?
- 什么没完成?为什么?
- 有什么做得好的?继续保持
- 有什么做得不好的?如何改进?
- 下个迭代要调整什么?
分级处理:
- 安全补丁(高危):24h 内更新
- 小版本更新(patch):每周批量处理
- 中版本更新(minor):每两周评估
- 大版本更新(major):单独排期,充分测试
更新流程:
- 在独立分支更新
- 运行全量测试
- 检查 Breaking Changes
- 验证功能正常
- 合并
持续关注指标:
- API 响应时间趋势(P95)
- 错误率趋势
- 资源使用率(CPU/内存/磁盘)
- 数据库连接数/慢查询
- 用户量/流量增长
退化响应:
- 指标退化 20% → 记录观察
- 指标退化 50% → 排查原因
- 影响用户体验 → 优先修复
- 日常巡检清单已建立
- 用户反馈有处理流程
- 迭代节奏已确定
- 每个迭代有回顾
- 依赖更新有策略
- 性能指标持续监控
- 维护时间已预留(20%)
- 证书/域名过期有提醒
| 输出物 | 格式 | 存放位置 |
|---|---|---|
| 巡检记录 | 清单 | 自动化工具/日志 |
| 迭代计划 | 文档 | docs/sprints/ |
| 迭代回顾 | 文档 | docs/retrospectives/ |
| 用户反馈记录 | 表格 | Issue tracker |
| 误区 | 正确做法 |
|---|---|
| 上线后就不管了 | 定期巡检,持续维护 |
| 所有时间都做新功能 | 预留 20% 给维护和技术债 |
| 用户反馈不回复 | 即使不能立即修,也要确认收到 |
| 依赖几年不更新 | 定期更新,避免积累到无法升级 |
| 不做迭代回顾 | 回顾是持续改进的基础 |