事后诸葛亮分析报告
1.1我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
- 我们的软件要解决什么问题?
当你需要一个工具时,打开我们的APP就对了; - 是否定义得很清楚?
是的,它的作用就像是是一个工具,当你需要某项操作时,它就在那里; - 是否对典型用户和典型场景有清晰的描述?
设想如下情景:
小明需要将PDF转为word(功能待完成)于是下载一个专门的工具或打开浏览器寻找在线网站;
小红需要翻译一个单词,她要么下载专门的单词APP或打开浏览器寻找在线网站;
......
然而如果你拥有我们的APP,你只需要打开它就对了,它会帮你解决你的烦恼;
1.2我们达到目标了么?
目标基本达成,现有功能需要继续优化,后续将加入更多功能;
1.3用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?有什么经验教训? 如果历史重来一遍,我们会做什么改进?
- 用户量, 用户对重要功能的接受程度和我们事先的预想一致么?
当前产品存在诸多问题导致用户部分期待落空; - 我们离目标更近了么?
我们不会放弃这项产品,我们会继续优化改善该产品直到用户满意; - 有什么经验教训?
不该盲目自信,应当多想多问; - 如果历史重来一遍,我们会做什么改进?
如果时间能够倒流,我们将投入更多的时间研发优化产品,以期带给用户更好的体验。
2.计划
2.1是否有充足的时间来做计划?
是的,我们每周都会花十五到二十分钟的时间开一个会议以进行规划;
2.2团队在计划阶段是如何解决同事们对于计划的不同意见的?
我们会针对该问题进行更细致的讨论说明,不断寻找大家都能接受的妥协点;
2.3你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
基本完成,但仍有一小部分功能由于存在恶性Bug导致需要大量时间进行修复,无法在α先行版本中体现;
2.4有没有发现你做了一些事后看来没必要或没多大价值的事?
基本没有,我们由于花了大量时间在讨论会议上,可以避免此类情况发生;
2.5是否每一项任务都有清楚定义和衡量的交付件?
是的,我们的带头大哥亲历亲为;
2.6是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
基本按照计划推进,大家都很尽职地完成了各自的任务;
2.7在计划中有没有留下缓冲区,缓冲区有作用么?
在计划初期有这项规划,但由于能力等原因,有些Bug修复时间较长;
2.8我们学到了什么? 如果历史重来一遍,我们会做什么改进?
团队合作真的很重要,一个合作良好的团队对项目的开发其促进是巨大的;如果历史再来一遍,我们会花更多的时间开会议进行讨论规划;
3.资源
3.1我们有足够的资源来完成各项任务么?
鉴于Android Studio、appium等开源工具,我们有足够的资源来完成各项任务;
3.2各项任务所需的时间和其他资源是如何估计的,精度如何?
在每周会议上我们会针对该部分进行讨论,大多数情况下时间都很充裕;
3.3测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
鉴于开源诸多工具,资源还算充足;在美工方面我们团队的UI女神能力出众,能够解决几乎所有这方面的困难;
3.4你有没有感到你做的事情可以让别人来做(更有效率)?
在编程方面笔者曾无数次幻想过;
3.5有什么经验教训? 如果历史重来一遍,我们会做什么改进?
资源基本充足,开源万岁;
4.变更管理
4.1每个相关的员工都及时知道了变更的消息?
是的,我们的带头大哥每次都会在群里@好几次;
4.2我们采用了什么办法决定“推迟”和“必须实现”的功能?
我们会在每周会议上讨论这个问题;
4.3项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
首先要在编程工具上跑起来,之后在不同的环境下跑起来;
4.4对于可能的变更是否能制定应急计划?
是的,我们会召开紧急会议;
4.5员工是否能够有效地处理意料之外的工作请求?
我们每周都会召开会议,每项在会议上决定的请求都将是合理的,大家都会尽职的完成;
5.设计/实现
5.1设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
每周会议上我们都会进行讨论,同时我们分工明确,大家都能谋其位,司其职;
5.2设计工作有没有碰到模棱两可的情况,团队是如何解决的?
我们在每周会议上会花充分时间的进行讨论,不存在这种情况;
5.3团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
我们在每周会议上会总结上一周的成果,同时在这周同步更新文档;
5.4什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
文件清理功能;由于需要检索文件,占用较大内存,没有考虑到移动端的情况;
5.5代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
先是个人复审,之后再由团队中职能相同的成员互相复审;
5.6我们学到了什么? 如果历史重来一遍,我们会做什么改进?
代码规范很重要;如果时间能够倒流,一定要投入更多时间在代码规范这块;
6.测试/发布
6.1团队是否有一个测试计划?为什么没有?
在立项初期我们就针对这个问题进行过讨论并制定了测试计划;
6.2是否进行了正式的验收测试?
是的;
6.3团队是否有测试工具来帮助测试?
我们采用了自动化测试工具appium来帮助把我们进行测试;
6.4团队是如何测量并跟踪软件的效能(Performance)的?压力测试(Stress Test)呢? 从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
应该多采用几款软件并结合人工测试以达到测试全面化;
6.5在发布的过程中发现了哪些意外问题?
由于部分功能修复需要较长时间,导致在α版本中部分功能缺失;
7.团队的角色,管理,合作
7.1团队的每个角色是如何确定的,是不是人尽其才?
我们在最开始的立项会议上结合个成员能力分配相应工作,充分发挥各成员能力;
7.2团队成员之间有互相帮助么?
是的,我们每周会议上会提出各自遇到的难题进行讨论、解决;
7.3当出现项目管理、合作方面的问题时,团队成员如何解决问题?
大家会在每周会议上进行充分的讨论调解;
8.总结
8.1你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
管理级;
8.2你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
规范;
8.3你觉得团队在这个里程碑相比前一个里程碑有什么改进?
大家的合作能力、团队沟通能力都有了极大的提高;
8.4你觉得目前最需要改进的一个方面是什么?
在每周会议上投入的时间太少了;
8.5对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例
在项目冲刺阶段,大家都会及时反馈进度以及之后的安排;
8.6代码管理的质量具体应该如何提高? 代码复审和代码规范的质量应该如何提高?
在立项会议上应制定合理规范的制度;
8.7整个程序的架构如何具体提高? 如何通过重构等方法提高质量,如何衡量质量的提高?
在开发前规划好各个模块,保证一个模块只提供一个功能;
8.8其它软件工具的应用,应该如何提高?
熟练掌握自动化测试工具以减少基本的bug;
8.9项目管理有哪些具体的提高?
代码更加规范;
8.10项目跟踪用户数据方面,计划要提高什么地方?例如你们是如何知道每日/周活跃用户等数据的?
由于我们的APP是离线产品,我们后续将通过如官网、论坛等收集用户反馈;
8.11项目文档的质量如何提高?
多写多练;
8.12对于人的领导和管理, 有什么具体可以改进的地方?
暂无;
9.会议照片及角色贡献
9.1 会议照片
9.2角色贡献
名字 | 角色 | 团队贡献分 | 可验证贡献 |
---|---|---|---|
吴佩泽 | 带头大哥 | 114 | 架构,博客,程序功能 |
孔繁威 | 编程大牛 | 101 | 程序功能 |
陆梦龙 | 编程泰斗 | 100 | 程序功能 |
邓霖 | 编程渣滓 | 90 | 程序功能,博客 |
罗欣彤 | UI女神 | 104 | 前端界面 |
陈树东 | bug发掘者 | 98 | 测试 |