天天看点

博客园班级博客分析

项目 内容
这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) (北京航空航天大学 - 计算机学院)
这个作业的要求在哪里 个人博客作业-软件案例分析

博客园班级博客分析

第一部分 调研,评测(软件的bug,功能评测,黑箱测试,第8章用户调研,12章软件的用户体验)

测试

本次作业中,大概花了1~2个小时,分别以老师、助教和学生的身份,对博客园的班级博客功能进行了比较详细的测试。由于平时作为学生用户,已经有了比较多的使用经历,故本次测试将偏重测试教师/助教端的功能,具体测试过程将以图文并茂的方法进行展示:

首先使用自己平时登陆博客园的账号进行教师身份验证。说是教师身份验证,其实也就发了个带验证码的电子邮件,流程上与很多网站基于电子邮件验证的注册方式无异,硬要说区别的话就是要求必须是edu邮箱,但很多学校的学生也注册了edu邮箱呀。

博客园班级博客分析

接着在这里注册了一个测试班级,同样也没做任何的验证,创建成功。

博客园班级博客分析

注册成功之后,在这里添加助教和学生。在注册了两个账号后,一个作为助教,一个作为学生添加到了班级中。之后又尝试添加真实存在的同学加入班级,同样非常顺利。添加成员时只需要园子昵称这个在博客园中公开的信息,剩下的字段随便填写即可。

博客园班级博客分析

之后尝试作为老师布置作业。吐槽一下:为啥作业布置界面的markdown就能边写边预览,在自己写博客的时候就不行呢?

博客园班级博客分析

作业发布。发布后的作业并没有严格遵循markdown的标记格式,也算是一个bug了。

博客园班级博客分析

班级管理界面。在这里设置了非常夸张的未交作业默认分数并且保存成功了。顺带一提,这个设置页面只能在班级首页中“推荐博客”旁边的“管理”按钮中进入。

博客园班级博客分析

以助教身份进入这个界面,包括解散班级在内,可以进行的操作和教师完全相同,另外之前保存的默认分数这次却显示数值有误,所以刚才是把一个“有误”的数值保存进去了。

博客园班级博客分析

这里测试了一下博客园的查重功能。我用测试的学生账号复制了一份自己原来的博客(改了几个字)然后作为作业提交,在教师端进行查重。查重的结果还是比较准确的,不过尝试点击查到的博客时,博客园报了错误500。

博客园班级博客分析

这里还测试了一下班级中的投票功能。老师、学生和助教都可以发表自己的投票,投票中还能插入图片,还能将结果以Excel形式导出。

博客园班级博客分析

学生打分界面。刚才设置的那个夸张的默认分数还是成功打上去了。

博客园班级博客分析

在这个界面也可以为学生的作业打分。这里的打分设置就有了限制,不过这个地方也有bug,后面会详细介绍。

博客园班级博客分析
bug描述

其实阅读了刚才测试的过程,想必就会有槽点满满的感觉吧?现在概括性地梳理一下博客园的班级博客中存在的各种bug:

1. 几乎没有身份认证

从教师身份注册,到班级的建立,再到添加助教和学生,整个过程中,几乎没有进行哪怕一次有效的身份认证(如果不算那个没什么用的edu邮箱要求,甚至可以把“几乎”去掉)。不仅如此,博客园的班级博客还有一个及其容易被利用的设置:教师添加学生后,学生可以无需经过人工审核,自动获得开通博客的权利,也就是可以绕开下面这个申请:

博客园班级博客分析

这个设定的初衷是方便班级学生快速建立自己的博客并提交作业,但显然是给了想在博客园发布广告等无关信息的人可乘之机。其他的地方也缺少必要的认证,比如我建立的班级在上海音乐学院-计算机科学与技术系,但事实上,我并不在上海音乐学院,经过核实这个学院也没有计算机科学与技术系。

2. 设置与显示上的混乱

首先是提到的markdown格式的问题,想到之前因为没仔细检查结果提交的博客排版出现混乱,经助教提醒才发现的事情,可能这个问题对使用体验的影响还是比较大的。

其次就是这个谜一样的给分机制。由于时间关系,我没有去查看控制分数输入的源码,但很明显,在班级管理中“设置默认分数”的部分,与作业界面中打分的分数范围设置就不统一,而且各自都存在不同的bug。前者的bug已经在之前的界面展示过了,后者的bug是出现在数字格式的设定上。博客园最终显示的成绩最多是允许显示一位小数的,但可能是处理正则表达式出了问题,当我尝试小数点以外的符号时,并没有提示我输入错误,而是截取了非法符号前的数字作为成绩。这样,如果老师想打"9.5"这样的分数却手滑打成了"9,5",系统就会给学生打9分,在批量输入成绩时,老师如果没仔细检查的话,这名可怜的学生可就白白少了0.5分。

