事后诸葛亮分析
团队名称:小菜鸡
项目名称:你猜我画什么
会议照片:
一、设想和目标
1. 我们的软件要解决什么问题?是否定义很清楚?是否对典型用户和典型场景有清晰的描述?
- 我们的软件主要是解决现有你画我猜的小游戏偶尔会出现房间号错乱导致陌生人进错房间,游戏过程中卡顿,以及,想要有无限模式不受局数限制的问题。
- 定义清楚,核心就是一个传统你画我猜小游戏的线上版本。
- 对典型用户及典型场景描述清晰,主要针对8岁以上能独立使用手机,会你画我猜小游戏的人群,是一款休闲娱乐的小游戏。
2. 我们达到目标了么?
计划功能个数 | 按时交付功能个数 | 计划用户数量 | 实际用户数量 |
26 | 16 | 100 | 未上线 |
3.经验教训
提前了解好该类小游戏的同款产品,多去测评,找到优势功能和鸡肋功能。项目开始前应多准备几个提案作为挑选。
二、计划
1. 是否有充足的时间来做计划?
计划时间充足,本团队项目在考试月前开始,成员们普遍有较为宽裕的时间。
2. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
我们团队通过腾讯会议,一人共享屏幕记录计划,全员语音进行套路,有不同意见时,往往由提出意见的成员描述她的观点和理由,之后进行投票处理,遵循少数服从多数原则。
3. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
成员 | 计划工作是否完成 | 如未完成 为什么? |
陈芝敏 | 词库未完善,帧同步未实现 | 词库需要手动输入(暂时找不到更好的方法) |
冯晓凤 | 未完成 | 因为时间不够,学习的时间的时间过长,并且对一些逻辑的东西搞得不够好。 |
江晓琦 | 未完成房间逻辑 | 很多房间的细节一开始没有考虑到位导致需要一点点去完善 |
高子茵 | 小程序头像以及转发图片未完成 | 缺乏ui经验,对于小游戏头像以及转发图片的设计没什么灵感,暂时是用一副网图作为小游戏的头像。 |
4. 有没有发现你做了一些事后看来没必要或没多大价值的事?
开发人员jxq:前期学习阶段看了很多无意义的网课都没有派上用场,也没有找到合适的学习资料。
ui:无,目前为止画的图标都是迫切需要使用的。
5. 是否每一项任务都有清楚定义和衡量的交付件?
是。
6. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
否,由于初次计划时缺乏经验,对时间估计不够准确,计划在第二次修正时进行了较大规模的修改。第二次修改时,我们结合中间的时间段内学到的知识,由于微信小游戏接口的限制,对初版的一些功能进行了重新规划。 第三次修改时,由于期间夹杂了一次某课程的实验报告deadline,导致第二次计划的时间也有了一定的推后。
7. 在计划中有没有留下缓冲区,缓冲区有作用么?
没有留下缓冲区。
三、资源
1. 我们有足够的资源来完成各项任务么?
有。
2. 各项任务所需的时间和其他资源是如何估计的,精度如何?
初版计划时,只能大概估计,精度在“日”;一段时间的开发学习之后,再次召开线上会议,此时大家提出疑问,发表对初版计划的看法,重新规划时间,此时的精度在“时”,将大的模块不断切割成小的功能点。对于使用的开发工具/软件等资源,我们是通过线上会议,统一使用LAYA进行开发。
3. 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
- 对于不需要编程的资源(美工),我们是安排了一名同学专门负责ui设计,由她进行绘图,在微信群上交付图标,由于是小游戏,美工难度不算高。
4. 你有没有感到你做的事情可以让别人来做(更有效率)?
没有。
四、变更管理
1. 每个相关的员工都及时知道了变更的消息?
是的,我们重大变更都会通过腾讯会议来进行讨论商决,每次会议都全员到场;对于不重要的变更,会在微信群上发布,收到的同学回复确认收到。
2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
采用四象限法则,在时间紧急的情况下,召开全体线上会议对剩余未实现功能进行“重要紧急”、“重要不紧急”、“紧急不重要”、“不重要不紧急”的分类,排出优先级
- “重要紧急”类的功能:优先实现,必须实现,不实现将无法正常运作,是核心功能
- “紧急不重要”功能:需要用到,但是并不是重要功能
- “重要不紧急”类功能:是“杀手”功能,小游戏的特色,时间紧急的时候可以推迟到后续版本进行
- “不重要不紧急”功能:其他同类小游戏都有的功能,例如丢鸡蛋/鲜花,属于拓展类功能,没有也可以,可推迟完成。
3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
初版小游戏出口条件:
- 能正常打开小游戏
- 游戏过程中不卡顿不闪退
- 积分统计正常
- 页面逻辑正常,无死循环现象
4. 对于可能的变更是否能制定应急计划?
- 对于某些功能实现上的变更,开发人员在开发过程中及时在微信群沟通交流,确保新的修改方案通知到位。
- 对于时间上的变更,我们小组及时修改计划,三次对项目的时间安排进行调整。
5. 员工是否能够有效地处理意料之外的工作请求?
能够。
6、我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
如果重来我们一定规划好项目每个阶段的时间,做好项目前的原型。
五、设计/实现
1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
项目初期,团队通过线上会议进行讨论,决定最终选题以及类型。详细的规则也是由线上会议一起商讨决定。由于我们小组只有4名成员,人数较少,故每次会议要求全员到齐。整个项目的设计以及原型的绘制都是在开发之前一起商讨得出,原型也是画完之后通过小组全体成员的赞同后投入使用。
2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
对于一些不明确,不知道能不能实现的功能,团队都采用两种方案来解决:会议中针对这一问题提出两种实现的方式,并判断其优先级,开发人员后续开发时,若发现a方式不可实现,立即转换为b方式,并在微信群上告知即可。
3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
我们没有运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现,纯手工测试。
4. 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug?
- 房间逻辑产生的bug最多,因为接口太多,逻辑太复杂,用法也不一致。
- 小游戏尚未发布,未知bug。
为什么我们在设计/开发的时候没有想到这些情况?
没经验,设计时还没有学到那里,设想时简单化了。
5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
审核前补充注释,让其他成员审核自己的代码,互相帮助。严格执行了代码规范。
6、我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
如果历史重来,我们一定加快进度,在项目开始前充分了解涉及的所有知识面,提前做好学习计划,梳理好所有接口以免造成混乱,认真写好代码规范并严格遵从。 提早选择好游戏引擎,选择好正确的开发工具;提前了解好微信小游戏图片大小格式。
六、测试/发布
1. 团队是否有一个测试计划?为什么没有?
测试计划所在博客:https://www.cnblogs.com/ivygzy/p/13057462.html
2. 是否进行了正式的验收测试?
是。
3. 团队是否有测试工具来帮助测试?
- 初期时团队成员使用手工测试,互相体验页面逻辑是否正确。
- 改进后:使用wetest和微信开发者工具进行测试
4. 在发布的过程中发现了哪些意外问题?
资源包过大需要压缩,在意料之外,于是重新进行全面的压缩。
5、我们学到了什么? 如果重来一遍, 我们会做什么改进?
要善用工具进行自动化测试,扩大试用的用户范围。
七、团队合作
1. 团队的每个角色是如何确定的?
由于团队成员较少,几乎大家都是开发的角色了(,而pm是由于该同学打码能力较弱,且有一定的项目运营经验)。
2. 团队成员之间有互相帮助么?
有,团队成员本身关系就好,沟通比较方便,有问题的时候都会直接提出,有时也会在微信群互相分享找到的学习资源,共同进步!
八、总结:
1、你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
能正常使用,无页面逻辑错误,基本达到CMM的第二级。
2、你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
规范阶段
3、你觉得团队在这个里程碑相比前一个里程碑有什么改进?
使用了laya和云开发,摒弃低效的手工测试,使用wetest进行自动化测试。
4、你觉得目前最需要改进的一个方面是什么?
需要更多的用户帮助测试,才能找出更多的bug,明确下一阶段的优化任务。
九、提高质量
1. 代码管理的质量具体应该如何提高? 代码复审和代码规范的质量应该如何提高?
提前做好代码规范文档,严格遵守,写好注释,方便代码复审。
2. 整个程序的架构如何具体提高?
多学习,多使用更高级更精简的语法,使用前端框架。
3. 其它软件工具的应用,应该如何提高?
应该选择更加合适更加易学的游戏引擎,案例多学习资料容易找入门快易上手。
4. 项目管理有哪些具体的提高?
应规划好更详尽的功能表以及更精细的时间划分,按时上交issue,定时全员开会进行交流。
5. 项目跟踪用户数据方面,计划要提高什么地方?
用微信官方提供的云开发功能获取日/周活跃用户等数据,小程序官方网页上也可及时了解项目用户数据。
6. 项目文档的质量如何提高?
统一文档格式,列好目录,及时更新,删除一些无意义的描述。
7. 对于人的领导和管理, 有什么具体可以改进的地方?
加强沟通,多交流,有问题及时提出,互相帮助。
8. 对于软件工程的理论,规律有什么心得体会或不同意见?
要提前做好代码规范和文档规范,方便后续开发。
十、角色及贡献
成员名称 | 角色 | 团队贡献分 | 可验证的贡献 |
陈芝敏 | 开发&测试 | 21 | 完成线下模块,云开发 |
冯晓凤 | 开发&测试 | 20.5 | 画板的设计,输入框的任务 |
江晓琦 | 开发&测试 | 19 | 完成了部分房间的逻辑和两个页面 |
高子茵 | pm&ui | 19.5 | 完成原型的绘制,画了所有ui设计图 |