事后诸葛亮分析报告
设想与目标
1、我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
我们的软件要解决图书馆座位预定问题;定义清楚;对典型用户和典型场景有清晰的描述
2、我们达到目标了么?
达到团队的目标
3、用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?有什么经验教训? 如果历史重来一遍,我们会做什么改进?
基本一致;离目标更近了;如果历史可以重来,可以考虑应用商店上线
计划
1、是否有充足的时间来做计划?
有充足的时间来做计划
2、团队在计划阶段是如何解决同事们对于计划的不同意见的?
我们将不同意见收集,并通过组内会议来进行解决
3、你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
做完了
4、有没有发现你做了一些事后看来没必要或没多大价值的事?
没有发现没有价值的事情
5、是否每一项任务都有清楚定义和衡量的交付件?
是
6、是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
基本按照计划进行;唯一的小意外就是复习网安占据了几天时间
7、在计划中有没有留下缓冲区,缓冲区有作用么?
有缓冲区,有作用
8、我们学到了什么? 如果历史重来一遍,我们会做什么改进?
学到团队成员的合作;历史重来,我们会制定更优质的计划,进行更多的交流
资源
1、我们有足够的资源来完成各项任务么?
有足够的资源,比如人力、服务器等,基本配齐
2、各项任务所需的时间和其他资源是如何估计的,精度如何?
凭借开发经验进行估计,测试比较难以估计,精度还算可以
3、测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
足够;UI资源还是比较难找到完美符合当前的场景的
5、有什么经验教训? 如果历史重来一遍,我们会做什么改进?
历史重来,我们会花分配多些时间给UI设计
变更管理
1、每个相关的员工都及时知道了变更的消息?
是的,我们首先会在团队的微信群进行通知
2、我们采用了什么办法决定“推迟”和“必须实现”的功能?
通过组内讨论进行决定
3、项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
有清晰的定义
4、对于可能的变更是否能制定应急计划?
可以指定应急计划
5、员工是否能够有效地处理意料之外的工作请求?
成员基本能有效处理
设计/实现
1、设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
设计工作在项目开发前,由PM来完成,在精力充沛的时间,人员合适,满足组员的预期
2、设计工作有没有碰到模棱两可的情况,团队是如何解决的?
遇到某个功能模棱两可的情况,主要还是通过组内进行会议讨论,最终采用推迟上线来进行解决
3、团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
4、什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
在预定完最后确认的功能bug最多,因为这部分代码当时开发比较赶,没有review到
5、代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
开发模块的人员进行review,严格执行了代码规范
6、如果历史重来一遍,我们会做什么改进?
历史重来,我们也会分配多点时间在代码复审阶段
测试/发布
1、团队是否有一个测试计划?为什么没有?
有一个测试计划,主要检查程序的健壮性,保证程序正常运行
2、是否进行了正式的验收测试?
进行
3、团队是否有测试工具来帮助测试?
没有,主要通过预览版用户测试进行反馈
4、团队是如何测量并跟踪软件的效能(Performance)的?压力测试(Stress Test)呢? 从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
5、在发布的过程中发现了哪些意外问题?
发现一些手机的适配问题
团队的角色,管理,合作
1、团队的每个角色是如何确定的,是不是人尽其才?
根据每个成员的擅长领域以及性格进行划分,做到人尽其才
2、团队成员之间有互相帮助么?
有互相帮助,共同讨论,共同进步
3、当出现项目管理、合作方面的问题时,团队成员如何解决问题?
团队成员先剖析问题的根源,再达成意见统一
总结
1.你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
第三级也就是已定义级
2、你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
磨合阶段
3、你觉得团队在这个里程碑相比前一个里程碑有什么改进?
处理得更加熟练,团队之间更有默契了
4、你觉得目前最需要改进的一个方面是什么?
团队成员的分工和目标制定方面
5、对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例
个体和互动 高于 流程和工具原则,大家首要的目标是讨论自己的分工,每个人之间的配合,其次才是具体的开发流程。
6、代码管理的质量具体应该如何提高? 代码复审和代码规范的质量应该如何提高?
多看启发思路的书,多看开源代码,用辅助工具(lint、findbugs等),都是靠谱的答案,参考别人成功的案例
7、整个程序的架构如何具体提高? 如何通过重构等方法提高质量,如何衡量质量的提高?
多推翻多重构,在不断的实践中吸取教训,提高质量,从性能和内存占用之间去衡量。
8、其它软件工具的应用,应该如何提高?
多动手,多实践
9、项目管理有哪些具体的提高?
指定的目标更加的详细,流程更加清晰了
10、项目跟踪用户数据方面,计划要提高什么地方?例如你们是如何知道每日/周活跃用户等数据的?
提高抽样率,增加取样基数
11、项目文档的质量如何提高?
多看大牛的博客学习,参考别人成功的案例
12、对于人的领导和管理, 有什么具体可以改进的地方?
采用弹性工作制,劳逸结合
会议照片及角色贡献
会议照片
角色贡献
姓名 | 分工 | 团队贡献分 | 可验证的贡献 |
---|---|---|---|
杨伊辙 | PM、安卓开发 | 20.6 | 项目安卓页面构建、团队项目统筹(肝之担当) |
刘栋濠 | 后台 | 20 | 用户模块的接口设计、修复了很多接口bug |
肖丽萍 | UI、测试 | 20.4 | 提出了很多项目不合理的地方、发现很多bug、写了很多篇博客(活跃担当) |
杨健鹏 | 数据 | 19.3 | 协助测试,文档编写 |
容海量 | 测试 | 19.7 |