20-无人售货柜全项目研发管理复盘:从需求到量产完整流程落地总结
黒漂技术佬 出品 | CSDN原创
大家好,我是黒漂技术佬。这是CMMI3系列的收官篇,我们用一个真实项目——无人售货柜,把前面19篇文章的知识体系完整串联起来,做个全景复盘。
无人售货柜是个典型的"软硬一体+AI"项目,涉及嵌入式(瑞芯微RK3568)、计算机视觉(YOLO目标检测+商品识别)、云服务(SaaS架构)、微信支付等。研发周期大约9个月,从需求到量产交付,经历了完整的CMMI3轻量流程。
一、项目全景回顾:从0到1的完整链路
1.1 项目背景
客户需求:打造一款智能无人售货柜,用户扫码开门→取货→关门自动结算,后端配套运营管理平台。
技术栈一览:
- 前端:Android(售货柜屏幕)+ Vue.js(管理后台)+ 微信小程序(用户端)
- 后端:Java SpringBoot + Python(AI推理服务)
- 算法:YOLOv8 商品检测 + 目标跟踪 + 动作识别
- 嵌入式:瑞芯微RK3568 + Android 12 + 摄像头驱动
- 硬件:称重传感器、电子锁控板、4G通信模块
- 云服务:SaaS多租户架构,K8s部署
1.2 完整阶段链路
下面用时间线串起来,每个阶段对应CMMI3的哪些过程域,以及实际踩过的坑。
阶段一:需求阶段(Month 1,对应RD/REQM)
| 活动 | 产出 | 踩坑实录 |
|---|---|---|
| 需求调研 | 《市场需求文档》 | 客户说"AI识别要100%准确",技术上不可能。做了需求澄清:正常光照>98%,弱光>95%,遮挡不做承诺 |
| 需求评审 | 评审记录+问题跟踪表 | 评审时算法组和嵌入式组吵起来了——谁负责图像预处理?最终定了:嵌入式负责采集和基础处理,算法负责推理 |
| 需求基线 | V1.0需求规格说明书 | 用Jira管理,每条需求标注优先级和验收标准 |
CMMI3要点:需求必须逐条评审,评审记录存档,变更走CCB流程。我们用飞书文档做需求规格,Jira做需求条目化管理。
阶段二:设计阶段(Month 1-2,对应TS/PI)
| 活动 | 产出 | 踩坑实录 |
|---|---|---|
| 概要设计 | 系统架构图、技术选型文档 | 最初选了TensorFlow Lite做端侧推理,发现RK3568的NPU对ONNX支持更好,切换到ONNX Runtime,技术选型要早验证 |
| 详细设计 | 核心模块设计文档(开门控制、商品识别、支付结算) | 支付回调的幂等性设计漏了,测试时才发现重复扣款的风险,紧急加分布式锁 |
| 接口设计 | API接口文档(Swagger自动生成) | 前后端联调时发现版本不匹配,从此定了规矩:接口文档跟着Feature分支一起提交 |
CMMI3要点:设计评审不能走过场。我们用"预审+正式评审"两轮制,第一轮技术负责人看,第二轮全团队看。
阶段三:开发迭代(Month 2-7,对应PP/PMC/CM)
共6个Sprint,每个Sprint两周:
| Sprint | 目标 | 关键事件 |
|---|---|---|
| Sprint 1 | 嵌入式底层打通:摄像头采集+MQTT通信 | 顺利 |
| Sprint 2 | YOLO模型部署到RK3568 NPU | 模型转换遇到精度损失,调了一周 |
| Sprint 3 | 开门控制+称重传感器联动 | 顺利 |
| Sprint 4 | 商品识别核心算法+支付闭环 | 算法准确率不够,加了后处理逻辑 |
| Sprint 5 | 管理后台+小程序端联调 | 接口联调期间发现3个性能瓶颈 |
| Sprint 6 | 全链路压测+缺陷修复 | 发现MQTT断连重连机制不可靠 |
迭代管理实践:
- 每日站会15分钟,只说三句话:昨天做了什么、今天做什么、有什么阻塞
- Sprint评审会:演示可工作的软件(不是PPT!),每次都有客户参与
- Sprint回顾会:用的"Start/Stop/Continue"模板,简单有效
CMMI3要点:迭代计划必须可视化。我们用Jira的Sprint Board,燃尽图每周更新,Velocity稳定在18-22点。
阶段四:测试验证(Month 7-8,对应VER/VAL)
| 测试类型 | 内容 | 实际数据 |
|---|---|---|
| 单元测试 | 核心模块覆盖率>70% | 实际达到76% |
| 集成测试 | 前后端联调+算法联调 | 发现23个集成Bug |
| 系统测试 | 全功能覆盖 | 测试用例186条,通过率94% |
| 验收测试 | 场景:扫码→开门→取货→关门→扣款 | 关键路径P0 Bug清零 |
| 性能测试 | 并发支付/100台设备在线 | 支付接口P99<200ms |
| 稳定性测试 | 柜子连续运行72小时 | MTBF达标(>500小时) |
关键踩坑:
- 商品识别的边界场景测试不足:空手关门、多人同时取货、商品遮挡、快速开关门。补了40条测试用例才覆盖全
- AI模型的"过拟合"问题:训练集上的准确率96%,实际场景84%。原因:训练数据采集环境太理想,加了各种光照和角度数据后提升到93%
CMMI3要点:测试必须可追溯。每条测试用例关联需求,每个Bug关联测试用例,形成"需求→用例→Bug→修复"的完整闭环。
阶段五:灰度发布(Month 8,对应VAL/PMC)
灰度策略:三阶段推进
| 阶段 | 范围 | 观察指标 | 持续时间 |
|---|---|---|---|
| 内部灰度 | 公司内5台设备 | 功能完整性、识别准确率 | 2周 |
| 小范围灰度 | 客户现场10台设备 | 网络稳定性、支付成功率 | 2周 |
| 全量发布 | 全部50台设备 | 整体运营指标 | 持续监控 |
灰度期间的应急机制:
- 远程OTA回滚能力(固件v1.0→v1.1→回滚v1.0的路径提前测试过)
- 灰度开关(后端配置,不用发版就能切流量)
- 7×24小时值班(第一个月安排轮流值班)
CMMI3要点:灰度发布有明确的准入准出标准。准出条件:支付成功率>99%、设备在线率>95%、识别准确率>92%。
阶段六:量产交付(Month 9,对应PI/VAL)
量产阶段的关键动作:
| 动作 | 内容 | CMMI3对应 |
|---|---|---|
| 固件版本归档 | v1.2.0量产版本,烧录包+校验工具存档 | CM配置管理 |
| 生产SOP | 烧录指南、组装手册、质检标准 | 组织过程资产 |
| 交付验收 | 客户现场验收测试,签字确认 | VAL确认 |
| 运维移交 | 部署文档、故障手册交付运维团队 | 文档体系 |
| 复盘总结 | 项目复盘报告(本文就是) | 过程改进 |
二、系列核心知识点回顾
整个20篇系列,我们从CMMI3的基础概念一路走到实战落地,核心知识体系总结如下:
| 知识域 | 核心要点 | 对应文章 |
|---|---|---|
| 需求管理 | 需求追踪矩阵、变更控制CCB | 第7-8篇 |
| 项目策划 | WBS分解、估算、计划 | 第5-6篇 |
| 项目监控 | 进度跟踪、偏差分析 | 第9篇 |
| 版本基线 | Git Flow、分支策略、版本发布 | 第3-4篇 |
| 配置管理 | CI/CD流水线、自动化构建 | 第2篇 |
| 质量保证 | QA检查表、PPQA流程 | 第10-11篇 |
| 测试验证 | 测试流程、测试用例管理 | 第12-13篇 |
| 风险管理 | 风险识别、应对策略、跟踪 | 第14篇 |
| 供应商管理 | 外包管控、验收标准 | 第15-16篇 |
| 文档体系 | 四类文档、归档策略 | 第17篇 |
| 度量分析 | 三维指标、数据驱动改进 | 第18篇 |
| 认证落地 | 过程域选型、内审、评估 | 第19篇 |
三、CMMI3轻量落地的心得体会
技术佬做了两年CMMI3轻量落地,总结五点最深的体会:
1. 流程是骨架,习惯是肌肉。
定义流程只需要两周,但让团队养成按流程做事的习惯需要两三个月。别急,循序渐进。
2. 工具比文档更重要。
一份好的Jira配置比十份流程文档都有用。流程嵌入工具,团队不知不觉就在按流程走。
3. 证据在平时,别最后补。
最痛苦的不是写文档,是补证据。评审完了顺手截个图、写两行纪要,比最后翻聊天记录找证据强一百倍。
4. 度量不是目的,改进才是。
度量数据不是为了给老板看,是为了发现流程中的问题。Velocity下降了,不是骂团队,是找原因。
5. CMMI3不是终点,是起点。
拿了证不意味着管理能力到位了。真正的收获是过程中建立的那套"能自我改进"的机制。
四、对小微团队的方法论收尾总结
小微企业做CMMI3,技术佬给三句话:
第一句:别怕。CMMI3没有那么恐怖,你日常已经在做一大半了,只是不够规范、不够系统。借这个机会整理一下,利大于弊。
第二句:别飘。不要为了拿证而拿证,证书是结果,能力才是目的。流程应该是"你本来就这么做"的规范化,而不是凭空造一套没人用的纸面流程。
第三句:别停。CMMI3认证通过后,持续改进不要停。每个季度做一次回顾,看度量数据,调流程,让管理体系像代码一样持续迭代。
整个系列到此完结。技术佬写这20篇,初衷是把自己在智慧农业、无人零售领域做CMMI3轻量落地的实战经验完整记录下来。如果能帮到三五家小团队少走弯路,这几十个小时的写作就值了。
感谢一路读到这里的你。研发管理这条路没有终点,但每一步都算数。