2017 软件工程 个人作业——软件产品案例分析
关于 华为软件开发云 —— 的案例分析
第一部分 调研,评测
一、评测
软件的bug,功能评测,黑箱测试
测试主体:
- 华为软件开发云(web)
- DevCloud 3.12.2.8(Android)
测试环境:
- 小米note MIUI 8.5 稳定版 Android 6.0.1
- Chrome浏览器
1、第一次上手体验
下载并使用,描述最简单直观的个人第一次上手体验。
点进华为软件开发云官网,我看到首页有立即体验按钮,于是我点击进去,顺利进入了注册账户界面。当我输入我的常用用户名(994495jj)和常用弱密码(全数字)、以及其他基础信息之后,点击注册竟然毫无反应。问了一下舍友,她也同样遇到了这个问题。又问了同学,他说他注册成功了。然后我就开始自己琢磨,突然发现用户名只能以字母或-开头,密码必须包含数字、大小写英文字母和特殊字符至少两种。在输入用户名时,文本框旁边会有提示,但是我完全没有注意到。于是当我切换到下一个文本框时,提示就消失了,只有用户名文本框边缘变成十分不醒目的红色。当我填完所有信息按下注册键,也没有其他的任何提示。
然后就下载了app开始到处点一点。第一个直观的感觉就是:虽然动画挺流畅的,UI也很成熟,但是有些界面的加载似乎有一些长?bug也挺多的,没感受到开发者有用心在做这个app。个人觉得app端有点像是要做成一个todolist,但是有一个比较大的bug就是:已经完成的任务仍然存在待办列表,而且首页没有任何标记表示它已经完成。
接下来是Web端。点进Web端,有点体会到为什么app端这么没有诚意了,开发者可能把更多的精力放在了Web端。首先就是Web端的界面有点华丽,给人一种很高大上的感觉。但是因为我还只是一个软工初学者,Web端的很多功能对我来说还很陌生。如果要上手这个软件应该需要一段时间。不过这样一站式的云端研发平台我还是第一次接触,可以感受到设计者是有很大的野心的。云技术的发展使得这样的一个软件得以出现在大众面前,一站式的各种工具可能比不上目前成熟的其他工具,但是未来肯定有更大的可能等待着开发者去发掘。
2、几个功能性的比较严重的bug
按照描述的bug定义,找出几个功能性的比较严重的bug。至少两个。
用专业的语言描述(每个bug 不少于 40字),如有必要,可以配图。
- 【app】项目界面左上角的扫描二维码功能无法使用。
用微信自带的扫描二维码扫描同一个二维码,二维码本身没有问题。
- 【app】在scrum类型的项目中,新建工作项时,可选的类型中没有Task类型,但是首页却有Task分类。
3、为什么这个产品组的人没有发现这些bug?
你觉得为什么这个产品组的人没有发现这些bug?
bug没有解决并不代表没有发现bug吧?这个问题的问法是否有点奇怪呢?
我认为这个产品组的人对于app的投入应该是远小于Web的,在实际使用中也应该确实是Web的使用要多于app的使用。据别的同学所说,Web也是有bug的(我自己还未发现),也就是说这个产品还有很多地方没有完善,bug的存在应该是因为时间不够,或者有比解决这些bug更重要的事情还未完成。
4、假设我们团队需要开发这套系统,需要注意的地方
假设你们团队需要开发这套系统,需要注意哪些方面(架构、部署运维、微服务等)。
作为一站式的云端研发平台,如果无法为用户提供比其他开发平台更优的体验,应该很快就会过气。如果是我们团队进行开发这个产品,首先必须要做好需求分析。服务器的响应应该足够快,对于bug的处理也应该迅速,以免用户使用过程中不耐烦,导致用户流失。
要完成这样一个功能多质量高的软件,需要对各个部分做合理的拆分,做到高内聚低耦合。才不会手忙脚乱。
二、采访
被采访人:郑世强
采访过程:
介绍采访对象的背景和需求(他们有没有用过这个APP或类似的APP,除了现有的功能还有别的需求么)
采访对象的背景: 福州大学计算机系2015级学生,了解java web端和Android端编程,使用过Spring MVC和Spring Boot开发商业程序,Android端学习了rxjava,retrofit,okhttp,dagger2,greendao框架,并对其原理实现有一定了解。
采访对象的需求: 需要的东西其他产品都能提供,但是希望华为云能把代码签入和任务列表相关联。
让采访对象使用华为软件开发云(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相)
描述用户使用这个产品的过程, 用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
用户使用这个产品的过程: 手机APP账号登入,到处点一点拉一拉。
用户的问题解决了么? 用户觉得这个app bug很多,他希望华为云能把代码签入和任务列表相关联,但是这个需求没有解决。
软件在数据量/界面/功能/准确度上各有什么优缺点?
数据量?还是并发量?这个问题不清晰。
登录界面清新简洁,扁平化风格明显。动画交互流畅。
这个软件有的功能,其他的软件都能实现,而且比它更成熟。
准确度?好像没有定位功能啊?哪里来的准确度?
用户体验方面有问题么?
bug很多。体验还行。
用户对产品有什么改进意见?
希望华为云能把代码签入和任务列表相关联。
结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价,请选择一个结论:
- 非常不推荐
- 不推荐
- 一般
- 推荐
- 非常推荐
一般
第二部分 分析
使用此软件的大部分功能,联系第二部分的分析,估计这个项目做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI 支持)。
考虑到计算机系大学毕业生可能项目经验为0,需要的时间应该是5~6个月。(事实上普通刚毕业的计算机系大学生团队会去做这么大的一个项目吗?)
分析这个软件目前的优劣(和类似软件相比),并推理出团队在软件工程方面可以提高的一个重要部分(具体建议)。
优势: 一站式的云平台,发展空间大,随着云技术的发展,未来还会有很多可能。
劣势: 功能还未能做到和现有的软件一样好,初期的用户粘性不大,很多人可能下载下来看一看就卸载了。
团队在软件工程方面可以提高的一个重要部分(具体建议)
如果需要做的项目太大,可以事先完成最有意思的一部分,让用户保持期待。
根据理解和体验,画出整个软件所有功能逻辑框图,根据重要度标识出各模块的重要度、完成度、出发点及效果;
TBD
针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分。
满分10分。
Web端:
用户体验方面:7分
UI界面美观度:9分
核心功能:6分
App端:
用户体验方面:5分
UI界面美观度:8分
核心功能:4分
第三部分 建议和规划
如果你是项目经理,如何提高从而在竞争中胜出?
在第一次发布产品之前,就把核心功能做好,做完善。除此之外还需要有一两个与众不同的,有特色的功能(能解决用户的痛点、或者有意思有创新)。如果还想做其他的功能,可以等后续再开发。否则如果第一次发布的产品bug很多,用户体验不好,后面再发布,用户可能也不会去下载,用户黏度会降低。
目前市场上有什么样的产品了?
TeamLab、ProjectForge、禅道
你要设计什么样的功能?
app端的任务列表功能很有意思,但是bug很多,如果是我设计这一块的内容,我会把它设计得更加简洁,没有那么多花哨的分类,这样会使它更加实用。我认为任务列表的扩展越多,工作的效率可能会不升反降。
为何要做这个功能,而不是其他功能?
相对这个功能来说,其他功能已经很成熟了。而且我比较熟悉todolist这一类的功能。
为什么用户会用你的产品/功能?
可以提高工作效率,并且上手快。
你的创新在哪里?可以用 NABCD 分析。
- N(Need,需求): 开发者希望提高工作效率,理清当前需要做的事情。
- A(Approach,做法): 完善app端的任务列表功能,使它更加简洁实用。
- B(Benefit,好处): web端的功能很强大,设想中用户可以把app端与web端结合起来使用,但是事实上由于app端的bug太多,功能不简洁,大大降低了用户黏度。完善app端的功能可以提高用户体验,提高用户黏度。
- C(Competitors,竞争):TBD
- D(Delivery,推广): 在官网首页就有app端的推广。
如果你来领导这个团队,会有什么不一样?
我会在进行充分的测试之后再发布软件,第一次发布的软件应该是一个可用的,而不是用户下载下来看看就卸载掉的半成品。
如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
开发三个人,美工一个人,美工和剩下一个人做测试。
描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定。
周数 | 做什么 |
---|---|
1周 | 分配任务、需求分析、需求规格说明书、部分原型设计 |
2~3周 | 原型设计、搭建开发环境、编码规范和架构设计、部分测试代码 |
4周 | 编写测试代码 |
5~12周 | 开发人员编码 |
13~16周 | 测试人员测试、开发人员修复与完善 |
项目发布后,有没有考虑过项目该怎么部署才能满足需求。依据下图(某校教务处系统的部署)作为参考,分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置) 。
TBD