诸葛亮会议

一、项目目标与前期准备
我们的应急演练系统核心解决课堂任务分配混乱的问题:
老师端:创建任务(如3号楼火灾逃生)、设定时间、分配班级
学生端:手机接收任务,模拟选择逃生路线,提交结果
系统:自动计算成绩(基于路线正确性和用时)

时间不足的真相:
原计划8周,实际压缩到5周。期中考试前两周完全停滞,最后三周每天只能挤3小时开发。前期调研只做了两件事:

问了需要哪些功能

在朋友圈发电子问卷(40人回收32份)

团队决策的优缺点:
当争论先做任务分配还是成绩统计时,举手表决(2比1)虽然快,但投反对票的刘浩宇后来提出:成绩算法如果早点做,能避免后面大改。这让我们意识到:关键功能争议需深入讨论。

用户反馈的深层分析:
好评集中在任务流程清晰(老师发任务成功率达100%,学生接收率98%)
差评聚焦在成绩计算:
有人选对路线但超时1秒扣10分(规则太死板)
安卓机计算耗时比电脑慢3倍(未做手机端优化)

核心教训:学生项目必须抓大放小,下次先死磕老师发任务到学生做演练主流程,成绩显示用简单文字(如合格或不合格),复杂算法留到V2.0。

二、计划执行全记录
未完成功能的代价:
实时排行榜缺失,老师无法课堂激励学生
任务进度条未做,学生中途退出率增加15%

后悔事项的细节:
美化老师后台界面:
花2天调整按钮颜色和布局
上线后发现老师平均使用时间仅3分钟每次
血泪领悟:用户看不见的界面不必精致
数据库过度设计:
建了任务表、学生表、成绩表、路线表、日志表
实际日志表只用了两次,完全可合并到成绩表

任务定义的正反案例:
好任务示例:建任务表含ID名称截止时间(刘浩宇2天完成)
问题任务示例:优化系统性能(无人认领最后不了了之)
开发任务下发接口POST api task(陈柏龙完成)
提升用户体验(杨家兴随意加了两个动画)

计划崩盘关键点:

后端延迟4天:
陈柏龙用Servlet写任务分配API时
卡在批量分配班级逻辑(需循环处理30人)
最终删减为每次只能分配1个班

缓冲区失效:
预留的1周缓冲时间
被数据结构突击考试和实验报告挤占

下次计划铁律:
所有任务时间乘1.5(尤其数据库和接口)
考试周只做文档维护,不写新代码

三、变更管理的实战经验
紧急暂停按钮事件全回顾:
时间:上线前3天
需求:老师要求添加一键暂停所有学生任务
代价:
后端:陈柏龙连夜加pause_flag字段
前端:杨家兴重写任务状态检查逻辑
测试:压缩到半天,漏测低端手机
结果:华为手机暂停功能卡死(发布后才发现)

功能取舍标准优化:
新制定三级优先级:
P0:没它系统跑不通(发任务和做演练)
P1:影响核心体验(成绩显示)
P2:锦上添花(点赞和分享)
所有P2功能直接砍掉

最痛领悟:临时加需求像补飞行中的飞机引擎,下次必须在项目启动时明确:最后两周需求冻结,天王老子也不加。

四、开发踩坑全纪实
设计阶段的成功经验:
三人用周末4小时在白板画出完整流程:
老师创建任务,任务存入数据库,学生刷新获取,提交选择路线,计算成绩,存入数据库
关键决策:所有状态实时存数据库(不依赖前端缓存),避免页面刷新丢失进度。

并发提交Bug剖析:
现象:20人同时提交时,8人提示提交失败
挖坟排查:

发现MySQL表锁冲突

根源:UPDATE成绩表未用事务
解决:重写为:
connection.setAutoCommit(false)
更新成绩逻辑
connection.commit()

安卓机显示错位的背后:
测试时用Chrome手机模拟器,一切正常
真机实测发现:
OPPO A32:地图组件溢出屏幕
红米Note:按钮点击区域偏移
根源:前端用vw单位未适配小屏
补救:发布后紧急添加媒体查询:
@media (max-width: 480px)

代码检查的遗憾:
后端Java严格走查(如命名getTaskList)
前端CSS零审查,结果:
5个页面有3套颜色方案
登录页字体比主界面大两倍

五、测试发布踩雷实录
简陋测试计划的苦果:
测试清单只有一句话:任务能发能收能评分。导致:
刘浩宇只测了老师发任务到自己接任务
没测多人并发接任务,上线后数据库死锁

效能优化的惊喜:
手动用手机计时:
任务加载初始:3.2秒
刘浩宇给任务表加索引:
CREATE INDEX idx_class ON task(class_id)
提速至1.1秒,印证:索引对查询优化至关重要

发布事故全记录:
时间9点:服务器部署失败,Tomcat配置漏改端口,重配server.xml
时间11点半:学生端白屏,前端路由未设history模式,改VueRouter模式
时间14点:成绩无法提交,服务器MySQL权限不足,开写权限账号
总耗时7小时,比开发任一功能都久

六、资源不足的苦与悟
硬件短缺的连锁反应:
仅2台安卓测试机

时间估算的离奇偏差:
任务:数据库设计,预估3天,实际2天,偏差原因表字段少(仅6个)
任务:任务下发功能,预估4天,实际7天,偏差原因批量处理循环写错3次
任务:前端界面,预估5天,实际3天,偏差原因意外找到逃生模拟组件库

美术资源的惨痛教训:
百度下载火焰图标,同学笑称番茄酱喷射
自绘逃生路线图,被吐槽像迷宫
最终方案:用简笔画代替,标注A到B到出口文字

人力错配的反思:
陈柏龙(后端)花1天写前端动画,效果生硬,最后取消
杨家兴(前端)重写,2小时搞定
共识:专业人做专业事,后端不碰前端动画

七、团队总结与未来行动
团队真实水平定位:
CMMI初始级:能凑合做完,但靠个人临场发挥
团队阶段:半磨合半规范
有基础分工(前端后端数据库)
无协作流程(如变更未会签)

看得见的进步:
沟通失误从上次11次降为3次
秘诀:每日微信同步3句话:
陈柏龙:今日写完任务API
杨家兴:学生界面接入API
刘浩宇:建成绩表索引

最痛短板:测试覆盖不足,改进方案:

真机测试池:借3台手机(苹果和安卓高端和安卓低端)

并发测试:用JMeter模拟50人同时提交

发布检查表:
MySQL版本一致
服务器端口开放
低端机基础功能验证

如果重头再来:
砍光所有花哨功能,只留三个页面:
老师页:创建任务,选择班级,点发布
学生页:点接收任务,选路线,点提交
成绩页:显示合格(用时小于120秒)或不合格
省下时间做两轮测试:
第一轮:开发完测主流程
第二轮:发布前全员真机实测

最后的三句忠告:

学生项目功能少等于成功率高,贪多必崩盘

数据库操作多留一倍时间(建表改字段加索引总有坑)

发布前用真机跑通全流程,能救项目命

-----来自一个熬过夜通过错的大二团队
会议照片

posted @ 2025-06-11 17:47  敢死队1111  阅读(13)  评论(0)    收藏  举报