个人作业——软件产品案例分析

关于 华为软件开发云 —— 案例分析

标签: 软工实践


简要目录

Part 1 : 调研,评测

Part 2 : 分析

Part 3 : 建议和规划


Part 1 : 调研,评测

评测

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

1.下载并使用,描述最简单直观的个人第一次上手体验

首先友好的中文界面和精美的UI设计都深得我心。
功能方面,集成了燃尽图、代码托管、代码检查、构建、测试、部署、发布等等一系列的软件开发流程工具,可以在开发云上进行整个软件开发流程的规划和管理。其中代码检查这个功能感觉非常强大,很大程度上减少了人工审核代码的时间花费。
高度集成的开发云使整个开发过程专业化提高效率

2.按照描述的bug定义,找出几个功能性的比较严重的bug

Web端:

(1)在Web端页面,部分模块功能无法进行分页内跳转,打开一个新功能往往需要刷新整个页面测试部署模块跳转时部分UI发生了感觉不应该发生的变化。
如下图:

构建模块UI
bug1_1

测试模块UI
bug1_2

对比之后可以发现部分UI确实发生了变化。

(2)在Chrome浏览器下(其他浏览器貌似没有这个问题),华为云登陆界面,登陆时在用户名输入框内输入一个字符后,光标会直接跳至密码输入框,非常神秘,一个微小的bug。

Android端:

(1)只能以用户名登录,不支持手机号或邮箱账号形式的登录,对于初次使用的用户会误以为账号密码发生错误,十分不友好。
(2)不支持项目删除功能。
(3)扫描二维码功能无法正常使用,尝试扫描的二维码均为无效二维码。
(4)新建工作项功能中,上传文件或图片功能无法使用。表现为进入新建工作项页面后,选择上传的文件或图片,会直接返回上个页面,丢失之前填写的信息,也没有成功创建新的工作项。
(5)全局响应速度缓慢,影响用户使用体验。

3.你觉得为什么这个产品组的人没有发现这些bug

Web端:

(1)前端人员只更新了部分UI,测试的时候忽略了这个问题。
(2)开发人员在测试时没有注意到这个细节。

Android端:

Android端的DevCloud定位只是Web端的附属品,只实现了简单的项目查看和工作项管理功能。开发人员在测试时没有做到面面俱到,遗留下了许多bug后期也没有及时进行修复。甚至可能在测试过程中就发现了bug,但是没有进行修复就发布了软件。

4.假设你们团队需要开发这套系统,需要注意哪些方面(架构、部署运维、微服务等)

对架构、部署运维、微服务这些方面不是很了解..
谈谈自己觉得比较重要的几个方面:

  • 首先是最直观的UI中文界面,对于这一点使用过Github进行代码托管的用户一定深有体会。
  • 完善的新手指引也是重要的一环,让新手迅速上手,不要在学习软件的使用上耗费太多时间。
  • 不同的用户群体对于开发云有着不同的需求,可能有的用户只需要其中的几个功能,最好能让用户在创建项目时对需要的功能做出定制。
  • 优秀的网络环境,在使用Github时有时候,由于不可说的原因,常常会出现网页加载缓慢甚至加载不出的情况,十分恼人。
  • 良好的用户体验,无需多言,需要注意许许多多的细节。

采访

1.介绍采访对象的背景和需求(他们有没有用过这个APP或类似的APP,除了现有的功能还有别的需求么)

背景:计算机专业就读学生,使用过Github进行代码托管,未使用过华为软件开发云。
需求:代码托管,友好的交互界面

2.让采访对象使用华为软件开发云(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相)

采访

3.描述用户使用这个产品的过程,用户的问题解决了么?软件在界面/功能/用户需求上各有什么优缺点?用户体验方面有问题么?

用户的问题在华为云上可以得到基本解决。
界面: 华为云的界面简洁大方,UI较为精美,相比于Github的英文界面也更加友好。
功能: 就代码托管这一方面来说,Github更加专业,使用者也更加广泛。而华为云上的其他功能虽然十分强大,但是对用户自身来说,没有一个较为详尽的教程指引,难以上手。
用户需求: 现有的精简和Scrum两种项目类型并不能满足所有用户群体的不同需求。
用户体验: 文件上传和网页响应速度较慢,影响使用体验。

4.用户对产品有什么改进意见?

  • 自行定制需要的功能,方便不同需求的用户进行使用。
  • 添加完善的新手指引,让用户更快上手。
  • 网页跳转和文件上传响应较慢,希望能优化相应速度。

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

