首页 > 技术文章 > 个人作业——软件产品案例分析

wang371091997 2018-12-07 20:42 原文

第一部分 调研,评测

评测:

软件的bug,功能评测,黑箱测试

  • 下载并使用,描述最简单直观的个人第一次上手体验。
    首先登陆福州大学微信公众号之后点击其中的一些功能,第一个反应是怎么这么卡……,然后功能页面弄得挺简洁美光的,很不错,但是有一个问题就是,我们打开支付宝或者其他的什么软件,一般来说去其功能都是按九宫格或者其他的横竖都排列的,而这个公众号的功能是竖着排的,这让我微微有一点儿不习惯,但是还是挺好的
  • 找出几个功能性的比较严重的bug。至少两个。
    ① 通过自己的学生账号登录福州大学公众号之后,没有显示退出当前账号的样式,这样一来,如果别人手机没电了就不通过登录这个东西查询了,不方便他人的查询
    ② 点击我的课表的功能,我的课表功能里面什么都没有,没有显示出我目前课表内容
    ③ 我的课表功能里面不能够选择学期,这样一来,如果用户想查看自己上学期的一些课程就没有办法通过这个来查询了
    ④ 成绩查询能够查询的学期只有2012-2016年的。然而我们是2016级学生,这就等于,什么都查不到
    ⑤ 移动OA,是未授权的访问,不清楚这个是干啥用的
    ⑥ 学生证副卡功能,刚刚点击进去,什么都还没做,就显示获取失败,辅导员为空
    ⑦ 学生证副卡功能,里面的一些信息无法填写
    ⑧ 企业对话之中的搜索栏,输入数计,没反应,输入数计学院,没反应,只有输入数学与计算机科学学院的时候,才会有显示,应该在输入了一个字之后显示匹配的列表表才比较合适
  • 你觉得为什么这个产品组的人没有发现这些bug?
    排除智商原因,排除技术原因,排除眼瞎的原因,真相只有一个,他们还没开始测试
  • 假设你们团队需要开发这套系统,需要注意哪些方面(架构、部署运维、微服务等)。
    架构方面
    ① 需要先弄清楚该微信公众号的整体结构和组件,通过思维导图做出直观的架构图,这样子功能就一目了然了
    ② 要明白,软件之中唯一不变的就是变化,要根据不同的情况作出不同的当前情景下的最优选择
    ③ 保持设计的简单,现在不都是崇尚简约设计?
    ④ 要懂得面向抽象编程
    ⑤ 要考虑可维护,延伸性,事后优化
    部署运维方面
    ① 我觉得应该在整体完成并且检查之后再进行部署,这样会比较方便修改;
    ② 运维一切行动听指挥,这样子才能够比较有效率,才不会乱糟糟;
    ③ 凡是要变更方案什么的必须经过审核,避免因为误操作而产生问题;
    ④ 做好规划,这样才能够有效率的完成事情;多多和应用的人唠唠嗑,这样子才能熟悉业务,才能推动业务采用更加合适的架构方案;
    ⑤ 定期做好数据库的检查;
    ⑥ 数据库部署要做好最小化的权限;
    ⑦ 多多和大家交流,多多和大家分享;
    微服务方面
    ① 在微服务架构中,有很多可移动的组件,所以对服务的管理将变得更加复杂,因此要考虑使用均衡负载,这会帮助我们解决一些问题
    ② 一个应用之中会有不同的服务,因此一个请求会跨多个不同的服务,因此有必要注意网络拥塞和延迟
    ③ 一般来说,每个微服务都有自己的状态存储,因此必须要注意数据的一致性
    ④ 注意容错和弹性

采访:

第8章 用户调研,12 章 软件的用户体验
相信每个同学的朋友中一定有人需要用这样的软件,记载你对这位用户的采访。例如使用下面的采访提要:

  • 1、介绍采访对象的背景和需求(他们有没有用过这个APP或类似的APP,除了现有的功能还有别的需求么)
    采访对象的背景和需求:福州大学2016届学生,有的时候需要查看课表和成绩,以及查看一些校园内的通知,目前只用了这两个功能,而这两个功能是使用福大教务通来查看的,他还希望有能够像福大易班一样的功能,因为福大易班不是很好用,并且手机上的福大易班软件快把他弄疯了,如果说福大微信公众号能够有网页版福大易班一样就太好了。

  • 2、让采访对象使用微信福州大学企业号(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相)

  • 3、描述用户使用这个产品的过程, 用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
    问题1:并没有解决,因为该产品的那么多的功能,真正需要使用的就是成绩查询和课表查看,还有学校通知,其他的功能使用的比较少,而福大易班之类的保修功能却是没有的,因此没有解决问题
    问题2:数据量还可以,并没有多少;界面也还行,但是希望能够不要再是竖排,这其实有很大的空间的浪费;功能挺多,但是其实许多功能是没有用到了,比如日程功能,不实用,不如将易班的那些功能加入进公众号,这将会变得很方便
    问题3:界面简洁,看过去较为美观,没有什么大毛病,但是其中的很多的功能还无法使用,并没有什么具体的用户体验,但是流畅度还有界面的美观程度还是可以的;课表之中的课表界面不够简洁,应该像是福大助手那样,背景是白色,然后用各种的颜色代表不同的课程,而不是背景花里胡哨的

  • 4、用户对产品有什么改进意见?
    功能界面请按照方块一个个排列在界面之上,不要竖排,而且点击一些功能进入之后,会出现一个小加号,这个加号吧,说实话,不好看,也不实用,谁知道你这个加号是什么鬼,最好将加号之中的内容放入整个界面之中,才比较一目了然

  • 5、结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价,请选择一个结论:

    • 非常不推荐
    • 不推荐
    • 一般
    • 推荐
    • 非常推荐
      答:推荐,因为虽然这只是一个普通的公众号,但是其实对于我们的学习和生活提供非常大的便利,但是目前为止很多功能其他APP上都有了,但是如果能够将福大易班上面的功能加入到这个公众号中,那就非常的完美了

