团队作业7——alpha阶段之事后诸葛亮分析 一、设想和目标 二、计划 三、资源 四、变更管理 五、设计/实现 六、测试/发布 七、总结 八、团队会议照片 九、成员贡献

1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?

  • 解决中小学生做算术题难的问题,给他们一个使用方便快捷的四则运算练习小程序
  • 定义的比较清楚,主要是针对算术练习而设计的
  • 是,比如中小学生可以在课余时间和茶余饭后来一波算术练习挑战

2. 和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高?具体提高了多少?如何衡量的?

  • 本次是第一阶段,整个团队软件工程的质量一般吧
  • 主要在团队分工协作,互相交流讨论解决问题这一块越来越好
  • 从后来完成一定任务的时间变短可以看出

3. 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)

  • 原计划的功能完成了4个:难度选择、生成题目、判断正误、计算正确率
  • 按原计划时间交付了,但是有些功能没做完,问题比较多
  • 原计划的用户数量是20个,目前只有10个左右

4. 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?

  • 用户量比预期少,用户对重要功能的的接受程度还比较低,可能是功能未完善的原因
  • 总的来说项目都是在前进的,相信经过下一阶段会更进一步

二、计划

1. 是否有充足的时间来做计划?

  • 总的来说,时间算是比较紧,但是合理安排时间规划一下还是可以的

2. 团队在计划阶段是如何解决同事们对于计划的不同意见的?

  • 每日的站立会议上,团队成员将遇到的问题和意见拿出来讨论一下,一般都可以比较好的解决,实在不行的就去请教有经验的同学

3. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?

  • 原计划的工作最后做完了大部分,主要的框架还是做出来了,主要是因为整体的实现能力比较低和有些功能实现难度较高,说实话一边学习新的东西一边使用效率也比较低

4. 有没有发现你做了一些事后看来没必要或没多大价值的事?

  • 没有吧,基本都是在学一些新的东西,不懂的地方虽然多走了一些弯路,但是对这些东西的理解总是不断加深的,在后面遇到类似问题可以很好地解决

5. 是否每一项任务都有清楚定义和衡量的交付件?

  • 大部分的任务还是有清楚的定义和衡量的交付件,但是因为团队成员的时间安排各不相同,一些任务分配的时候只要能尽量快的完成就行

6. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?

  • 基本上是按照计划进行的,中间的时候由于考试、放假等因素,任务完成的比较慢,算是突发原因吧,还有部分原因是前期的计划做的确实比较草率,许多地方考虑不足

7. 在计划中有没有留下缓冲区,缓冲区有作用么?

  • 当时做的计划比较草率,没有考虑到要留一些缓冲区,我认为缓冲区作用还是蛮大的,比如当团队项目遇到突发事件不得不延期时就能发挥出其作用了

8. 将来的计划会做什么修改?(例如:缓冲区的定义,加班)

  • 将来的计划应该要留出一定的缓冲区,以应对出现的突发状况,加班应该不考虑吧,主要是在时间安排和任务分配方面更完善一些,效率就自然高了

三、资源

1. 我们有足够的资源来完成各项任务么?

  • 目前来说,还是缺大神的,团队成员的人数是足够的,但是整体水平较低,然后就是时间问题,总的来说会比较紧,只能通过互相协调合理安排来解决

2. 各项任务所需的时间和其他资源是如何估计的,精度如何?

  • 各项任务所需要的时间大体上计算好了,除了一些没有完成的,实现难度较高的任务外,基本能如期完成,精度在预期前后一两天左右

3. 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?

  • 测试的时间还算充足,人力和软硬件资源也足够,因为我们做的是微信小程序,完成之后可以用手机很方便地测试,对机型什么的兼容性也比较高
  • 美工方面确实是一个大问题,自己设计的东西还是很少,基本上都是去找现成的素材
  • 文案方面合理分工一下,每个人写一些其实不会很多

4. 你有没有感到你做的事情可以让别人来做(更有效率)?

  • 没有,我们分配任务前都是经过一些讨论的,考虑到每个人的个人实现能力和任务的量,合理的安排每个人的时间,算是比较有效率的了

四、变更管理

1. 每个相关的员工都及时知道了变更的消息?

  • 毕竟是一个团队一起做项目,在团队成立时就建了一个讨论组,每次进行任务分配、时间调整等等变更信息都会及时知会各个成员,还有就是整个团队的成员基本上都是相邻宿舍的,通知事情挺方便的

2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?

  • 主要是团队成员间进行讨论决定,然后制定一个计划来执行

3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?

  • 项目出口的条件的定义:用户可以从微信端登录,然后选择难度进行答题,答题结束系统生成正确率,期间没有出现闪退,卡顿,计算错误等问题。