从这个bug中揭示出来的是博客园的一个更大的问题:不统一。这里是相同内容在规格上的不统一(如果使用同一段输入验证代码至少两边是同样的bug),在其他地方,比如账户的个人设置界面,还有风格上的不统一。不过这已经不是本次评测的内容了。

博客园班级博客分析

(感兴趣的可以把6个选项卡挨个点一下,有惊喜)

用户体验

虽然说博客园的班级博客有这样那样的bug也好,不安全也好,它还是抓住了最重要的用户,并为他们提供了最最需要在自己的平台上解决的功能。对于老师和助教,这个功能就是方便地管理学生和他们的每一次作业;对于学生,这个功能则是交出一份高质量、排版精良的技术性作业。实际上后一个功能是建立在博客园已有的博客撰写、对诸如markdown的轻量标记文本的支持、自主调整html和CSS格式等功能之上的,真正的杀手级功能,也是CSDN和其他技术性或非技术性博客所不具备的功能,是它方便的班级管理系统。虽然以今天的眼光来看,它的功能也仅限于班级的组织+作业布置与评分,但毕竟它做了,而和他有直接竞争关系的其他软件没有,所以这个功能的存在本身,就为有相关需求的用户提供了其他软件替代不了的体验。另外一个加分项是,博客园的广告相对CSDN少了很多,如果只使用班级博客相关功能的话,几乎可以忽略不计。

但在满足了用户的基本需求之后,是否能够更上一层楼,提供更好的用户体验呢?博客园没有这么做。如果让我猜测的话,可能是软件的设计者觉得没有必要这样做吧。毕竟,博客园说到底也只是个博客,班级博客说到底也只是一个以班级为组织形式的,以博客为作业形式的,方便交作业的平台,就连班级中的投票功能,如果不是因为这次测试,可能我自己都注意不到它的存在,对这样一个系统进行优化的投入产出比是很低的。话又说回来,现在用户量比较大的软件,很多都在尝试做各种功能细节上的增补与优化,这些改进不仅满足了用户的需要,从某种程度上甚至能开发出新的需求(比如某个被玩坏的+1),所以从软件开发的角度来看,投入一些精力对软件进行改进总是有价值的,哪怕稍微调整一下现在的班级页面单调的配色,也何尝不能提升用户体验呢。

结论(定量测评)

评分标准上与邹欣老师保持一致:满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分

功能部分 描述 评分
核心功能 核心功能:班级的建立、作业管理,硬要算三个的话可以把作业发布于提交算成两个功能。在这些核心功能上,博客园做的很不错,更何况没有竞争。 10
细节 细节上,博客园应该说还有挺多有待改进的地方。让我印象最深刻的就是去年OO博客园第一次作业时,好多人写了作业却忘了在班级的作业界面上提交。虽然这个亏不会有人吃两次,但为了改善用户体验,设计一些机制避免此类问题是很有必要的。 6
在广告这一点上毫无争议地给满分,在其他方面上,除了刚才提到的交作业的问题以外,博客园实现得都不错,适应了以后体验非常好。 9
辅助功能 整个班级博客界面的色调过于单调,如果是我的话一定会考虑在这个方向上做一些优化,何况难度并不大。 4
差异化功能 班级博客实际上没什么直接的竞品。但考虑它本身的功能与实现都比较简单,如果有人想取而代之,可能也并不是什么难事? 8
体验
软件的适应性 由于采用了响应式布局,班级博客在不同设备、不同窗口大小下阅读起来都很便利,按钮的大小在手机上也足够大。
成长性 虽然谈不上”越用越方便“,但适应了基本操作以后,还是觉得很好用,类似于"git add --all"到"git push"的一串傻瓜操作,提升空间也不是很大。
用户有控制权 就学生端来说,作业上交以后能很明显地在列表里面找到自己的作业。不过老师端的话,打错分数的反馈可就不够了。 7
自选评分项目
安全性 班级博客缺少身份认证系统,其安全性基本上建立在老师和助教操作的正确性上,并且这个机制本身能够作为绕开博客注册那道关卡的漏洞。 -3
软件给用户的信心 使用久了以后,就会感觉包括班级博客在内,博客园还是缺了些进取心。很多可以做的优化都没做,身份认证也令人堪忧,让用户感觉就是”凑合着用的软件“。 3

最后的总分是64/100,大概是刚刚及格的水平。虽然各项之间的分数相差有点多,不过这个总分还是挺符合内心期望的。如果不分小项地直接给整个班级博客打分,满分10分的话,估计也是六七分的样子。

手机端的测试

目前博客园的官方APP并不支持班级功能,我使用手机浏览器,对班级博客进行了网页上的浏览。篇幅关系这里就不放图片了。

就结论来说,手机端的班级博客不过是对PC端的内容进行了重新排版(应该是使用了响应式布局),在UI的设计上应该说不好不坏,至少在阅读舒适度和按钮可操作性上没有问题,但由于设备尺寸与操作方式本身的限制,整体体验还是没法和PC端相提并论。不过我想应该很少有人会经常在手机上使用这个功能,毕竟手机上写博,内容还是计算机相关,这样的人还是很少吧。