推荐,华为云上集成了整个开发流程中需要使用到的大部分工具,使用户不用在不同的软件之间来回切换,降低效率。对于普通学生群体而言,其中的部分功能甚至超出了一般情况下的需求,显得有些冗杂。但是总体还是十分优秀的软件开发云平台,推荐使用。


Part 2 : 分析

1.估计这个项目做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI 支持)

30周,华为软件开发云上集成的功能可以说是非常之多了,仅仅6个大学毕业生的小型开发团队,个人认为需要花大量的时间才可能将这个项目做到如此完整的程度。

2.分析这个软件目前的优劣(和类似软件相比),并推理出团队在软件工程方面可以提高的一个重要部分(具体建议)

Github进行对比。

优势:

+ 中文界面
+ 集成更多功能
+ 一体化开发流程
+ 价格较低
+ 适合于企业开发

劣势:

- 用户群体较小
- 代码托管不够专业
- 上手难度高
- 不太适合个人用户

建议:

  • 对于不同的用户群体提供集成不同功能的开发云
  • 添加完善的新手指引,让用户更快上手
  • 加大软件宣传力度

3.根据理解和体验,画出整个软件所有功能逻辑框图,根据重要度标识出各模块的重要度、完成度、出发点及效果

评分标准:★ = 20 ☆ = 0

DevCloud总体模块逻辑图

DevCloud

看板

看板

  • 重要度: ★★★★★
  • 完成度: ★★★★☆
  • 出发点: 展示项目迭代周期的进度以及任务的完成率,提供工作进展的燃尽图
  • 效果: 提供了燃尽图、需求、任务、缺陷的报表和图形化统计,使用户对项目的进度一目了然。但美中不足的是在用户拥有多个项目时, 用户的工作项流程会略显混乱

工作

工作

  • 重要度: ★★★★★
  • 完成度: ★★★★★
  • 出发点: 对工作流程进行规划分配到个人,文档和词条管理。
  • 效果: 工作项的内容非常详细,完整的历史记录信息,文档支持方便的拖拽上传,词条的管理也十分便捷。

代码

代码

  • 重要度: ★★★★★
  • 完成度: ★★★☆☆
  • 出发点: 在线代码托管,实现多人并行开发。
  • 效果: 代码托管仍依赖于Github来实现,需要进行繁琐的配置。但是仓库代码可以与工作项进行关联,提高工作效率。

检查

检查

  • 重要度: ★★★★☆
  • 完成度: ★★★★★
  • 出发点: 对仓库中的代码进行按照给定的规则集进行检查,并给出评分修复建议
  • 效果: 对于代码的检查十分有效,可以定位到具体的代码错误并给出修复建议。给出大量规则集的同时也支持自定义规则集,十分便捷。

构建

构建

  • 重要度: ★★★★☆
  • 完成度: ★★★★★
  • 出发点: 按照用户需求进行软件构建,生成构建包并进行管理。
  • 效果: 可以进行详细的用户配置,配置完成后自动进行构建任务,相当便捷,对于构建包的管理也十分有效。

测试

测试

  • 重要度: ★★★★★
  • 完成度: ★★★★☆
  • 出发点: 对软件进行用例测试移动应用测试,并生成测试报告
  • 效果: 对于测试用例管理非常完善,基本可以满足所有的测试需求,移动应用的测试也非常便捷,可以一次测试多个机型,生成的测试报告内容详细。但是在用户量较多时,进行移动应用测试往往需要排队等待

部署

部署

  • 重要度: ★★★★☆
  • 完成度: ★★★★☆
  • 出发点: 实现软件的在线部署。
  • 效果: 主机管理功能齐全且使用便捷,支持样例模板和自定义模板定时部署

发布

发布

  • 重要度: ★★★☆☆
  • 完成度: ★★★★☆
  • 出发点: 提供软件发布的云服务。
  • 效果: 提供软件仓库、软件发布、发布包下载、发布包元数据管理等功能,包含Maven仓库,镜像仓库以及编译构建仓库。

流水线

流水线

  • 重要度: ★★★☆☆
  • 完成度: ★★★★☆
  • 出发点: 使用流水线对任务进行更加有效的执行管理。
  • 效果: 同个阶段可以执行多个任务,当代码发生变更,可通过流水线一键执行代码检查、编译构建、部署任务,支持定时执行。