4. 对于可能的变更是否能制定应急计划?

  • 对于可能的变更,通过召集团队成员一起讨论研究,商量出可行的方案来解决问题

5. 员工是否能够有效地处理意料之外的工作请求?

  • 大部分人都能够处理意料之外的工作请求,特别是前期一边学习一边进行项目,总是会出现这样那样的突发状况,不会就一起研究讨论,查查资料,总会解决的

五、设计/实现

1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?

  • 我们虽然有团队分工,但是由于整体实现能力较低,分工也不是很细致,大部分的工作都是互相帮助完成的,前期的设计工作更是要集思广益,多点想法会更有灵感

2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?

  • 设计工作有碰到模棱两可的情况,比如在答题界面的设计,有很多方案,最后一起商量讨论后还是觉得一个界面一题更加简洁美观一些

3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?

  • 因为实现的功能比较简单,而且是微信小程序,所以没有运用单元测试和测试驱动的开发,在前期界面设计时有用到墨刀来设计原型界面,它可以提供一个清晰的设计思路,挺方便的

4. 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?

  • 选择难度后的界面跳转bug会比较多,因为选择难度之后是答题界面,然后这之间的界面跳转比较频繁复杂,实现的时候考虑不足,在设计/阶段都是边学边做,难度较大,有些小问题很难面面俱到

5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?

  • 代码复审主要是看那些主要的功能模块代码是否符合规范,有没有意料之外的情况出现,可读性是否良好,有没有冗余的部分影响代码执行效率

六、测试/发布

1. 团队是否有一个测试计划?

  • 一开始有做一个简单的代码测试计划,主要对代码的统一规范以及一些bug做一些处理

2. 是否进行了正式的验收测试?

  • 有做一个简单的矩形测试,并按照计划进行bug测试、场景测试等

3. 团队是否有测试工具来帮助测试?

  • 因为是做微信小程序,所以主要是借助微信小程序开发工具自带的一些调试工具来帮助测试

4. 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?

  • 主要是借助微信小程序开发工具中自带的一些调试工具来进行软件的效能跟踪,因为是为微信小程序开发量身定制的测试工具,所以在测试各项性能方面还是很周到的

5. 在发布的过程中发现了哪些意外问题?

  • 发布的过程中由于服务器的连接出了些问题,还有微信小程序平台的审核要求等等,该开发版本尚未发布

七、总结

1. 你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?

  • 处于CMMI档次,整个团队在Alpha阶段有进行需求分析、任务规划和管理、制定计划共同执行等等

2. 你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?

  • 应该是处于规范阶段,在整个Alpha阶段进行了比较多的磨合,团队成员之间基本形成了一定的做事规范

3. 你觉得团队在这个里程碑相比前一个里程碑有什么改进?

  • 对微信小程序的开发方面有了更深入的了解,大体知道前进的方向了
  • 团队之间的配合更加紧密,氛围更加融洽,遇到问题可以拿出来一起讨论解决

4. 你觉得目前最需要改进的一个方面是什么?

  • 目前最需要改进的还是任务分配和时间安排这一块,特别是越到期末时间越紧,在项目推进遇到问题时无法及时解决可能会导致项目进度卡住,这在下个阶段也是主要考虑的一个问题

5. 对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例。

  • 对于敏捷开发原则,我觉得我们小组做得做好的是原则四:业务人员和开发人员在项目开发过程中应该每天共同工作,我们小组的开发人员都会抽出一点时间一起做项目任务,遇到问题方便直接讨论。还有原则七:可用的软件纪检是衡量项目进展的主要指标,我们第一阶段的主要任务就是做一个带有基础功能的可用的程序出来,我们也一直朝着这个方向前进。原则十二:时时总结如何提高团队效率,并付诸行动,我们每天都通过站立会议,问题讨论等及时调整任务计划,提高效率

八、团队会议照片

团队作业7——alpha阶段之事后诸葛亮分析
一、设想和目标
二、计划
三、资源
四、变更管理
五、设计/实现
六、测试/发布
七、总结
八、团队会议照片
九、成员贡献

九、成员贡献

名字 角色 团队贡献排序 可验证的贡献 团队个人贡献分
黄腾龙 后端开发 1 实现后端功能,与前后端之间的交互,完成部分界面的设计 28
叶城龙 部分后端开发,博客园 2 实现部分后端功能的设计,博客园撰写者 25
余腾鑫 前端开发 3 实现登录界面的设计,用户需求分析调查问卷 19
梁林 前端开发 4 实现主界面的设计,部分界面之间的跳转功能 17
李心宇 前端开发 5 实现list界面的设计,软件需求规格说明书作者 16
陈鸿鹏 前端开发 6 原型设计,协助分析和测试程序 15