软件产品案例分析———华为软件开发云

一、题目背景:

同学多多少少经历过一轮敏捷开发,对软件工程的一系列工程流程及团队内各个人员分工有了一定的了解。而实际企业的开发流程又是如何?华为软件开发云则是将华为近10年的软件研发实践及工具集一体的研发云平台。对比你们团队的开发流程与华为实际开发流程有何差别,孰赢孰弱?如果你来做会做的更好吗?通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现。

二、分析内容:

1 . 第一部分 调研,评测

① 评测:

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

下载并使用,描述最简单直观的个人第一次上手体验。
按照描述的bug定义,找出几个功能性的比较严重的bug。至少两个。
用专业的语言描述(每个bug 不少于 40字),如有必要,可以配图.
你觉得为什么这个产品组的人没有发现这些bug?
假设你们团队需要开发这套系统,需要注意哪些方面(架构、部署运维、微服务等)。

第一次上手体验

界面简洁、美观,操作流畅,底部菜单栏的添加按钮点击事件的触发效果体验好。

bug

  • 无论是界面还是操作体验上WEB端都完胜APP端,功能太多,使用过程中尚未发现太大的问题,以下为APP端bug。

  • 功能描述不明确,比如登陆时的东北区等区域代表的含义是什么,有什么作用,并没有引导说明,可以在用户首次使用APP时加以引导。

  • 进入具体项目页面的不同操作之间切换不流畅,加载时的效果显示让人感觉很烦躁。(如下图“全部”、“需求”、“任务”、“缺陷”之间的切换)

  • 创建项目后无法删除。

  • 项目右侧的红心按钮没有实际功能?提示关注成功却没有相应的“关注”列表,意义何在?

  • “我的”界面无法修改头像。

为什么产品组的人没有发现这些bug?

  • 对产品的测试不够全面或者说不够细节。

  • 开发者和用户的体验和操作方式多少有区别,产品组的人心中对产品有默认的认识和定义,这会导致自身在使用产品的时候“理想化”,有先入为主的弊病,导致一些用户使用时会遇到的bug没被发现。

  • 如APP卡顿现象、不同子页面间的切换不流畅问题,可能是发现但还没改善?

② 采访:

第8章 用户调研,12章 软件的用户体验

相信每个同学的朋友中一定有人需要用这样的软件,记载你对这位用户的采访。例如使用下面的采访提要:
介绍采访对象的背景和需求(他们有没有用过这个APP或类似的APP,除了现有的功能还有别的需求么)
让采访对象使用华为软件开发云(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相)
描述用户使用这个产品的过程, 用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
用户对产品有什么改进意见?
结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价,请选择一个结论:
非常不推荐
不推荐
一般
推荐
非常推荐

  • 没用过类似APP,但用过Github和Teambition,需要自动合并冲突文件的功能。

  • 没解决。APP使用起来操作不流畅,对各项功能的使用方式不够明确,界面相对良好。

  • 改进意见为优化性能,提高流畅度,对一些细节bug进行改进。

  • 一般

2 . 第二部分 分析

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

使用此软件的大部分功能,联系第二部分的分析,估计这个项目做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI 支持)。 分析这个软件目前的优劣(和类似软件相比),并推理出团队在软件工程方面可以提高的一个重要部分(具体建议)。
     根据理解和体验,画出整个软件所有功能逻辑框图,根据重要度标识出各模块的重要度、完成度、出发点及效果;
     针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分。

  • 如果是按照全天候开发模式的话,我觉得这个项目做到这个程度大约需要两个月以上的时间。

这个软件目前的优劣

  • 优势的话,最首要的是全中文支持吧。知名竞争对手较少,市场和前景还是有的。

  • 劣势,竞争对手强大且知名度高(emmm。。不影响上一条的正确性)。如Github和Teambition,在不同维度上与此款软件的功能性有重合,而前者的使用量和体验都很好,对于该项目目前的开发程度来说,还有着很多需要改进和完善的地方(最主要的是操作体验很晕?),竞争力小。

功能逻辑框图

针对不同的维度评分(满分10分)

  • 用户体验:6分(软件定义为项目管理类,然而用户的使用目的并没有得到很好的满足,这严重影响该软件的必要性和实用性)

  • UI界面美观度:7分(web端更加受欣赏,app端也不错,但色调不是我喜欢的类型)

  • 核心功能:8分(在云端进行项目管理、配置管理、代码检查、编译构建、测试、部署、发布,对开发团队来说功能很强大)

3 . 第三部分 建议和规划

参考《构建之法》第8章 功能的定位和优先级,第9章 项目经理

这个软件有很多可以提高的部分。
如果你是项目经理,如何提高从而在竞争中胜出?
目前市场上有什么样的产品了?
你要设计什么样的功能?
为何要做这个功能,而不是其他功能?
为什么用户会用你的产品/功能?
你的创新在哪里?可以用 NABCD 分析。
如果你来领导这个团队,会有什么不一样?
如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定。
项目发布后,有没有考虑过项目该怎么部署才能满足需求。依据下图(某校教务处系统的部署)作为参考,分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置) 。

  • 首先对于影响用户体验和功能实现的bug一定要解决,注重性能的优化。其次就是要多分析自己和市面已有的同类产品的竞争优势,在宣传推广的时候把自身最明显最有力的点放大,开拓市场,吸引用户。

  • Github等

  • 在软工实践的过程中,我觉得Github有个不够完善或者说不够好的问题在于当团队开发项目时有文件冲突的情况下,Github并不能足够智能地合并,而是需要后期手动合并。如果能开发出针对这一问题的功能,我觉得会是一个很吸引用户的点。

  • 因为这是自身实际需要的,也是市面上还未有(至少我还没遇到过)的功能。

  • 因为百度上很多人在问这个问题。。

创新NABCD分析

  • N : 团队开发普遍性需求。

  • A : 智能合并存在冲突的代码。

  • B : 很大程度地减轻程序员的工作量和额外工作时间,能够使程序员更加专注于开发,团队合作也更加便捷愉快。

  • C : 同类产品尚未有此项功能,优势显而易见。

  • D : 我们会先让身边的人使用,并且对他们提出的问题进行改正。然后放在下载的平台上,提供给更多的人使用,正确对待他们可能提出的问题。

部署

  • 1 美工 3 开发 1 测试

  • 1-2周,需求分析,架构设定,UI初步模型。

  • 3-4周,数据库、api等初步成型。

  • 5-13周,前后端开发,

  • 14-15周,测试项目,调试bug,用户体验分析和完善。

  • 16周,文案撰写,发布软件。

  • 对部署部分较不熟悉,主要认知为,用户量大的情况下,要注意服务器负载和网络并发、负载均衡等问题。

posted @ 2017-11-30 20:03  HKSun  阅读(576)  评论(8编辑  收藏  举报