第二部分 分析(参考8.6节对工作的估计,和14.1节软件工程的质量)

使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。(必答)

现在的话,博客的很多模块,包括前端模板、markdown支持等等都可以在开源渠道获得,如果只考虑班级博客这一个部分的话,如果和博客园一样不考虑身份认证等安全性细节,以及界面上的优化处理,只是勉勉强强把核心功能实现的话,我觉得加上测试的花费,最多也就10周吧。

分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?(必答)

这个软件的优势在于:实现了别人没实现的功能。劣势在于:没有更进一步实现一些拓展功能,而且基础功能的实现也有提升空间。

由于缺少类似的竞品,估计这个产品的质量在同类产品中应该可以排第一。从间接对手来讲,班级博客可能面对诸如MOOC、在线课堂等的冲击,但他们都没取代博客作为分享平台的价值(其实MOOC的作业也是可以公开和分享的,但那一类作业往往不像博客这样硬核)。

从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。

从之前分数bug推理,这个团队的联系可能不够紧密,在某些设置上未能采取同样的标准。从这方面来讲,建议就是加强团队之间的沟通,特别是在规格上保持一致。

另外一点就是,要尽可能让用户对这个产品充满信心,要能让用户感觉到开发团队是确实在努力地提升产品的价值,让用户体验变得更好,而不是做完以后就放在一边不管。

你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?

对于身份认证的bug(实际上作为一个bug看待的话,这个bug也未免太严重了),我想是软件团队有意不修复的。虽然没有身份认证很不安全也很不专业,但免去这个步骤以后,一方面可以提高用户使用的方便性,另一方面也能为博客园赚取一些流量(虽然不是广告推广,就是”测试班级“)。

对于成绩录入的bug,想必就是软件团队没有充分测试的结果。不过长时间不修复的话,可能还是觉得没有太大修复的必要吧。但这种bug存在本身,就足够让用户对软件的可靠性存在怀疑。

第三部分 建议和规划(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)

这个软件/网站/服务有很多可以提高的部分,如果你是新上任的项目经理,如何提高从而在竞争中胜出?

首先,市场有多大?潜在的用户有多少?

最主要的市场还是高校计算机相关专业(包括但不限于CS、SE、网安等等),但其他专业与计算机或电子信息的联系也日益紧密了,许多理工专业都至少开设了一门程序设计课,如果这些课都使用博客园进行班级与作业管理,用户数字即使只去想象,估计也是很大的数量。

目前市场上有什么样的产品了,它们的优势劣势在哪里?和它直接竞争的产品在那里?

市场上已有的博客产品,最主要也是最相似的对手就是CSDN,但它没有班级系统;班级、作业管理可以通过MOOC或者在线课堂、课程中心来实现,但它们不具备博客的分享性质。所以,和它直接竞争的产品大概还没有,但不保证以后不会有后起之秀取而代之。比如某一天,某个MOOC平台的用户量也发展到可以与博客平台相匹敌的程度,那么这个平台整合一下资源,推出类似于博客的作业系统,由于MOOC的设计初衷所决定的天然优势,博客园的班级博客可能会被抢走一半以上的用户。

作为新的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?

核心用户:

  • 教师——精通计算机,但由于年龄限制,适应新软件的能力可能不如年轻人;
  • 助教——以大学高年级本科生和研究生为主,计算机相关专业居多;
  • 学生——以大学本科生为主,计算机相关专业学生为其中最主要的用户;

教师和助教的表面需求就是管理班级(添加学生),收发作业;而学生的表面需求是按时上交作业,潜在需求则是希望能在作业中学到知识。这些知识恰好可以在博客园中获得,因此可以使用推荐算法来为学生推荐相关博文,满足学生的求知欲。

如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。

本项目的开发难度不高,但可以适当进行后端优化来提高性能,避免意外事件(比如DDL前过多学生提交作业导致服务器崩溃);

测试方面,在主要功能的实现上,应进行仔细测试,确保不出现严重的功能性bug。其他非主要功能的bug影响不大,不用投入太多精力测试。

美工方面,虽然从地位上讲比较重要,但考虑软件性质,不需要过度花里胡哨的页面,也就不需要游戏原画那种级别的美工,只要在人员分配上足够重视即可。

综上所述,人员可以考虑平均分配,同时可以考虑采取结对方法,统一规范,避免不一致。在16周的开发期间(可能用不上16周),可以考虑采用敏捷开发流程,每周或每两周一迭代,前期以后端为主,后期以前端为主,在迭代3~4个版本之后,还可以考虑邀请博客园现有用户进行测试,降低测试成本,同时收集更多改进意见,为最后的公开版本做好铺垫。

后续

本部分不属于作业规定内容,记录本次博客园班级功能测试后发生的各种相关情况,持续更新。

(包括但不限于被官方查水表,被同学亲切问候)