4.针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分

用户体验: ★★★★☆
UI界面美观度: ★★★★★
核心功能: ★★★★☆


Part 3 : 建议和规划

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

1.如果你是项目经理,如何提高从而在竞争中胜出?

  • 对于不同的用户群体提供集成不同功能的开发云
  • 添加完善的新手指引,让用户更快上手
  • 加大软件宣传力度

2.目前市场上有什么样的产品了?

国外:

  • Github
  • Gitlab
  • BitBucket
  • SourceForge
  • ...

国内:

  • 码云
  • 码市
  • CSDN Code
  • 百度效率云
  • ...

3.你要设计什么样的功能?

  • 社交功能

用户之间可以互相关注,查看近期动态代码仓库等,支持用户在线交流,使用户可以分享自己的代码。加强用户间交互,从而扩大用户群体

4.为何要做这个功能,而不是其他功能?

华为软件开发云目前集成的软件开发功能模块已经相当完善,无需对开发这一块增加新的功能。
目前存在的主要问题是用户群体较小,用户之间的互动缺乏,一般只存在于一个项目内的开发人员之间。开发社交功能可以加强用户交互,分享代码,达到扩大用户群体目的。

5.为什么用户会用你的产品/功能?

社交功能是从实际需求出发,促进用户之间的交流,增加活跃用户数。
大多数的开发人员在使用华为软件开发云之前也或多或少使用过Github进行代码托管,对于Github上已有的社交功能并不会排斥。社交功能可以让用户与他人进行交流,学习他人的技能,提高自己,何乐而不为。

6.你的创新在哪里?可以用 NABCD 分析

  • N(需求): 用户希望在托管代码的同时,与他人进行交流,学习他人或者被他人学习。
  • A(做法): 在原有的基础上增加社交模块,用户之间可以互相关注,查看近期动态和代码仓库等,支持用户在线交流,使用户可以分享自己的代码。
  • B(好处): 加强用户间交互,从而扩大用户群体。
  • C(竞争): 同类型产品中,Github的代码托管功能虽然胜出一筹,但是其他方面的功能华为云已经强出太多。实现了社交功能之后,增强用户粘性,可以在与Github的用户竞争中更进一步。
  • D(推广): 可以与高校IT专业联系(我怀疑...),在学生的软工实践课程中进行开发云的试用,让学生们从还在学校的时候就开始使用开发云,甚至在开始工作之后也离不开开发云的使用,从小开始培养用户(手动滑稽)
    也可以与IT企业合作,以价格优惠作为优势,进一步推广开发云的使用。

7.如果你来领导这个团队,会有什么不一样?

  • 面向不同的用户群体提供集成不同功能更多版本的开发云
  • 增加更加完善的新手指引
  • 保证软件质量的同时,更加注重与提升用户体验
  • 软件发布之前进行严格、完善的测试

8.如果你的团队有5个人,4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)

  • 1个项目经理(兼文档)
  • 2个开发
  • 1个测试
  • 1个美工

9.描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定

周数 任务
1 用户调研,需求分析
2 原型设计,列出要开发的系统的大功能模块
3 编写功能需求文档,确认用户需求
4 概要设计,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等
5~6 在概要设计的基础上,进行软件系统的详细设计,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系
7~12 软件编码阶段,根据详细设计中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求
13~14 测试编写好的系统,交给用户使用,用户使用后一个一个的确认每个功能
15 提交文档,在软件测试证明软件达到要求后,向用户提交开发的目标安装程序、数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等
16 用户验收,交付使用
17~ 后续维护,根据用户需求的变化或环境的变化,对应用程序进行全部或部分的修改
  • 小里程碑:第3周、第6周、第12周、第14周
  • 大里程碑:第16周

10.项目发布后,有没有考虑过项目该怎么部署才能满足需求,分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置)

  • 应用服务器配置: 4核8G x 8
  • 后端服务器配置: 8核16G x 12
  • 关系型数据库: SQL Server/Oracle/MySql数量:10(读写分离 x 8、备份 x 2)
  • 缓存数据库: Redis 数量:6(主备)
  • 网站安全性: WAF、DDOS
  • 关注用户高频使用时段对服务器的压力并做出处理
    ps:这部分不是很了解,按个人感觉,对比了下学生教务系统和华为云的用户使用情况,大概猜测的。


posted @ 2017-12-01 23:09  Skxz  阅读(372)  评论(1编辑  收藏  举报