软工网络15个人作业3——案例分析
题目
很多同学有误解:
- 软件工程课是否就是理论课?
- 或者是几个牛人拼命写代码,其他人打酱油的课?
- 要不然就是学习一个程序语言,搞一个职业培训的课?
都不对!软件工程有理论,有实践,更重要的是分析,思辨,总结 。在课程中,自己组织团队写一个软件,然后分析,这样能根据切身体会来分析,很有价值,但也有可能 “身在此山中” ,未能看清全局。而且,课程时间有限,我们也不能做很多具体的项目。因此,我们也需要从 间接经验 中学习,分析。别人的项目的成败同样能够给我们很多启发!
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。
- 你为何成为它们的用户?
- 它们的团队做对了什么,做错了什么?
- 如果你来做,会做得更好么?
通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
产品分析
选择产品
智慧集大平台——集大通APP
“集大通”是我校统一通信平台,集消息推送、应用入口、组织机构、单点登录等为一体,目标是方便学校办公、服务与通信,方便师生学习、工作、生活与娱乐,成为学校信息化的入口平台,成为“智慧集大”的窗口——“微门户”,同时实现移动信息化。
同学们在使用过程(电脑或者手机版)中,对其所倡导的便捷、信息化、应用集成等方面的功能进行分析。
第一部分:调研, 评测
-
下载并使用,描述最简单直观的个人第一次上手体验。
- 集大通功能界面
- 使用集大通也有3年多了,最开始使用集大通是收到录取通知书的时候,那时候使用集大通一般就是用来看看朋友圈的消息之类的就没有其他用处了。现在的话,一般是在需要查询成绩,查课表,或者是查询校园卡之类才会登入集大通。像集大通的查询成绩这一块的用处就很大,使用集大通查询成绩的话就可以不需要每次都登录教务处,可以直接查询成绩,而且有时候出成绩的时候已经放假了,那时候就没有校园网了,就不能够登录教务处了,而集大通则可以不需要校园网就可以查询成绩,这样很方便了。而且集大通的朋友圈功能也很有用处,当有些事情不是很清楚的时候就可以在朋友圈那问问,很快就会有人给与解答了,很方便。
- 集大通的界面看起来都是比较简洁明了的,很容易上手,很容易找到自己所要用的功能在哪里。集大通的功能也在不断的完善,不断增加一些有用处的新功能。
-
按照《构建之法》13.1节描述的 bug 定义, 找出几个功能性的比较严重的 bug,至少2个。
-
用专业的语言描述 (每个bug 不少于 40字),如有必要, 可以配图。
-
Bug1 课程表功能
集大通的课程表功能进入缓慢,有时候需要等待好久,还会出现白屏的状况。课程表显示的课程与自己的实际课程不一样,一些自己没有选择的课程也出现在课程表中,而且课程表的显示界面不能够将课程一次性显示出来,需要左右滑动才能看到全部课程,以及课程的上课时间、老师、地点,都需要点击之后才显示,每次只能显示一个,这样想要把课程表截图就不是很方便了。而且在课程表中像是换肤,关于我们啊这些功能都不能够使用,点击之后都没有反应,仅仅是个摆设。
- Bug2 课程播报功能
集大通教务中有课程播报的功能,但是课程播报并不是每天都会有课程播报,像这一周以来就只有3.18播报课程,其他时间教务中并没有播报课程,这项功能并没有很好地实现,课程播报都快是随缘了,如果真的要靠教务的课程播报来提醒第二天的上课课程,那真是黄花菜都凉了。
- Bug3 签到功能
集大通的签到功能其他都没有什么问题,就是有时候只要有没有签到的日子,就会告诉你签到小勤失败,就算是本月1号也会这样显示,emmm,这就有错了。
- Bug4 应用中心功能
在集大通中点击进入应用中心的前几秒中总是会出现有几个图标一直闪烁,刷新的情况,而且闪烁的图标只有每项分组的第一个闪烁。每次一点击进入就一直闪,看起来很不舒服,眼睛难受。
- Bug5 校园卡查询功能
在集大通的应用中心中有一项校园卡查询功能,使用它可以进行校园卡的余额、使用情况的查询,但是这项功能不能够实时更新,会有滞后,例如现在使用校园卡消费了,但是这时候去校园卡查询上查看会发现这时候并没有实时更新,这一笔交易并没有显示出来。
- Bug6 应用中心里的功能内部排版
在从应用中心中的一些功能点击进入后,会发现有些功能出现的排版是电脑的排版,显示在手机上的话,就不合适了,显示的界面就只有一部分,需要我们左右滑动才能看到全部内容。整个界面的排版不能够使用手机,没有转换成手机的排版,仅仅只是转到网页版而已,这样界面不美观,也不方便。
- Bug7 课堂助理
集大通最近新添加了课堂助理这一项功能,但是这一项功能的完善程度是最低的。不仅在进入课堂助理后并没有正确显示自己所上的课程,而且在进入某节课程后出现界面很不美观,而且点击课程中的功能并没有出现所要的内容,仅仅是将页面再刷新一遍,没有进入点击的功能,例如公告啊之类的,而且也没有任何提示,例如没有测试之类的提醒。
-
-
相信每个同学的朋友中一定有人需要用这样的软件, 选择一个朋友(用户)进行采访,并加以记载。
-
提示: 采访提要
- 介绍采访对象的背景和需求(他们为何要使用该软件,例如开博客,读博客,给博客点评,她有什么痛点,她还有别的需求么)
采访对象的背景:
性别:女,专业:网络工程,关系:舍友
需求:
使用集大通进行查询成绩,课表,在集大通的朋友圈问一些不是弄得很清楚的问题,使用集大通查询校园卡的余额,对校园卡充值,查宿舍电量之类的。使用集大通进行校园网缴费,报名考试之类的。
痛点:
有时候查询的信息会滞后,不能实时更新。有些功能没有完善不能使用。有些功能打开缓慢,卡顿,会出现白屏的状况。- 让采访对象使用10 – 30 分钟该APP的功能 (请上传照片证明用户的确正在使用, 远程采访的同学请让别人帮忙照相)
用户使用这个产品的过程:
- 下载app,安装app。
- 使用账号登录集大通,进入集大通
- 选择所要使用的功能,进行操作
- 描述用户使用这个产品的过程,用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
基本上用户的问题都能够解决。
数据量:要有校园卡余额、使用信息,宿舍电量,学生成绩,学生课程等数据,集大通的数据量还是很大的,数据更新一般比较迅速,但有些数据的更新也有延迟。
界面:界面比较简洁,明了,能够知道怎么找到所要使用的功能,能够很容易上手软件,但是在应用中心的一些功能的内部排版很乱,不适应手机,使用不方便,需要一直手动滑动,才能查看全部的内容。
功能:集大通的功能还是很完善的,用户的基本需求都能够满足,能够查询用户想要的信息,但是对于一些新增的功能就不是特别好用,甚至有些功能仅仅只是摆设,并不能查询出想要内容。
准确度:在像查询校园卡余额、消费明细,学生成绩上的准确度还是特别高的,但是对于学生的课程表上的数据就不能够准确地显示学生的具体课程信息,往往使用的都是班级的课程信息,没有因人而异。用户体验方面:有时候明明已经登录过了,但是还是会需要重新登录,不能够一直保持登录状态,这样很不方便,老要进行登录操作。而且一些经常使用的功能没有放在主界面中,而是放在副界面的某一个角落,查找不是很方便。而且像是新闻这种很鸡肋的功能还放在主界面的选项栏中,但是应用中心这种明显使用率更高的功能反倒放在了副界面中,有点颠倒主次了。集大通的朋友圈经常都是各种微商的广告,没有一点内容,基本上都是在卖东西,让人很不爽。
- 用户对产品有什么改进意见?
希望能够将经常使用的功能放置在显眼的地方,调整应用中心中一些功能的内部排版,让他们可以适应手机,不要仅仅是转到网页版中。希望课程表的信息可以根据每个人的实际选课情况来显示,不要使用班级课表的信息,而且可以直接导出课程表就更好了。像课堂助理希望可以多加改进,能够让这项功能可以使用,能够跳转到相关页面,而不仅仅是刷新当前页面。
-
-
请选择一个结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价:
- 非常不推荐
- 不推荐
- 一般
- 好,不错
- 非常推荐
我会选择好,不错,集大通在我们的校园生活中是不可缺少的,我们需要使用它进行查询成绩啊(尤其是在没有校园网的时候),查询校园卡信息,校园网缴费等,使用集大通的话就会更加方便,有时候也是必须的选项。但是,集大通自身还是存在着这样那样的Bug,从而影响用户体验,使得用户的需求没有办法满足。希望能够解决集大通的Bug,让集大通能够更完善。
-
[附加题] 除了定性的结论,是否能有定量的结论 (就像比较时髦的手机评测那样, 跑个分?), 如何定量地评价一个软件?
可以有定量的评价。
软件需求:6分,一般是只有需要在查询成绩和课程的时候,对于集大通的使用率最高,而且一般只有在开学初和学期末才会用到这些功能,其他时候很少会去使用集大通或者是其他功能,就算是校园卡充值功能也基本上一个月最多一次。不像qq,微博这些软件那样有事没事点开来逛一逛,看看消息之类的。并且有很大一部分同学都是用完就卸载集大通了。
软件功能:7分,大部分功能都可以使用,但是有一些功能仅仅是把它们显示出来了,这些功能都不能够使用。
界面设计:7分,主界面看起来还是比较简洁明了的,但是一旦需要跳转到像是易班啊,集大教务处啊这些页面时,界面的排版就不美观了,也不能够很好的显示内容,会出现页面的字覆盖、叠加的状况,也没有手机页面版。
软件兼容性:9分,集大通可以兼容iOS系统和Android系统,基本上现在市面上的机型都可以安装和使用集大通,基本上不会出现不兼容的情况。
软件性能:6分,集大通的响应速度慢,加载时间长,而且并发性能低,一旦使用人数增加,加载时间就不断延长,像是集大通的朋友圈就出现过几次崩溃,刷新不出来的情况,教务处选课的话,使用的人一多,就不能够进入界面了。
软件推广度:10分,集大通从我们收到大学录取通知书时就已经让我们知道使用它了,整个学校对于集大通都是知道,使用过的。推广度还是很大的。
用户体验:7分,一般来说,集大通可以满足用户的大部分需求,但是同时也会有令用户不满意的时候,例如强制关注一些公众号,朋友圈太多广告,加载慢等问题,都影响着用户的体验感受。
第二部分:分析
-
使用此软件的所有功能 , 估计这个项目做到这个程度大约需要多少时间 (团队人数6 人左右, 计算机大学毕业生, 并有专业UI 支持)。
想要实现集大通的所有功能的话,估计需要6个月的时间
用户需求调研:2周,通过问卷调查,采访等方式,调查出对于这样的软件,用户希望哪些功能。
需求分析:1周,整合调查结果,分析出要做的功能,区分功能的主次。
设计分析:1周,根据需求分析的结果,设计功能结构、软件主体,划分模块。
代码编程:3个月,根据每人分配的模块进行编程,实现所需的功能,整合代码,UI进行页面设计等。
软件测试与修改:2个月,对做出的软件进行测试,测试软件的功能完善度,界面美观简洁度,测试软件兼容性等方面,同时将测试出的错误处进行修改、完善。 -
不要写成一个罗列功能的流水单子! 而是要集中火力在一个场景,这个场景中典型用户有什么需求,软件如何解决了需求(或者没解决),UX 有什么细节是好的,差的,请结合书上UX的内容来分析。
场景:用户使用圈存机对校园卡充钱,但是圈存机坏了,不能够充值。这时候就可以通过集大通上的校园卡充值功能对校园卡进行充值,然后使用领款机领款就行了,就不会想原来只要圈存机坏了就没办法电子账户充钱,只能使用现金充钱了。
典型用户需求:对校园卡进行充钱。而集大通解决了用户的需求。
UX:
好的:使用集大通进行校园卡的充值,可以随时随地进行,不需要到特定的地点,就是在教室中也可以进行,而且不需要排队,等待别人充钱完毕。并且学校圈存机加载速度慢,很浪费时间,还经常有损坏不能充值的情况。而使用集大通的校园卡充值的功能就可以避免这些情况。
坏的:但是使用集大通的校园卡充值功能对校园卡进行充钱后,还需要到领款机进行领款,才算充值成功,不然校园卡里还是没有钱。如果能够实现真正的手机充值,不用去领款机领款就更好了。 -
你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?从下面的可能性中选取几个:
- 对用户需求掌握不好
- 具体的设计质量不高
- 开发人员粗心大意
- 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
- 其他
(1)课程表功能中的Bug不能提前修复的原因在与开发人员粗心大意,开发者可能会认为班级的课程表就是每个人的课程表了,忘记了公选课、选修课这些课程了,也是为了自己方便获取信息,就直接将班级课程的内容也应用到了个人课程表中。
(2)校园卡查询功能、应用中心里的功能内部排版中的Bug问题不能提前修复的原因在于其他,这些Bug只是还没有完善好而已,本身运行是没有问题的,只是会有一些小瑕疵。
(3)课程播报功能、签到功能、应用中心功能中的Bug问题不能提前修复的原因在于测试把关不严,敷衍了事、对用户需求掌握不好,像是签到的问题明明就只是在测试就可以检查出并修改好的,硬是到现在也没有进行修改,只是大概因为开发者觉得这些Bug不是很重要,修复不修复都没有问题,不影响使用,所以就一直没有进行修复,导致了用户体验很不好。
(4)课堂助理中的Bug问题不能提前修复的原因在于具体的设计质量不高,在课程助理中的Bug就不是零零碎碎的小瑕疵了,而是整个功能都不能够很好的执行,很多功能都只能算是摆设,对比起像课堂派这些软件的功能实现方面就差很多了。 -
团队在哪一个层次还有问题? 可以把自己想问软件团队的问题都列出来, 也许就能得到团队的亲自解答了!
(1)既然都可以在集大通上对校园卡充钱了,那么能不能做到不需要去领款机领款,直接网上充值就可以了呢?
(2)是不是可以实现直接在集大通上充电费、水费呢?有时候在洗澡的时候突然没电了,又不好下去充钱就只能摸黑洗澡,要是可以在集大通上缴费是不是就方便多了?
(3)有些不能执行的功能是不是也应该尽快完善好,不然写出来有什么用,只是摆设吗? -
从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面 (具体建议)。
还是应该要多收集用户的需求和反馈,无论是在软件开发前期还是软件发布后,软件团队都应该注重好这方面。看是否软件的一些功能达到了我们最初的预计,通过用户的反馈意见,合理地对软件进行修改、完善、升级,如此才能够提高用户体验的感受。而且在软件发布出来之前是不是应该进行更细致,更全面的测试,保证软件运行的流畅程度和功能的完善程度,而不是让用户在使用过程中不断发现软件的Bug。
第三部分:建议和规划
(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)
-
这个软件/网站/服务有很多可以提高的部分, 如果你是项目经理,如何提高从而在竞争中胜出?
(1)去除一些鸡肋的根本不会用到的功能,提升界面的简洁度,规划好界面中各个功能的分布,注意好功能的主次之分,对于用户经常用的功能要放在显眼的地方,而不是需要进行好多步骤才能够找到。而且对于像是教务系统的页面,将它修改为适应手机版的,这样可以提高用户体验的满意度。
(2)将校园卡充值部分和水电费充值部分实现网上充值,减免去领款机和缴费机充值的麻烦,而且可以随时随地进行充值,这样大部分人都会选择使用集大通进行充值服务,而不是特地到领款机或缴费机那进行充值。如此就一定可以提高集大通的使用率、下载率,毕竟,每个人都会愿意选择更方便的方式。 -
目前市场上有什么样的产品了?
像集大通这样的校园app的话,其实现在上面已经有很多了,大部分学校都会有一个自己学校的app。例如厦门大学就有自己的app——i厦大。同样也是进行成绩查询,查询课程表,朋友圈之类的,而且i厦大已经实现直接在网上充电费的功能了。
-
作为新的项目经理,这个产品的核心用户群是什么样的人, 典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
这个产品的核心用户群是在校大学生
典型用户:
学生
学历:集美大学在校生
年龄:18岁-22岁
专业:网络工程等各种专业
爱好:无限制
收入:基本无收入
表面需求:满足基本的校园生活需求,例如使用集大通查成绩、查课表、充值校园卡等需求。
潜在需求:利用集大通,做到一软件在手,足不出户,便可万事搞定。例如交电费,交水费等等都可以使用集大通来完成。 -
功能:你要设计什么样的功能? 为何要做这个功能,而不是其他功能? 为什么用户会用你的产品/功能? 你的创新在哪里? 可以用 NABCD 分析(http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html).
我要设计的功能是集大通校园卡服务,通过集大通的校园卡功能,可以实现校园卡的所有用处,食堂刷卡、门禁刷卡等服务。
因为如果可以做到这个功能的话,出门、去食堂吃饭、交水电费等都可以在集大通上搞定了,就不会出现门口忘带卡,不能出门之类的情况了。
因为如果实现了这样的功能,用户就可以使用集大通来代替校园卡了,就可以不用怕校园卡丢了补办的问题、出门忘带卡、去食堂吃饭忘带卡的问题等等,而且这样的话,只要有手机,有集大通就可以完成校园中的所有生活、学习需求,还很方便,可以在网上进行水电费的充值。
我的创新在于:目前的高校同类型的app中,还没出现可以代替校园卡的app出现,有的功能也仅仅是网上缴费,而不能够真正的代替校园卡。(1)N (Need 需求)
校园卡体积小,容易丢,也容易忘记带,而丢了和忘记带的话,又会造成很多不便,不能够出门,不能够吃饭等等。而如果在集大通上开发出校园卡功能的话,做这些事情就可以用集大通代替了,并且现在的人们是离开了手机就心慌,基本上不存在忘记带手机的可能性,以及手机较校园卡来说更不容易丢失。(2)A (Approach 做法)
首先,将校园卡的数据和这项功能相关联起来,可以通过数据库来实现。然后,例如需要买单的时候,就像支付宝那样出示二维码,扫描二维码付款,再从校园卡里扣除相应的金额,即对相应的数据库内的数据进行操作,而交水电费之类的应该就是直接在数据库中的对应数据操作。最后,像是门禁这样的功能,则可以通过扫描一个固定不变的已经编辑好的带有个人信息或者是校园卡信息的二维码,如果在这栋楼的数据储存的数据库中有相应的信息,就开门,反之,则不开门。(3)B (Benefit 好处)
可以不需要带卡出门了,可以避免出门找卡的尴尬及浪费时间。可以不用特地下楼充电费、交水费了,只需要有集大通在,就可以很便利地解决很多生活上、学习上的事情了,就可以做到便利生活,节省时间,方便大家。(4)C (Competitors 竞争)
集大通的校园卡功能对比起真正的校园卡来说,更加便利,又没有丢失和忘带的风险。集大通校园卡功能会比校园卡更有竞争力,毕竟,每个人都希望可以活得更方便,更便利些。谁也不希望就为了交个水电费到处找缴费机,也不想丢失校园卡,费钱又费事费时。而使用集大通校园卡服务就没有这样的顾虑,方便又不易丢失。(5)D (Delivery 交付)
在集大通首页推送,置顶该功能的简介,使用方式。在学校各个班级群中发公告、推送,来宣传新功能。 -
如果你有钱可以招聘 6 个人, 有 4 个月的时间, 你作为项目经理, 应该如何配置角色 (开发, 测试,美工等等)?
在需求分析、分析设计阶段,6个人都投入在这项工作中,因为要想在4个月的时间内完成软件的开发,那么前期的准备就需要很充足,所以前期的2周时间内需要6个人一起投入到这项工作中。
而后在代码编程阶段,在这2个月时间内,由1个人作为美工设计软件的界面,由剩下5人根据需求分析和设计好的功能模块进行具体的编程。因为对比起软件界面方面,软件的功能编程的工作量会更大,要想按时完成软件的开发,就需要较多的开发程序员进行软件的开发、编程。
在软件进入测试阶段,也就是在最后的1个月零2个星期内,由2个人做测试的工作,2个人根据测试结果进行软件的代码修改,2个人作为美工进行界面的完善和修改。因为在这时候,代码已经完成了,测试阶段的代码量会少些,这时候就可以再多一人做美工的工作,将软件的界面再美化些,而且此时的重点在于软件的测试,其余的代码修改都要根据测试的结果来进行。 -
描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩
第一周:确定项目、需求分析
第二周:设计分析、人员分配,5人开发,一人美工
第三周到第十周:根据分配,各司其职进行编程和美工设计,界面编码。在这期间,也可以指定每周的小目标,规划好软件开发的进度。
第十一周到第十六周:将写好的软件程序进行测试,再根据测试的结果进行修改,完善。在这期间由2个人做测试的工作测试软件,2个人修改代码,2个人作为美工修改界面设计,完善界面显示。