第二部分 分析

参考 8.6 节 对工作的估计, 和14.1 节 软件工程的质量

使用此软件的大部分功能,联系第二部分的分析,估计这个项目做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI 支持)。 分析这个软件目前的优劣(和类似软件相比),并推理出团队在软件工程方面可以提高的一个重要部分(具体建议)。
预估时间:一个月
分析优劣:和类似的福大助手,福大教务通相比的话,课表的界面不够好看;相比于福大教务通,功能比较多;但是和易班相比的话,比如宿舍保修这种很重要的功能就没有了,因此功能还有待新增

  • 根据理解和体验,画出整个软件所有功能逻辑框图,根据重要度标识出各模块的重要度、完成度、出发点及效果;
模块 重要度(5) 完成度(%) 出发点 效果
企业对话 1 70 方便用户和企业沟通 还行,但是搜索栏不是很完美
福大邮箱 2 100 方便用户查看自己的邮箱 没有邮箱,不知
福大新闻 3 100 能够看福大的新闻 可以显示,界面不是很精美
福大黄页 3 100 能够查看福大各个部门电话 不错,但是没有查询功能
失物招领 4 100 能够找丢失的东西 有的,但是一些细节如去掉加号
我的课表 5 50 能够查看课表 未完成
成绩查询 5 50 能够查询成绩 未完成
个人日程 1 100 能够管理个人日程 不错,但不是很精美
移动OA 1 70 能够Emmmm Emmmm
通知文件 3 100 能够显示通知 不错,但不是很精美
讲座报告 3 100 显示讲座 不错
校园巴士 1 100 显示校车的车站 不错
学生副卡 2 50 进行副卡的信息管理 未完成
  • 针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分。
    用户体验:80分
    UI界面美观度:80分
    核心功能:50分

第三部分 建议和规划

参考《构建之法》第8章 功能的定位和优先级;第9章 项目经理
这个软件有很多可以提高的部分。

  • 如果你是项目经理,如何提高从而在竞争中胜出?
    首先应该加强自身的素质培养,虽然项目经理不需要具体的加入到具体的项目开发之中,但是还是应该知道当前所做的项目需要的技术,应该学习有关于自身业务的相关技术,才能够对项目进行更好的管理;
    其实,也注意人性化的管理,因为参与项目开发的是程序员,是一个个人,并不是一个个机器,而人是十分复杂的,需要做好人性化。才能够使得员工的潜力得到最佳的组合和发挥
    第三,要做好沟通的过程,在这次的小组项目之中,我们其实并没有专门的项目经理,因此沟通的过程有一些问题,只有做好沟通,才能更加高效的进行项目的管理

  • 目前市场上有什么样的产品了?
    福大助手,福大教务通,福大易班,超级课程表

  • 你要设计什么样的功能?
    宿舍报修,医保申请,奖学金申请之类的易班功能加进去

  • 为何要做这个功能,而不是其他功能?
    因为易班用的很多,因此加入这个功能之后会有许多人使用,并且利用公众号方便的优势PK掉福大易班

  • 为什么用户会用你的产品/功能?
    因为这将会取代福大易班这个不是那么方便的APP,并且只用了一个微信公众号集合了那么多的功能,将会非常的方便

  • 你的创新在哪里?可以用 NABCD 分析。
    没有什么创新,因为该公众号应该落实用户所使用的功能,考虑到用户经常使用的东西,并且将其实现,将其完成,给用户一个方便,快捷的使用体验,这样用户才会使用我们的软件,重点不应该是在创新,重点是要在实用,这个企业号其实就是一个工具,我们并不需要什么创新性强的工具,我们需要的是实用性强的工具!

  • 如果你来领导这个团队,会有什么不一样?
    首先,肯定是要验收的,而不是什么都没完成就直接在服务器上部署,其次,先和大家讨论一下整体的界面设计,因为界面设计不是因个人的审美来看的,收集一下大家的意见,这其实并不会花多少时间,然后最后做一个原型,大家将会根据这个原型来制作完成各个功能。
    不一样的地方就是布局将会更加的合理,界面更加的美观有效,而不是像现在这样,有些乱

  • 如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
    美工:1人
    开发:4人
    测试:一起
    原因:因为功能比较多的缘故,因此任务比较繁重,因此人员将会全部压在美工和开发之上,而测试之后其实并不是很繁重的任务,因此可以一起来做一遍测试,这样能够最大限度的利用起每一个人

  • 描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定。
    描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定。
    第1周:讨论出界面原型,具体的功能,具体要实现什么样的效果
    第2-10周:开发与制作具体的美工
    第11-12周:阿尔法冲刺,将产品的基本功能给完成
    第13-16周:贝塔阶段,将最后的细节给修缮,完成云端的部署等

  • 项目发布后,有没有考虑过项目该怎么部署才能满足需求。依据下图(某校教务处系统的部署)作为参考,分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置) 。

    服务器,1M带宽,数据库一个即可,用来保存用户的账号密码,应用服务器集群,后端服务器集群

推荐阅读