第一部分 调研,评测
评测:
功能评测(黑箱测试)
BUG
目前来说,确定的功能性Bug确实是没碰到,不确定的有一个:在下面测试的第二部中代码检查尝试了许多方式无法读取到代码文件,未确定是我的操作错误还是存在Bug。
但另一点用户体验上有个想吐槽的地方,所附的软开云Demo文档内容中,1.4子账号注册的界面,在我注册登陆之后找了半天没有找到在哪里,点了登陆后第一个页面右上角用户栏内的管理控制台,对应的并不是文档中的控制台,看了一下文档的更新日期是11.06,想到应该不会是正好在这么短短的时间里更新了界面,最后在底下的一堆“免费体验”产品中点进一个才进入到文档所示的界面,如下:
点击了代码管理的免费体验后进入:
个人感觉是否是demo文档未描述详细,当然也可能是我没有理解到位。但我觉得从底下具体的某一个体验产品看起来比较像广告而不是一个正式的功能入口,所以用户会比较难在短时间根据文档去找到。更何况现在普通用户看文档的习惯并不普遍,不看文档可能需要更久的操作,所以希望可以改进一下。
1、代码管理
目前我以使用Github的习惯,并且参照了软开云的一些帮助文档完成了git的相关功能,整个过程还是很流畅的,文档介绍很详细,另外看到直观的中文说明真的是心里有说不出的感动和舒服。以下是使用过程:
新建仓库
以及十分方便的直接在网页上拖动文件上传代码,但是响应有一些慢(此外还有体验良好的创建目录、创建文件等功能,同样响应速度不理想)
总结:华为软件开发云的代码管理初体验确实是让我非常惊艳,倍感惊喜,感觉发现了新大陆,一是界面友好,二是操作流畅丝滑没有阻滞感,要我自己说如果我未来工作能决定我的团队用Github还是华为软开云,我会选择华为。但同时也希望可以退出像“Github for Windows”这样的可视化界面进行代码推送和pull,个人比较喜欢github桌面版的简单操作。
2、代码检查
很遗憾我仍未搞懂代码检查应该如何使用,虽然可以理解各种规则集,以及大致理解(自我感觉)这个界面(见图1)的各种条目是什么意思,但是我尝试了几种方法仍然不能让系统检测到我的代码(见图2),而实际上该文件夹下是有.c文件的(见图3)
图1
图2
图3
文档中也没找到相关说明,所以希望还是可以解答下代码检查的正确使用方式。
3、测试
华为软开云的测试个人感觉像是类似Issues的测试管理,我在上面找到了熟悉的添加TASK,添加标签,并且有更加详细的设置事件状态功能
测试状态变更
在设计与验收中显示出了状态
此外软开云贴心的有邮件提示测试任务分配,第一时间就收到了任务消息,很实用
4、联动的Android端
软开云的安卓端十分简便,只能只有任务管理的功能,当然手机上也不太可能进行什么复杂的代码操作,这里我测试添加了一个任务
软开云立刻同步到了WEB端,我将它设置为关闭
在软开云自带的看板上直接以视图给出了各种信息,比如迭代
趋势图也更新了
数据形式的分析
可以说十分的完备,不需要像github借助第三方的burnchrt,且功能也不如华为的强大
5、关于其他功能
华为软开云还有许多强大的功能,但限于水平有限,有些功能我完全不了解作用如何,怎么使用,所以也难以评测,比如说构建。还可以直接进行项目的部署,配置主机等等,配合软开云一体化的服务器平台、代码平台,可以很便捷的完成整个项目的工作,因为我没有申请服务器,所以也就没有进行进一步的部署测试。
假设你们团队需要开发这套系统,需要注意哪些方面。
(还是很难想象我或者我的团队可以完成这么伟大的任务)
需要注意的方面:
1、我觉得这样的一个系统的开发应该采用增量模型,因为各个模块相对独立,可以进行单独的划分模块开发,在后期添加新的增量。
2、代码管理平台的可视化与交互性十分重要,目前github在CS的大学生间并不足够流行除了显而易见的第一点语言障碍外,就是上手困难,更多的功能我觉得要放在可视化界面上完成,而不是密密麻麻的指令行。
3、代码检查的规则集应该具有高度的扩展弹性,软开云的可自添加规则集我觉得非常棒。
建议:
1、比如像添加代码检查的规则集那样的形式,增加各种真正可以直接进行代码测试的模块,如单元测试等。
2、软开云已经有了一套完整的项目生产流水线,但我觉得可以再加上一条,项目发布后的推广,不论是推行测试版本还是直接发布推广,能够形成真正从零到运营的无缝衔接就行。
采访:
采访对象介绍
福州大学2015级数学专业信息计算科学方向学生,目前主修C++与计算机网络,过去未曾使用过华为软件开发云或类似产品。
除了现有的功能,是否有其他的需求
以前是不知道还有这种平台的,听完介绍感觉很实用,以后和同学合作做一些作业会尝试使用一下。现在用起来感觉挺好的,因为我也只算个编程新手,说不出太专业的,就我自己感觉这个平台已经十分全面了。APP端的话我觉得可以更强大点,直接在APP上查看上传上去的文件之类的。
采访对象使用华为软件开发云:
用户使用这个产品的过程,
1、因为用户未接触过此类产品,所以一开始是不太清楚我要让他体验什么,所以我花了相当一段时间进行解释。好在用户也是编程学习人员,理解的并不困难。接下来进入正式的使用,当然还是配合着我对每个页面、功能进行讲解。
2、首先是尝试了一下创建仓库以及秘钥的对接,并且在指导下将仓库同步到本地,再进行修改文件,同步至云仓库。这个过程没有什么困难,对经验不多的用户来说,因为市面上云产品不缺乏,可以理解代码存储至云端的概念。
3、接下来尝试了手机APP上的任务添加,并且在WEB端操作了一下任务修改,改为完成和关闭两个状态分别观察了一下图表的变化,对用户而言可视化图表的体验很不错。
4、最后进行了代码检查,但因为碰到我上述也未解决的问题,所以没能成功。但用户可以理解检查大概的机制是如何的。
用户的问题解决了么
已解决。对于这样一位只有简单的代码管理需求的用户,可视化的代码上传,修改等操作已经几乎完全解决了他的需求。
软件有什么优缺点?
优点:界面很简洁直观,有各种数据可以参考。
缺点:明显有时候反应比较慢,直传会卡顿一段时间。
用户体验方面有问题么?
在文档的帮助上没有问题
用户对产品有什么改进意见?
建议直接在APP上查看上传的文件
结论:
正如我上文所说的,如果未来工作中我可以决定团队使用哪个平台,我会选择华为软件开发云。综合用户的反馈,评价也较为不错。
所以我给出的结论是:非常推荐!
第二部分 分析
此项目完成时间估计(团队人数6人左右,计算机大学毕业生,并有专业UI 支持)
假设:
团队的六人对于项目开发所需的技术都基本熟悉
预计:
需求分析阶段:90;对于代码管理,已经有前身十分成功的Github,在此需求上进行改进的需求收集花费的时间较少。但由于平台不仅希望整合代码管理,还有包括代码检查、构建、部署等模块,所以每个模块进行需求分析预计使用90小时,进行现有资源的用户意见收集、分析结论等等。
编码阶段:720;因为我假设团队的6人对于相关技术都熟悉,预计中间需要学习所用的时间在平均每人十小时以下,大约每人的平均编码时间在110小时左右。这里因为所做的开发项目,对于每个熟练编程的成员来说它的功能应当是比较明晰了解的,因为在大学期间编码必然要接触到代码管理、复审、测试、构建等等,而部署则是一个相对较为简单的部分,因此显然不能简单的将实际时间Y=X+-X/N中的N视为0,而视为1较为合适,所以实际时间Y=0~1440小时。
软件目前优劣分析
因为这个领域的老资格是Github,所以不妨将该项目与其相比。
软开云优势:
1、拥有比Github更加完善的可视化分析界面,将数据直观呈现给开发者。
2、界面整体的交互性比Github优秀,可以直接可视化进行文件操作,UI更加精美
3、项目流水一体化,一个项目所需要进行的每个阶段几乎全部涵盖,做到了一个平台就够用
4、代码广场的构想令人赞不绝口,软件开发将越来越容易
5、(对于中国程序员而言)中文的交互性明显更加舒心
软开云劣势:
1、拥有完整的整体开发体系在某些情况下或许也会是软开云的劣势,Github是一个精简的代码管理平台,做到纯粹的代码管理。一个团队或许仅仅需要这点,而不需要在平台上测试、使用华为的服务器,对于他们来说多余的功能也许会造成麻烦,而选择更为轻便的Github。
2、虽然添加了更强大的可视化操作,但响应速度有所下降,不如Github迅速。
3、没有桌面版的软件,许多核心功能还是通过命令行操作。APP也不像Github的APP那样功能强大,可以进行Code Review等操作。
团队在软件工程方面可以提高的一个重要部分。
团队应该重视测试项目,高效使用软开云所具有的这样的测试模块,提高测试水准与效率。
功能逻辑框图(框内下标数字左为重要度,右为完成度)
维度评分(单项满分10分)
用户体验方面:7.5
UI界面美观度:8
核心功能:9
第三部分 建议和规划
如果你是项目经理,如何提高从而在竞争中胜出?
碰巧我正好是软件工程实践团队中一支队伍的PM,对于这个问题我觉得可以从我带队的这半个学期来谈。
首先软工给我带来的最大一个感触是,一个产品要有竞争力,首先应该有吸引人的创意。我们团队的“好记”项目在我看来每一个阶段其实都做的较为出色,但并不能得到同学们包括老师比较好的认可,这就是源于我们的软件不具备创意,日程管理是一个很普遍的概念,已经被无数的团队开发过,所以当你需要做一个被“玩烂”的东西时,势必要再创新,拿出特色。好在软开云并不算是一个无创意的产品,虽然它的各个分模块在市面上可能已经能找到成功的典例,但将这些概念结合,就成了一个新的东西,然而我觉得还不够。这个新东西目前来看就是一个比较完善的开发流水线,虽然完善,但特色不明显。软开云有代码管理、团队合作,Github也有,并且目前Github上开源的优秀代码仓库肯定远超软开云;软开云有直接可部署的华为服务器,我用阿里云腾讯云之类更早起家的会不会更让我放心呢?有代码测试,但实际上测试仍要通过其他工具完成,这个部分虽然有实用之处,但不足以成为卖点。所以我觉得特色的牌应该要打出来,然后围绕着这个特色再去告诉用户:不仅如此,你在使用我们这个特色产品的同是还可以方便的用到代码管理、检查等等工具。所以我的想法如下:
1、我所认为应该着重打的特色牌是“代码广场”,也就是应该将这个目前并未有真正成功先例的产品做着重推广(即使是Github在类似功能上也没有做的很好,搜索的代码就像是零散在地上的各种小玩意,夹杂着一些值钱的东西,但并不容易发现)。
2、显然现在的软件开发都在往“越变越容易”的方向走,各种功能在网上都能找到多多少少的开源模块包,所以代码广场是一个越来越重要的需求,越来越多的程序员会去使用,至于管理、检查、测试,难以去撼动早已在这些领域做得很优秀的平台,习惯使用Github的团队至少一时半会不会开始使用华为,对于一个大公司来说更是如此。
3、UI还需要改进,不仅是界面要更好看美观,还需要有突出的特色,目前产品官网的界面我个人在第一次点进登录后主页的时候就感觉像贴满小广告的墙,产品是有一大堆,但并没有让我对哪个产生兴趣,至少不能第一遍浏览还以为这个平台只是卖服务器的。
目前市场上有什么样的产品了?
代码管理:Github
云服务器:阿里云、腾讯云
你要设计什么样的功能?
功能上其实我比较抗拒再去添加新的大模块功能,因为我的理念一直是“简单化”,太多的功能入口可能会让用户找不到一些我们真正的卖点,也就是杀手级功能,而目前这个平台的功能已经较为完整。所以在功能上我只提两个改进想法:
1、在现有的测试模块上进一步添加可直接进行代码测试的功能,而不是任务表分配的形式。
2、看板界面增添更多类数据分析样式,初始显示燃尽图等较为常用的默认视图,可由用户点击按钮选择其他更多的分析模式查看。
为何要做这个功能,而不是其他功能?
1、任务分配的测试形式较为鸡肋,结合实际可用的测试功能将不止成倍的提升这个模块对用户的吸引力
2、目前看板一股脑的把所有数据图都显示出来,确实可行,但我觉得可以加入对于更多数据进行分析的图,比如每个团队成员的代码量、上传日期等等的数据图,当数据图较多时,就可加入选择功能进行切换。
为什么用户会用你的产品/功能?
显然我的功能对一个团队来说是100%实用,直接分配测试任务,在平台上就可以测试,基本不用第三方工具,极大简便了测试过程,不论对于个人还是团队PM都是梦寐以求的功能。
你的创新在哪里?
N(Need):目前的软件测试使用工具繁多,每种开发平台可用的测试方式又不同,测试过程较为复杂,需要一个更加的的测试平台。
A(Approach):在测试模块直接集成可用的测试功能,可以增量的形式逐步添加更多测试。
B(Benefit):简化测试流程,减少测试渠道,节省用户时间,并且测试前后可以更快的进入测试、更快开始测试完成后的工作。
C(Competitors):竞争主要就是各种专业化的测试工具,我们是否能做到比肩这些在单项上足够让程序员长期使用的工具。
D(Delivery):因为我提出的功能是集成在软件开发云这个大平台中,所以实际上主要的推广途径应该是对平台推广,但如果真的能实现这个具有挑战性的任务,完全可以作为同“代码广场”一般的卖点进行推广,并且与代码广场结合,可以马上将代码广场中的采用的代码进行功能测试,得出是否使用的结论,效益也是不止成倍增长。
如果你来领导这个团队,会有什么不一样?
作为一个经验尚浅,相对于原开发团队PM来说大概仅仅相当于零基础的新人来说,回答这个问题真是十分惭愧。我觉得如果我来领导这个团队,不一样之处将有:
1、产品将以其中1~2个模块作为主推核心功能进行重点开发和推广。
2、软件的功能及UI将进一步精简,甚至可以删除一些现阶段较为鸡肋的小功能项。
3、尽量减少功能入口,突出产品的侧重点
如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
因为美工与开发的工作可以并行,不需要在短时间内大赶进度,所以一名美工足够,开发人员进度更快可以在需要用到美工作品的地方先用空白代替,等美工完成后在进行调用。而测试则是类似标量流水线的并行方式,当开发完成第一个模块后,开发人员就可以进行下一项开发,测试人员同时可以对第一个模块测试,测试的功能应该是小于开发的,并且开发人员还要解决测试出的问题,所以测试人员也只需要一名,剩下三名人员进行开发。
综上所述,人员分配:
开发:3人;
测试:1人;
美工:1人。
描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定。
第一周:需求分析,撰写相关文档,创建项目,分配工作
第二周:搭建产品及后端框架,美工并行
第三周~第八周:编码完成具有核心功能的Demo版本
第九周:Demo版本测试、Debug,收集用户测试意见,进行进一步编码的分析
第十周~第十五周:根据分析结果进行计划的调整,完成正式版
第十六周:正式版测试,Debug,发布
项目发布后,项目该怎么部署
应用服务器配置:8核16G4
后端服务器配置:8核16G8
关系型数据库:SQL Server/Oracle/MySQL 3,读写分离2,备份1
缓存数据库:Redis 2
网站安全性:DDOS,WEB应用防火墙,WEB漏洞扫描,数据库安全
关注存储代码的安全与保密性。