Alpha阶段项目展示
团队成员简介
团队成员 | 角色 | 个人博客地址 |
---|---|---|
刘峻辰 | 后端开发 | 刘峻辰 |
焦云鹏 | 后端开发 | 焦云鹏 |
赵智源 | 测试&服务器部署 | 赵智源 |
肖萌威 | 前端开发 | 肖萌威 |
杨亦鑫 | 前端开发 | 杨亦鑫 |
罗奥升 | PM | 罗奥升 |
团队项目的目标,预期的典型用户,预期的功能描述,预期的用户数量在哪里?
团队项目目标
在Alpha阶段展示的时候,有200用户量,每日40活跃量。
团队预期典型用户
学生类型 | 使用本产品目的 | 使用场景 |
---|---|---|
重修某课程学生 | 重修某课只想及格 | 查询评论,了解课程通过率 |
学霸 | 想知道选哪个教师更能学到更多的知识 | 查看往年的评价,了解课程要求以及教师的情况 |
只想刷GPA的学生 | 为了有更高的GPA | 查询评价,了解课程给分情况 |
只想混学分的学生 | 为了通过课程 | 查询评价,了解课程难度和通过率 |
教师类型 | 使用本产品目的 | 使用场景 |
---|---|---|
授课教师 | 了解同学们对课程的真实评价 | 查看评论,了解学生意见 |
教学质量把控人员 | 把控教学质量 | 查询历年评价,了解不同课程的学生反映情况以及课程发展状况 |
团队预期功能描述
系统功能 | 验收标准 |
---|---|
注册功能 | 填写用户信息之后注册完成,同一个邮箱只能注册一个账号 |
登录功能 | 正确填写用户名和密码登录成功,否则弹窗提醒密码错误。解决密码明文保存的问题 |
搜索功能 | 实现关键字搜索,可以依据用户输入的关键字搜索出相应课程 |
课程信息 | 显示所有的课程信息 |
评价显示 | 分页保存评论信息,一页显示五条评论,显示评论人的头像以及ID |
评价功能 | 能够正常提交评论,评论字数限制为200,不支持匿名评论,只支持中文 |
当前用户数量
当前的用户数量是我们从Django后台查询得到的。
事先定义的软件下载量达到了么?为什么没有达到?
网站的unique visitor数目为728(截止2019.4.25早上10点)。如下图所示:
网站的注册用户还差大概50人达到预期的200人,主要还是推广这方面我们团队的所有成员都没有经验,目前还仅仅是通过在北航相关的群里宣传,但是效果并不理想。
与此同时,在4月22号晚上服务器遭受攻击,数据库回档,因此损失了不少已经注册过的用户和部分潜在用户。
网站被攻击记录
还有一个原因在于除了评分、评价和登录之外所有的功能都不需要注册,因此注册用户较少而访问量不小。
团队的成员如何分工协作的?有什么经验教训?
分工协作
整个团队分为四个小团体。分别是:前端开发,后端开发,测试&服务器部署以及PM。
前端开发的负责人是肖萌威,后端开发的负责人是刘峻辰,测试团体的负责人是赵智源,项目经理是罗奥升。
在Alpha阶段,我们主要是采用了石墨文档来发布任务,管理团队的任务进度以及成员贡献。
经验教训
在整个Alpha阶段,从项目经理的角度来看,整个小组的工作进行地还算有条不紊。
虽然我们在正式进行工作之前有预估过完成某项工作的时间以及难易程度,但是并没有确定好每个工作的优先级。
在团队的沟通与交流上,我们做的蛮不错,大家各司其职。不过也出现了因为个人原因导致项目的延期,这和PM的通知不到位有关。
在beta阶段,我们的主要改进的地方在于首先要确定好每个工作的优先级,同时要完善我们的团队成员,尤其是美工,最后还需要再次规范整个团队的风格和设计文档,以便于测试和维护。
团队是如何进行项目管理的?
Alpha阶段主要是采用了石墨文档进行管理,链接如右所示:项目管理。
团队在正式动工之前,首先确定了我们要完成的最核心的部分,即核心功能:评价功能。由此延伸到了注册登录,查询课程,课程评分等等其他的功能。
前后端开发成员依据这些需要完成的功能,分别在石墨文档上确定了自己的工作任务、预估完成时间、任务难度以及接口规范等等。
测试成员依据石墨文档,编写相应的测试样例,最终将测试结果反馈给前后端的成员。
PM则依据难度,修改BUG所需要的时间即任务完成度,以及完成任务的时间等信息来评判每个人的工作情况和团队贡献。
团队如何平衡 时间/质量/资源 争取如期完成任务的?
在分配工作小组之前,我们首先了解了每个成员的能力水平和工作意愿,然后分配到各自的工作小组内。
为了确保完成进度,我们在分配任务之前,预估了每个任务的难度以及完成时间,遵循“能者多劳”,“多劳多得”的原则,将难度和学习成本较高的任务分给了实力更加强劲的同学。
为了防止摸鱼划水情况的出现,团队制定了针对因个人原因而未能及时完成任务的惩罚措施。
为了确保完成质量,我们在文档上规范了接口格式,代码风格,命名风格,重新设计了网站架构,前后端完全分离。
以上其实都是次要的,主要还是大家的热情都比较高涨,积极主动地去交流,团队才能如期完成任务。
有些项目是在原来的基础上改进的,那么我们团队的软件工程项目质量有什么样的提高?例如,代码覆盖率从原来的x增长到y?
-
增加代码注释 代码注释从原来项目的基本没有提升到现在的20%左右,同时保证大部分函数都有函数行为注释。部分函数如验证请求等出于安全原因没有注释。
-
完善代码规范 我们以PEP-8规范为基础建立了自己的代码规范。例如我们的命名遵循模型单词首字母全大写,链接camelcase,函数使用下划线分割。同时在完成代码编写后,使用Pycharm的格式化功能格式化代码,修正换行等问题。
-
建立高效交流 我们除了使用issue外,还充分利用微信群,石墨文档进行交流。同时我们明确了bug的最长响应时间,确保每个bug都有人快速修复。后端还在石墨文档上建立了接口速查表,帮助前端快速了解接口变更,帮助测试提高测试覆盖率。
在产品之外,团队代码的软件工程质量如何?如何用数据来证明?
测试用例数目,代码覆盖率数目
齐全的文档在哪里?
原来的项目有些代码混乱,没有注释,没有详细的文档,你们的项目是如何更好解决这个问题的?明年的同学继续开发这个项目,会不会出现类似的抱怨?如果一个新学生在一台新机器上想编译并运行你的项目, 请问能顺利完成么?有什么样的文档能指导新学生?
项目齐全的文档,注释,代码规范以上都有提到,此处便不再赘述.
明年的同学应该不会出现这种抱怨。
在Alpha阶段发布说明博客和部署文档中,有谈及如何编译运行我们项目的问题,按照步骤来即可顺利完成。
对于项目的目标用户是一般学生的项目, 你们如何找到学生做需求分析?他们给你什么样的反馈?
我们利用了手里的班级群资源,分别在大三,大二,大一的班级群中找到了部分热心的学生做需求分析。
大一的学生因为未曾分专业,并且他们可自己选择课程很少,因此反馈较少。
大二,大三的学生则更多地希望评价真实,能够提供有效的信息。
所有的项目都会收集到用户的数据,请问你们对这类数据做了什么样的分析,这些分析如何验证或推翻了原来的假设?这些数据如何帮助项目改进软件工程的质量?
该部分由于Alpha阶段目前的用户和评论数较少,因此还没有办法对数据进行分析。
不过目前我们有以下的想法:
• 依据不同用户针对某课程的评论信息,评论时间,获取某课程的评论趋势
• 依据所有课程的评分和评价信息,获取各个评分档课程的分布和趋势
• 依据某个教授的所有课程的评分和评价信息,获取这个教授的好评度
团队项目的实际进展(拷贝那些 scrum 过程中的燃尽图即可),发布的功能(拷贝发布文档),在哪里发布了软件(3 – 10 个网址), 用户反馈的截屏。说明在项目管理中,scrum的燃尽图是如何真实反映项目的状态的?或者燃尽图美化了状态?
燃烬图
燃烬图如上所示,燃烬图能很好地反应项目所有任务的每天的完成状况,对项目管理十分方便。
发布功能
发布的功能在Alpha阶段发布说明可见。
软件发布地
由于我们的产品是网站,因此并没有发布地之说。
用户反馈的截屏
![](https://img2018.cnblogs.com/blog/1632489/201904/1632489-20190424021709798-1581695073.png)
![](https://img2018.cnblogs.com/blog/1632489/201904/1632489-20190424012505441-586955738.png)
![](https://img2018.cnblogs.com/blog/1632489/201904/1632489-20190424012513323-900886802.png)
![](https://img2018.cnblogs.com/blog/1632489/201904/1632489-20190424012518102-1328113259.png)
团队成员在Alpha阶段的角色和具体贡献
团队成员 | 角色 | 团队贡献分 |
---|---|---|
刘峻辰 | 后端开发 | 53 |
焦云鹏 | 后端开发 | 52 |
赵智源 | 测试&服务器部署 | 54 |
肖萌威 | 前端开发 | 52 |
杨亦鑫 | 前端开发 | 47 |
罗奥升 | PM | 50 |
其中,赵智源写了测试报告博客,刘峻辰写了发布博客,highcharts绘制美观燃烬图博客,网站被攻击记录博客,肖萌威帮助写了网站被攻击记录博客,其余的博客均由PM完成。
前端设计文档由肖萌威、杨亦鑫共同完成,测试报告由赵智源完成,后端接口文档由刘峻辰、焦云鹏共同完成。
PM罗奥升则完成了4次群推广,处理了10个用户的反馈。
具体工作和评分在项目管理中有详细记录。
测试所发现的BUG数目,覆盖率,在测试报告和测试文档中有详细记录。
团队从用户那里得到了什么反馈,有什么样的bug?这是预料之中的还是没想到的?
用户反馈的情况中,出现了一个让我们始料未及的BUG,那就是用户名为中文时,使用该用户名登录会报错。
总结,整个团队在Alpha阶段学到了什么,对软件工程的教育,对这个具体的课程有什么批评建议?Beta阶段有什么计划?
整个团队在Alpha阶段主要体验了软件开发团队在做完一个产品的一个版本的整个流程。前端,后端以及测试有相应的技术提升以及沟通能力的提升。而作为PM的我则学到了更多的管理经验,如何去统筹协调整个团队,尽可能调动每个成员的积极性。
我们希望这门课程能够让学生更多的自由,主要是让学生选择自己方便的管理团队的方式,我们团队曾因为想用石墨文档而不用issues与助教争论许久。
beta阶段的主要计划是首先确定好每个任务的优先级,然后在已有版本的基础上增加新的功能,具体也可以在我们的项目管理上见到。