Alpha阶段项目展示博客

时间:2024-03-26 08:05:13

烫烫烫烫烫(hotcode5)团队

1. 团队成员的简介和个人博客地址

Alpha阶段项目展示博客

刘畅

博客园ID:森高Slontia
身份:PM
个人介绍:
弹丸粉 || 小说创作爱好者 || 撸猫狂魔(x || 生命的价值在于创造
(我绝对不知道,我一个写代码的怎么就当PM去了?)


Alpha阶段项目展示博客

张安澜

博客园ID:MinstrelZ
身份:后端开发
个人介绍:
张安澜,来自北京航空航天大学2015级计算机学院,喜欢旅游,修仙党,lol大乱斗选手,吃鸡萌新,喊666贼6


Alpha阶段项目展示博客

辛德泰

博客园ID:Alethia
身份:前端开发
个人介绍:
我是ZnTcTi


Alpha阶段项目展示博客

窦鑫泽

博客园ID:AlenDou
身份:开发
个人介绍:
大家好,给大家介绍一下,这是我自己@窦鑫泽。
喜欢在行末尾写左大括号{,
代码字体喜欢consolas,
喜欢空格而非tab,
最喜欢的语言是Python,
//最喜欢的游戏是2k
比较喜欢和大家一起合作做东西,希望可以多向大家学习,共同解决遇到的技术性的困难,做出一个有价值能应用有用户的项目。


Alpha阶段项目展示博客

赵奕

博客园ID:ohazyi
身份:开发
个人介绍:
擅长做梦,喜欢折腾


Alpha阶段项目展示博客

方科栋

博客园ID:科栋
身份:测试
个人介绍:
零经验但喜欢解决问题带来的成就感,抱着“不选软工,枉入六系”的心态选课,愿意为此付出足够时间。

2. 团队开发情况

2.1 项目预期

2.1.1 团队项目的目标

资源共享
我们的目标是打造一个北航课程资源共享平台,让同学们更便利地获取各个课程的相关资源,资源包含且不限于课件、考题、笔记等。

互助学习
在此基础上,我们希望这个平台能够帮助同学们解决一些学习上的困难,并鼓励同学们互帮互助。

2.1.2 预期的典型用户

项目功能说明书中,我们已经对预期的典型用户进行了一个初步的估计,但后来发现当时预估的典型用户考虑得并不充分。

经过了Alpha阶段的开发,我们根据用户的水平进行了一定的分类:

学霸级:

  • 不屑于学院安排的课程,对课外知识涉猎更多,利用平台进行知识与经验的分享
  • 想学的课太多,很多知识都想了解一下,通过这个平台可以获取到感兴趣课的课件

普通级:

  • 平时还算用功,单纯希望期末考个好成绩,对得起这一学期的努力
  • 即将面临研究生考试,有些方,希望能在平台上得到比较靠谱的考研指点
  • 学习很努力,善于做笔记,记录自己学习的点滴收获
  • 趁着假期对下学期的课程进行预习

学弱级:

  • 平时浪太多,期末压力大,利用平台进行知识恶补

2.2 用户量情况

我们记录了每一个访问这个网站的ip,目前监测到的ip约有220条,有效的注册用户数量约为30

2.3 团队成员协作情况

2.3.1 分工协作情况

Alpha阶段项目展示博客
其中红色任务表示核心任务浅红色任务表示非核心任务灰色任务表示暂不考虑任务

我们将团队成员的职责进行了一个简要分配:
PM一人、测试一人、前端开发两人、后端开发两人
在Alpha前半部分,后端按照给定的接口说明进行功能的实现,前端主要负责页面设计,彼此关联度不是很高。在每日的会议上,前端和后端的分配的任务基本都是彼此独立的。
Alpha阶段的后半部分则是前端和后端的衔接,通过Ajax进行数据交换。在这个过程中,前端和后端的任务会有所交集,比如在衔接过程中遇到了一些问题,需要搞清楚是前端还是后端的责任,这时候就需要负责该功能的前端和后端开发人员进行沟通。

2.3.2 经验教训

其实感觉团队协作这一部分处理得还是挺糟糕的,糟糕的地方主要是以下几点:

(1) 任务分配不明确
总体感觉github上的issue没有处理到位,由于缺乏对一些任务的认知,导致没有充分细化,实际时间与预估时间相距甚远。对任务本身缺乏了解,多半会把任务想得过于简单,在分配任务的时候自然就会出现问题。工作少则修修bug,工作多则实现整个功能,进度忽快忽慢,缺乏稳定性,这是我认为最需要反省的一点。

(2) 没有更新技术说明文档
作为一个指挥官,太着急亲自投入到实际的战斗中,以至于连作战物资都没有准备齐全,这样的队伍多半是要吃败仗的。
很抱歉的是,这次似乎带着团队绕了很大一个弯子。在Alpha阶段开始前制定的技术说明文档的确起到了一定作用,但计划往往赶不上变化,实际情况和技术说明文档所描述的相差甚远。这也是为什么前端和后端的衔接花费了如此长的时间。没有一个统一的规格,就相当于一艘船没有龙骨,前端和后端就总是需要通过沟通去商议如何衔接,效率低了很多。

2.3.3 Scrum Meeting

在Alpha阶段中,我们小组共进行了10次会议,会议大致内容为:任务进度任务分配问题难点交流等等。
Alpha阶段项目展示博客

2.4 团队项目管理

使用github,分配的任务有进展,或处理了遗留问题后就push到dev分支上。

2.5 时间/质量/资源的平衡

一开始是划分了几大核心功能,如登录注册课程查找资源上传和下载等。目标是在Alpha阶段结束的时候,这些功能至少是一个“可以用的状态”,但是“不一定好使”,也就是先解决“温饱”问题。如果时间还有富余,就将这些功能尽可能优化,向“小康”迈进。

2.6 测试情况

测试报告
下面的前四个是使用selenium进行自动测试的脚本,已在网站上运行成功,最后一个是负载测试的脚本,同样已运行成功。
测试注册功能: TestRegister.java
测试用户登录和访问个人中心: TestLoginAndUserInfo.java
测试课程搜索功能: TestSearch.java
测试下载功能:TestDownload.java
负载测试: test_load.jmx

2.7 代码规范

由于我们的前端框架是vue,需要用npm编译才能和后端进行衔接。而npm在编译的时候有着它自己的一套代码规范,我们认为这个代码规范很不错,就直接拿来用了。
npm的代码规范很严格,如每行的末尾不允许有空格,大括号前后必须有一个空格,所有引号必须为单引号,不允许出现tab等等。
另外在view.py中,我们对函数实现的功能进行了一个简要的说明,大大提升代码可读性,如图:
Alpha阶段项目展示博客

2.8 项目文档情况

在Alpha阶段开发工作开始前,发布了功能说明文档技术说明文档,内容包括原型设计接口说明功能验收标准等。除此之外,在Alpha阶段开发初期,还制定了一个数据库设计文档。由于开发过程中实际情况和文档所描述得有差异,于是对接口说明部分进行了更新,和项目代码一起push到github上。对于其他方面的说明之后也会陆续整理成独立的文档,与项目同步更新。

2.9 对于项目的目标用户是一般学生的项目, 你们如何找到学生做需求分析?他们给你什么样的反馈?

在选题的时候,我们面向北航所有本科在读本科生,发布了《北航信息平台用户调查》。此次问卷调查共回收有效问卷95份。

2.9.1 功能需求调查

调查其中一项是让同学们对平台功能进行选择,结果如图所示:
Alpha阶段项目展示博客
如上图,分数越高,表示该功能越受用户青睐。由于课程平均分、挂科率等数据需要和教务协商,我们决定优先实现资源共享功能。

2.9.2 用户行为调查

问题1:你是否需要一个平台,用于了解课程信息,并与其他同学交流?
Alpha阶段项目展示博客

问题2:如果这个平台上有课程相关的资源(如课件、考题、笔记等),你是否愿意以做出部分贡献(如上传资源、撰写课程心得)为代价,获取这些资源呢?
Alpha阶段项目展示博客

问题3:你是否愿意花费一些时间精力,撰写某门课程的学习心得、课程体会,为接下来学弟、学妹们的学习提供帮助呢?
Alpha阶段项目展示博客

虽然调查报告的结果显示同学们对于这个平台充满期待,但调查数据也只是一种比较理想的预期估计,要想取得用户的青睐,还需我们多加考虑平台的具体设计。

3. 进展情况

3.1 燃尽图

最后一次会议的燃尽图:
Alpha阶段项目展示博客
这个燃尽图是根据github中issue的关闭情况自动生成的,因此符合开发的实际情况。

3.2 发布的功能

我们的网站: 北航iCourse课程资源平台
资源的下载功能(无需登录)
Alpha阶段项目展示博客
资源的上传功能(需要登录)
Alpha阶段项目展示博客
最新资源显示
Alpha阶段项目展示博客
课程模糊搜索功能
Alpha阶段项目展示博客
统计下载量/课程访问量功能
Alpha阶段项目展示博客
登录/注册功能
Alpha阶段项目展示博客
个人中心
Alpha阶段项目展示博客
一键加入用户群
Alpha阶段项目展示博客

3.3 用户群中的反馈

关于资源窗口显示的问题
Alpha阶段项目展示博客
关于获取资源信息时间过长的问题
Alpha阶段项目展示博客

4. 团队成员在Alpha阶段的角色和具体贡献:

各成员贡献情况。贡献分的计算方式依照事先制定的贡献分分配文档(有一定调整)。
Alpha阶段项目展示博客
Alpha阶段项目展示博客

5. 所做软件最有特色的功能是什么,请着重介绍一下。活的用户如何从你的软件中获益的,请现场展示。

目前最核心的功能是资源的下载。网站初始的资源全部是从课程中心获取的,对于资源的下载,用户无需注册/登录,这比课程中心要方便许多。
但是说到最有特色,我想应该是Beta阶段要重点实现的“贡献分”(和刚刚所说的软工的贡献分没有关系)——某同学在某门课上的贡献分越高,说明在他在这门课程上做出的贡献越大。为了鼓励同学们为课程学习做出贡献,每门课程都会有一个“贡献分排行”,对课程做出卓越贡献的同学的名字将会被公布在排行榜上。
Alpha阶段项目展示博客

不仅如此,对于贡献最多的同学,我们会给予“专家”的称号,这意味着他的文章或回答具有更高的可信度。
贡献分的获得方式有很多,可以是发布资源发表文章补充课程信息回答同学问题等等,我们希望这种积分制可以吸引同学们尽自己所能为他人提供帮助。

6. 存在的问题

6.1 得到的反馈

我们建了一个用户群,群里时不时会有反馈,但反馈的大多数是显示相关的问题。
老师和助教也在我们的开发说明中给予了反馈,其中注册邮箱不存在进入个人中心无法返回返回选课页面无法保留原状态这三条反馈很有价值,只是在Alpha阶段中来不及全部修复。在Beta阶段中,我们将对之前不合理的地方进行优化,提升用户体验。

6.2 目前的bug

由于功能还没有实现完全,有些链接点击后会起到和刷新相同的效果;
课程选择页面在不断地放大/缩小之后,课程列表的宽度会变得很宽,但刷新之后恢复正常。
有用户反馈,在部分浏览器中访问网站会出现问题,但是在Chrome、Firefox、Edge*问是正常的。
部分资源的访问依赖于课程中心,如果课程中心出了问题,可能会导致资源无法访问等问题发生。

7. 总结

7.1 团队收获

大一、大二的学习主要以独立完成课程设计为主,很少涉及团队协作内容,所以这次Alpha阶段带给我们最大的收获便是一次完整的团队软件开发流程。这是一次由“理论”转变为“实践”的过程,我们所学到的不仅仅是如何部署服务器,如何编写代码,如何对网站进行测试,更是如何彼此协作,提高团队开发的效率,这是由“独立完成”“协作完成”思维方式的转变。
就我个人而言,在Alpha阶段开始前不仅没有接触过网站开发,更是一个没有任何管理经验,不太擅长沟通的人(笑),所以这次担任PM的工作对我而言是一次不小的挑战。正像上面谈到的那样,我并不认为Alpha阶段的协作状况令人满意,所幸团队的成员都是一群充满活力和热情的老铁们,他们时刻鼓舞着我,信任着我,当协作出现问题的时候,他们没有抱怨,而是在积极思考如何解决问题,这令我十分感动,在这里我必须向他们表达感谢
Alpha阶段暴露的问题是带给我的教训,我会总结经验,不让同样的错误在Beta阶段重演。

7.2 Beta阶段的计划

Beta阶段的首要任务是对Alpha阶段的功能进行优化和补全,比如之前助教所提升的邮箱不存在问题,我们打算采用“邮箱认证”的方式解决,除此之外还有诸如“课程收藏”“资源收藏和评价”“举报和审核”消息提醒历史搜索热门课程等提升用户体验的细节功能需要实现。
另外我们的网站在部分浏览器上显示的效果不是很好,我们想在Beta阶段中对这一部分进行优化。
除了资源功能以外,我们还想再Beta阶段实现“发帖”的功能,我认为*那种设计很适合我们,既可以发表文章,也可以提问题,不过具体还需再商议。