软件工程 BUAAMOOC项目Postmortem结果

 

设想和目标


 

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

  我们的软件是基于北航MOOC网站做的Android手机客户端,用于便捷的在学校里通过手机做到随时随地学习MOOC上的课程。

  基于目前服务器借口是北航校园网,所以我们的典型用户是校园里的学生,比如在教室或者宿舍的床上不适合用电脑的时候,可以通过手机登录BUAAMOOC在线观看教学视频,或者离线相关视频。

2、是否有充足的时间来做计划?

  有时间。每周我们都会见面讨论开会至少一次,然后在会议上总结上一阶段的任务,安排下一阶段的分工和计划。

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

  有不同意见的时候我们都是现场提出来,然后大家说出自己的看法,一起商量觉得哪种方案更适合。


计划


 

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

  我们的计划里还有一些功能都没有实现。因为服务器借口拿到的时候,已经是开始的第三周了,所以很多需要和服务器交互的功能都停滞不前,导致时间不充分。不过我们已经规划到第二阶段完成。

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

  闫昊同学表示他在开始的时候写了数据库,但是到现在都没有去使用他的数据库,而且他自己也没有使用。

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

  大部分都没有。因为对于“完成”的概念我们并不是很清楚,所以与其在开始前规定好做成什么样子,倒不如自己在完成自己负责的功能的时候自己去衡量,但是不崩溃是最起码的要求。

4、是否项目的整个过程都按照计划进行?

  并没有,因为服务器借口拿到的太晚,导致了我们的工程往后推迟了一段时间,但是整个流程是按照计划进行的。

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

  有的,因为每个成员的工作进度不一样,而且互相负责的部分有相互依赖的关系,所以留有缓冲区。

6、将来计划会做什么修改?

  明确缓冲区的长度,规定每天至少工作量。


资源


 

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

  对我们而言最大的问题可能就是时间上的不充足,这一阶段课业压力很重,所以很多作业都是每天轮流处理。然后就是服务器部分并没有给我们足够的接口去完善需要的功能。

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

  最开始都是大致估计会花费的时间,到最后因为工作都是零散完成的,所以计时反倒没必要。

3、用户测试的时间,人力和软件/硬件资源是否足够?

  采取了直接在手机上使用软件测试,6人5台Android机。

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

  如果是根据编程能力决定,余帆同学表示那肯定是其他三个大神写这个人信息部分更快,甚至一天就能全部搞定。但是我们毕竟是学生,我们在完成这个作业的关键在于自己能够从这个过程中真正学到东西。所以都是按照个人工作能力分配的工作,即使花费时间,那也是自己学习的过程。


变更管理


 

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

  有需要改动的地方,我们一般在开会的时候都会通知。如果是自己工作的时间,就会在群里通知自己的改动和想法。

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

  根据我们的用户需要比如在线视频播放,课程查询等这些事必须实现的功能。还有根据服务器提供的接口可以实现的功能,比如讨论区部分我们需要自己来写这部分的功能。

3、项目的出口条件(Exit Criteria)是否得到清晰的定义?

  (出口条件是什么……)如果我们定义为可以发布的条件,我们的最低要求是不崩溃,然后是基本功能实现。

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

  并没有,但是状况发生的时候就是找人代替。比如在我们的第一阶段,负责博客的同学因为身体原因请假,他的工作其他人排空闲时间写博客。

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

  我们是只要有问题就在群里提出来,然后大家一起想解决办法,合理解决。


设计/实现


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

  设计工作在其他人开始代码编程之前就开始了,并且出了第一个版本,把主要的页面设计设计好了。然后随着我们编程人员的进行,设计人员也在细节上开始修复。我们的设计工作由金哉仁同学负责。

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

  比如关于主色调的选择,页面跳转的方式,button的颜色等等,我们在开会的时候就现场讨论这些设计,大家投票选出自己觉得好看的设计。

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

  这一部分我们并没有做。

4、什么功能产生的bug最多?为什么?

  测试人员表示登录部分bug最多。因为我们的服务器是内网的测试接口,所以并不支持外网注册的用户登录。而且必须链接Buaa-wifi才能登录使用。

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

  这一部分并没有很好的完成,代码规范也不是很具体的完成,大部分只是在函数后写明功能注释就没了。


测试/发布


 

1、团队是否有一个测试计划?为什么没有?

  因为开发时间问题,所以并没有一个充分的测试计划。

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

  人员直接在手机上运行软件,折腾功能。

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

  没有。(手机算吗……)

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

  人员直接在手机上测试的时候,找到了很多不合理的设计和bug,发现之后也都做了调整和改正。

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

  发布的时候要求提供北航的正式的认证说明,即证明我们的软件确实是北航的服务器。(文书内容需要询问老师)


其他问题


1、对比敏捷的原则,你觉得你们小组做得最好的是什么?

  首先我认为我们小组在配合分工方面做得很好。在最开始的计划分工讨论的时候,成员的每一个人都根据自己的个人能力以及自己感兴趣的方面去选择自己的工作方面,并且合理估计自己的编程水平负责不同程度不同类型的代码编写。

  然后在成员的积极性上我觉得我们小组成员做得很好。每一次开会的时候,小组成员都会积极发表自己的意见和想法,然后一起商量出更好的方案。


2、什么是在下个阶段 M2 要改进的地方?越具体越好。 

  首先是代码开发的问题,因为还有几位成员对于Android开发的一些功能并不是很了解,所以会增加成员一起的代码时间,主要用来解惑钻研功能实现。

  其次是博客攥写,有的时候因为课业压力所以经常忘记更新团队博客,但是M2阶段会作调整,努力每天更新工作进度或者心得感想。

  最后是功能的实现,在M2阶段实现剩下还未实现的功能后,(如果时间剩余),我们计划开发一些其他实用的小功能。


讨论照片


 

posted @ 2015-11-23 17:33  歪果仁带你灰  阅读(228)  评论(2编辑  收藏  举报