“北航学堂”项目最终复审报告
一、团队成员简介
Sevens团队在M1和M2阶段都是一共有七名队员,M1阶段我们的团队成员有:陈少杰,金鑫,高孟烨,雷元勇,王迪,邓亚梅,郑培蕾;在M2阶段邓亚梅同学转会到了Dxteam,李承晗同学转到我们团队,经过两个阶段我们最终完成了北航MOOC手机客户端的项目,虽然说中间遇到的困难很多,我们的软件中也可能还存在一些问题,但是我们尽了自己的努力并且把项目完成了,这是很值得我们高兴地。
下面是我们团队在M1和M2阶段的合影:
这是我们团队的个人介绍博客:http://www.cnblogs.com/sevens/p/3993978.html
团队个人博客地址:
金 鑫:http://www.cnblogs.com/JinD/
陈少杰:http://www.cnblogs.com/baitrsou/
高孟烨:http://www.cnblogs.com/gaomy/
雷元勇:http://www.cnblogs.com/leiyy/
王 迪:http://www.cnblogs.com/buaawd/
李承晗:http://www.cnblogs.com//Coolio/
郑培蕾:http://www.cnblogs.com/peilei/
二、工程介绍
1、团队项目的目标,预期的典型用户,预期的功能描述以及预期的用户数量
首先还是先介绍一下我们北航学堂的项目,MOOC是Massive Open Online Course的缩写,通常被译为大型开放式网络课程,这项技术的目的在于使更多的在现实生活中没有办法接受高等教育的人享受到和顶级高校学生一样的教育资源,同时也能够让高校的教育资源得到更充分的利用。北航作为国内的顶尖高校之一,也发展了自己的MOOC教育平台,这是网站的链接:http://www.mooc.buaa.edu.cn/,目前这个网站正在发展中,因为把所有的课程都进行录像整理上传并不是一件简单的事情,我们团队的目标就是为北航MOOC系统开发一款Android客户端,使之能够实现网站上的功能,也使用户可以在Android移动终端上体验北航的在线精品课程。
我们预期的典型用户是北航内的学生,想要考研的学生也可能会需要,因为北航MOOC网站上的资源总量还比较少,目前总计是有13门课,所以校外人员想要在北航MOOC上找齐自己想要学习的一套课程还比较难。但是因为上面的课程都是北航现在还在开展的课程,所以北航的学生则可以利用这个系统将上课拉下的知识补上。可是因为这种学习方式的节奏比较慢,可能没有有的学生自学效率高,所以可能实际使用上会有一定的局限性。
我们在项目开始之初,想的功能比较复杂,还有课程评价,课程讨论帖等部分,但是后来在具体实现中发现功能还没办法添加,因为我们是在学长IOS端的基础上开发的,使用的也是学姐提供的MOOC服务器的接口,我们没有权力修改这个服务器端,所以服务器端没加这些接口之前我们也没办法实现这些功能。而现在能实现的基本的功能我们都做出来了,包括初始化,登陆,无登陆浏览课程,注册,课程列表,我的课程,课程介绍,选课,播放课程。
预期的用户数量是100个,这个数字是有些少的,我们的项目在M1阶段因为网络连接的问题并没有发布出一个合格的alpha版本,我们的很多工作的都是在Beta阶段完成的,所以最后发布的时间比较晚,推广的时间也有限,所以预期的用户数量比较少。
2、满足的用户需求以及用户评价
参见录制的视频。
3、实现定义的下载量
我们在期末的那节课中报的用户数量是50,因为当时我们还有些棘手问题没有搞定,软件没有最终完工,所以报的用户数量就比较少,最后我们是在1月3号初步的版本成型,当时提交应用,后来也进行了几次修改,直到昨天网站才审批通过,所以我们的下载量数据主要是友盟统计的新增用户量,审批通过之前我们是把安装包分享在了百度的网盘中,友盟的新增用户量是:68,目标是实现了,但是我们的用户量还是很少,主要的原因一个是现在MOOC网站上的资源对学生的吸引程度不够,另外一个就是我们发布的时间比较晚,而且赶上考期我们能做的推广也比较少。
4、团队的成员如何分工协作的?如何在两次开发里程碑中总结经验的?
在第一个阶段,因为对Android开发第一次接触,甚至对自己的项目的理解也不深,所以当时分工就很粗糙,根据学长自己做的经验就把任务分成了三大部分,后来就导致大家彼此之间交流不多,而且在网络没有连接成功的情况下,两外两部分很难开展工作,最后网络的部分成为我们的大难题在M1阶段没解决掉,所以Alpha版本就发布失败了。在第二个阶段,我们在分工的时候没有分配大块的任务,把任务细化,先一起主攻网络连接的部分,连接成功之后后面的工作就变得顺利了许多。所以从中总结的经验是,首先要搞清楚现在最应该做的是什么,集中力量把大的困难解决掉之后,再把任务细化分配,这样进度才能快。
5、团队如何平衡 时间/质量/资源 争取如期完成任务的?
首先,因为是第一次做Android项目,所以我们做的优化并不多,只能保证把代码里面我们能够测试到的错误改掉,所以可能代码的质量并不是很高。平时我们也有其他的课程,所以我们的时间安排并没有像老师说的那样每天两个小时,时间的安排比较灵活,主要是在大家没有课比较空闲的时间集中多做一些,每个人写完自己负责的部分之后就先对自己这部分进行测试,这样软件组装的时候的错误才会尽可能的少。获得的资源一般都是从网络编程大牛的博客中找到的一些实现方法,运用到我们自己的软件中,另外也从学姐那里得到了服务器接口的说明文档,以及我们网络连接失败的原因,学姐给我们的帮助也很大。
6、在产品之外,团队代码的软件工程质量如何?如何用数据来证明?
我们已经把代码中的注释加了进去,主要的内容是我们软件的设计思路,以及里面比较值得注意的地方。测试的部分我们主要做的是两部分,一部分是人工的测试,就是我们的测试人员会把软件所有的按键遍历一遍,找出其中的问题,也确实发现了一些bug,而且因为我们目前推广的主要都是自己认识的同学或者亲朋好友,所以有问题的话他们都会给我们反馈;另外一部分是云测试,有百度云测试以及Testin的云测试,我们一共做过四次云测试,得到的结果程序兼容性大致在90%,然后深度遍历的测试也没有发现什么问题,这是我们的测试报告http://www.cnblogs.com/sevens/p/4200151.html
7、对于项目的目标用户是一般学生的项目, 你们如何找到学生做需求分析?他们给你什么样的反馈?
因为考期的时间确实比较紧张,所以我们就采用了拉身边同学试用,给自己熟悉的老同学以及亲朋好友试用的方式,让他们装上软件使用并把自己人为的不足之处反馈给我们,我们从这些返回的意见中得到的主要有3点。第一:里面的资源太少,有的同学想找一门想学习的课程但是没有;第二:UI的设计比较简单话,设计的界面比较单调;第三:播放器不太稳定,有时候缓冲等待的时间比较长。
三、团队项目的实际进展,发布的功能,发布软件的平台, 用户反馈的截屏。
1、项目的实际进展
燃尽图的增减是根据当天队员在scrum meeting反馈的情况进行的,有的时候大家都比较忙的时候,就比如说途中8号到15号,大家都在忙编译的实验,所以软工的项目就停滞了一个星期,后来有同学基本完成编译试验之后又开始有当天的进度。因为前期拖掉一些时间,所以在计划的最后一天我们乜有按时完成最后的任务,当时令我们鼓舞的是网络连接这个大问题终于搞定了,所以我们继续了一周左右将初步的版本完成了。
2、发布的功能
初始化,注册,登陆,免登陆查看课程,课程列表,我的课程,查看课程信息,选课,选择课程章节,课程播放
未实现的功能以及已知的bug:评论以及搜索功能;网络比较差的情况下程序不稳定;运行程序过程中断网程序会崩溃。
http://www.cnblogs.com/sevens/p/4200024.html
3、发布的网站
现在我们得到审批通过的平台有两个,一个是豌豆荚,另外一个是91,我们也在百度开发平台以及小米应用市场上提交过应用,目前还在审批过程中。
91平台:http://apk.91.com/Soft/Detail.aspx?Platform=Android&f_id=41351093
豌豆荚:http://www.wandoujia.com/apps/com.example.buaa_mooc
另外我们作为推广的平台还有百度网盘:http://pan.baidu.com/s/1nt0vz9v
4、 团队成员在M2 的角色和具体贡献
我们现在总体的代码量统计是2748行,但是因为前期有些工作最后被舍弃了,而且也删掉了相当多的部分,所以下面的代码量总量会超过代码总量。而且代码量因为难度的区别,也不能直接反馈成为贡献的多少。
团队成员 |
角色 |
具体的, 可衡量的, 可验证的贡献 |
陈少杰 |
DEV |
1350行(网络连接部分,数据处理处理部分,UI修改);宣传推广 |
王迪 |
TEST |
330行(课程搜索部分,后被去掉);发现没有网络时崩溃的bug被修复;宣传推广; |
金鑫 |
DEV |
820行(网络连接部分,数据处理处理部分,UI修改);宣传推广 |
雷元勇 |
TEST |
310行(课程搜索部分,后被去掉);发现课程图片加载出错的bug被修复;宣传推广;整理M2阶段的postmortem |
高孟烨 |
DEV |
910行(UI界面的搭建;前后台合并中研究解决后端遇到的问题);宣传推广 |
李承晗 |
TEST |
4次云测试:百度云测试;Testin云测试;云测试报告的整理;发现登陆之后课程信息显示未登录的bug被修复 |
郑培蕾 |
PM |
44篇博客,软件的整理上传开发平台,整理TFS,宣传推广 |
团队贡献分分配:
团队成员 | 贡献分分配 |
陈少杰 | 63 |
王迪 | 41 |
金鑫 | 55 |
雷元勇 | 42 |
高孟烨 | 58 |
李承晗 | 40 |
郑培蕾 | 50 |
五、特色功能
我们的项目是仿照学长的IOS客户端做的,接口也都是学长提供的,所以并没有什么特色的东西,如果非要说的话,免登陆浏览课程列表勉强算是,不过这也是跟着学长的实现的。
六、团队从用户那里得到了什么反馈,有什么样的bug
1、软件在网络情况比较差的情况下可能会崩溃,或者是课程图标加载出错;这应该是因为我们的算法优化做的不好,在刷新图片或者视频的时候对网络的要求比较高,如果在网络顺畅的情况下,运行是没有问题的。
2、UI界面比较单调;这是因为我们在网络连接的地方耽误的时间比较长,后来都在查资料解决这个问题,UI注意的不多
3、视频资源比较少。
七、相对于M1阶段团队的进步
1、首先是队员编程能力的进步,写了更多的代码,对Android编程也更加熟悉,以后如果再次做Android项目不会无处下手;
2、成员之间配合的增强,前端和后端DEV之间变得更加默契,接口设置的更加合理,还有就是测试人员和DEV之间也能够配合,测试出错误,及时反馈及时修改;
3、对软件开发过程的进一步理解,连接了一款软件的开发周期,扩充了视野,不在是以前什么都不懂的小白。
M2阶段的postmortem地址:http://www.cnblogs.com/sevens/p/4225358.html
八、总结
回想这个学期,M1和M2阶段给我们的留下的印象还是蛮深刻的,虽然我们组的项目没有hots大神组那么棘手,但是感觉一路走过来也是挺不容易的,主力的DEV们也都是奋战了好多个日夜,现在从Android零基础到独立开发出一款软件,之间的差距也是很大。所以总体来说,这门课是一个让人很痛苦,但是确实能学东西的课,我作为项目的PM,虽然说代码没写过,但是确实对软件开发的过程有了一些了解,而其他队员相信也都有自己的收获,我们很清楚我们做的还不够好,但是我们确实付出了努力,Sevens,加油!