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

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


PART1 - 调研,评测


1、评测


1. 第一次上手体验


在对“华为软件开发云”这个名字抱有极大指望的状况下,第一次使用这个产品的时候,说老实话,给个人感受其实并不太好。web

首先在web端,当我第一次点击“当即体验”的时候,忽然一片灰:数据库

拖动滑动条往下翻了半天终于找到了这个框竟然在这!后端

(当时使用的是火狐浏览器56.0,后来彷佛没有复现成功,可是由于第一次点开这网站因此印象很深,初体验是很懵逼的。)浏览器

而且登陆只能选择记住登陆名而不能记住密码。虽然说能够理解为出于公司项目的安全考虑,可是对于小团队或者是只在本身的PC机上使用,不能记住密码感受十分的不方便,至少能够是诸如“7天内记住密码”这样。缓存

不过web端的UI是真的精美啊~ 城市剪影、涂鸦画风、细节精致的动画效果,给人一种很年轻、颇有活力的感受,使人很愿意继续体验。这也是即便第一次试用不太顺利,但仍对这款产品抱有好感的缘由。安全

其次是Android端,我在11月10号左右从官网扫二维码下载了这个app。因为用的是手机注册,因而输入了手机号码和密码试图登陆,结果意外的弹出提示“请输入有效的用户名和密码”,反复折腾了半天才反应过来“输入帐号”是真的只能输入用户名来登陆,而只有web端才能够支持输入用户名/手机号/邮箱登陆,何况app登陆页面的文本框标签提示“输入帐号”和输错时弹出toast的提示“用户名”二者称呼不一致,很使人费解,而且和web端登陆方式不一致,也感到体验不太好。服务器

好不容易登陆进去了,结果展现在面前的是一片空白,而后弹窗提示“当前网络链接异常,请稍后重试”,不管点底部栏的哪个,都是同样的弹窗提示(确认了一下个人网络是正常的)。到这时候做为对这个产品还不是很了解的初体验用户,我已经很想卸载了。网络

后来隔了一周又点进去看了一眼仍是同样的状况,就果然卸 · 载 · 了orz。直到前几天(11月30左右)我忽然想起评测做业快要截止了,才又从官网扫二维码,从新下载了这个app(小米应用市场没有DevCloud),这时候发现可使用。架构

因而在这一个月,使用十分不畅的状况下,我仍然把它反复几回下载到手机上的缘由,是由于有个做业等我评测。而若是做为普通的用户而言,我想基本上恐怕就不会再想碰它了。何况相比起web端的精致完善,这款app仍是简陋太多了。app


2. 几个功能性的比较严重的Bug


测试主体:

测试工具:

  • web端:Firefox 57.0.1(64)
  • 移动端:MIUI 9.0 | Android 7.1.1

一些零零碎碎的Bug其实还挺很多,多是还在公测期的缘由。下面对web端和移动端各举出1个我认为相对严重的Bug。


Bug1(web端): 测试模块中,“移动应用测试”的“测试次数”错误

复现步骤:

前提:本帐号已建立了两个项目,一个项目中已创建了 3 个“移动应用测试”,此时在另外一个项目中创建 1 个“移动应用测试”以后:

  1. 打开“测试”页面(显示“移动应用测试”的“测试次数”为 3 );
  2. 点击“移动应用测试”(显示出的测试项有 1 个);
  3. 点击菜单“服务” -> “测试”(显示“移动应用测试”的“测试次数”为 0 );
  4. 点击“移动应用测试”(显示出的测试项有 1 个)。

gif动图:

出了这个Bug的缘由,个人猜想是:1. 当有多项目时,菜单栏“服务”的子菜单究竟是跳转到哪一个项目的具体服务没有判断清楚。2. 当新建一个测试项时,没有及时刷新“测试次数”。

为何这个产品组的人没有发现这个bug? 多是测试人员只测试了一个帐号一个项目的状况,而没有测试一个帐号多项目吧。


Bug2(移动端) : “新建工做项”的“重要程度”非单选

复现步骤:

  1. 点击底部栏“+”号;
  2. 选择“工做项”;
  3. 点击“重要程度”;
  4. 勾选任意项;
  5. 点击“重要程度”;
  6. 勾选与前一次不一样的任意项(有时会出现两个√同时存在的状况)。

gif动图:

出了这个Bug的缘由,我猜:给工做项标记“重要程度”的处理方式,是把该工做项的名字加入这一“重要程度列表”里,而不是工做项有一个“重要程度”字段(也更方便在漏斗中筛选)。这样就可能会在用户勾选另外一个“重要程度”时,还没来得及把以前那个“重要程度列表”里的该工做项删了。

为何这个产品组的人没有发现这个bug? 复现“修改 '重要程度' 出现多勾选”这个bug的概率大概是点击三四次出现一次,可能测试的时候没有去反复多修改几回。


3. 假设咱们团队须要开发这套系统,需注意的方面

首先要明确这套系统的用户是谁,要解决的是什么问题。我想用户群体实际上是比较明确的了,就是那些有项目管理需求的企业/团队。对于项目经理,但愿对项目有个可视化的进度把控;对于开发人员,使用方便和成熟的代码检查、测试、部署都是很是亟需的。但一样能看到,既然是SAAS,用户对这套系统的要求会是很是之高的,若是不能给团队带来切实收益,也就不会去付出高昂费用使用这套系统(若按需计费,21-100的团队估算费用是240元/人/30天)。

要完成这样一套模块多、功能完善且又质量高的产品,那必需要分为多组协同开发了,因而就涉及了微服务架构:业务拆分,服务治理,自动测试,自动运维。

在采访中我也询问了那位项目经理这个问题,然而他也只是简单的提到“注意版本管理和运维部署”。但其实我以为咱们这样的小团队怕是没办法开发这个项目,由于须要好多资源啊...orz

2、采访

被采访人: 黄华强(建发房地产集团有限公司信息部项目经理)

采访过程:

  1. 华为软件开发云目前集成了项目管理、配置管理、代码检查、编译、构建、测试、部署、发布等功能,您做为项目经理,是否有这方面的需求?或者对于软件云现有的功能还有别的需求吗?
    答:是有这方面需求的。这些基本已经够用了。

  2. 在使用这个产品的过程, 您的需求/问题解决了吗?
    答:需求已经解决。

  3. 软件在数据量/界面/功能/准确度上各有什么优缺点?
    答:我体验了一下项目管理工具,感受还不错,尤为在界面的数据展现方面让我印象深入,有燃尽图,趋势图,工做项完成率图等,项目状况一目了然,很是直观,有利于项目管理者对项目进度,质量,成本作总体的把控。

  4. 用户体验方面有问题么?
    答:用户体验上感受还不错,功能比较完善,无需花太多时间研究,感受挺容易上手的。

  5. 您对产品有什么改进意见?
    答:若是项目管理工具可以实现:项目中具体的某一个工做事项的状态发生变化的时候,能在第一时间及时的告知项目管理者,这样即是极高的。

  6. 若要给这个软件下一个评价,请选择一个结论:
    a 很是不推荐
    b 不推荐
    c 通常
    d 推荐
    e 很是推荐

    答: d


PART2 - 分析


  1. 使用此软件的大部分功能,估计这个项目作到这个程度大约须要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。

    什么,要完成这么庞大的项目而个人团队只有 6名 本科毕业生(人少且极有可能0项目经验) !老板我辞职...

    时间:10个月发布初版稳定版本。感受已是极限了...

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

    同类竞品:软件开发云、Redmine、teamlab、DotProject的对比(转载

    具体建议:从上表中能够看出,华为软件开发云对于中小型、初创型的企业或团队的项目开发仍是有极大的优点和吸引力的。可是对于已有必定规模的企业来讲,极可能已早有本身的一套开发工具,想要使他们的目光转移到软件开发云上,可能会在性能方面提出更高的指望。

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

    功能图

    重要度标识(按“重要”、“较重要”、“通常重要”排序):

    完成度标识(按“完善”、“较完善”、“不太完善”排序):

    出发点&&效果

    模块 出发点 效果
    项目总览 做为软开云的使用入口页,展现加入的项目、工做项、历程、消息 可以对大部分的需求状况一目了然
    项目管理 展现项目看板、展现项目列表、新建项目的入口 经过柱状图的看板和卡片式列表,很好展现用户所参与的项目的整体状况
    代码托管 相似Github的功能,将代码托管到云 在Github或其余托管平台使用习惯了的状况下,用户可能比较难适应
    代码检查 实现一些简单的代码质量管理,帮助监测源代码质量 挺好的,精准定位代码缺陷,提供示例和修复建议,被很多用户赞过
    编译构建 与代码托管无缝对接,提供云端编译构建服务 挺好,可以实时监控构建状态
    测试管理 提供了一体化的测试功能,覆盖测试需求、用例管理、测试执行、缺陷管理 挺好,支持自定义用例,可以辅助高效的管理测试活动
    部署 方便用户将项目部署到云服务器上 挺好,比较完善,并且也有引导性的介绍
    发布 包括仓库初始化、软件发布、软件下载、软件查看 挺好,比较完善,并且也有引导性的介绍
    流水线 自动执行一系列流水任务 彷佛是比较边缘的功能,也没有引导性介绍,不太明白是作什么用的
    移动应用测试 移动应用的兼容性测试,测试各机型对此移动应用的安装、启动、使用、卸载的状况 总体还不错,报表也很清晰,可是当选择机型比较多的时候排队会至关久,并且对于有帐号的移动应用仅测试了成功登陆
    企业帐户受权 支持子帐号登陆,方便企业项目开发人员的使用 挺好的,邮箱验证也很快捷方便
    代码广场 做为代码仓库的开源共享和展现平台 完成度不高,看不太出效果
  4. 针对不一样的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分

    web端:

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

    移动端:

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

    根据上文的阐述,对于web端和移动端的各维度评判已经很明确了。对移动端的核心功能只给了2星的缘由是,移动端的功能仅囊括了查看和编辑各项目的工做项和“消息”模块,且仍然十分不完善


PART3 - 建议和规划


  1. 若是你是项目经理,如何提升从而在竞争中胜出?
    答:我以为做为中国市场上立足云服务的、一整套功能相对齐全的管理软件的SAAS项目,自己就已具备至关高的竞争力。但是纵观之软开云的呼声和期待很高,而企业中真正的使用者却相对稀薄。因此若我是项目经理,首先要抓住用户痛点,在第一次开放稳定版时就把服务模块作到功能齐全、易用精致,特别是国内其余家项目管理工具所不具有的功能,提升用户黏性;其次就是提升宣传和推广力度,为何这么好用的产品大多数人都仍只停留在“据说过但没使用”的阶段呢?

  2. 目前市场上有什么样的产品了?
    答:微软全家桶Visual Studio Team ServicesRedmineDotProject禅道

  3. 你要设计什么样的功能?
    答:在“代码广场”版块里,对每一个仓库卡片都有一个“评价”的选项,但我点进去这个仓库也并没能找到评价模块在哪里...orz,猜想这估计是要放在后续实现的一个功能,但我认为还不如作个wiki,而去掉评价,由于这种评价感受意义不是太大:1. 如果须要评判优劣直接看这个仓库的收藏数就能一目了然;2. 如果为了实现用户之间的交互手段,只能在一个个的仓库下面去评论太受限,不如作wiki更方便开发人员之间的资源共享、开发遇到的常见问题整理等等。

  4. 为什么要作这个功能,而不是其余功能?
    答:由于以为其余功能以及相对成熟完善了,在采访过程当中用户也对目前已有的项目管理服务评价说“可以知足需求”,可是“代码广场”版块就显得薄弱不少,若是能作好可能能成为中国的Github交友社区~(逃

  5. 为何用户会用你的产品/功能?
    答: wiki为一种开放、自由的交流方式,在用户除去平常使用这种工具类的项目管理功能以外,能有个地方起到共同维护资料整理、或者是公司/团队内部或之间的交流,会让工做也不那么乏味。

  6. 你的创新在哪里?能够用 NABCD 分析。
    答:
    • N(Need,需求): 开发者但愿在除去工具类功能以外能有一些方便友好的交流方式。
    • A(Approach,作法): 在“代码广场”版块中,除去仓库的卡片式展现,另加入一个独立的wiki模块。
    • B(Benefit,好处): 由于有了用户间的交互,使整个产品变得更有情怀而非一个单纯的工具,从而能够增长用户黏性。就像Github那样造成了一个社区,即便以后出了更好的代码托管平台,但个人following都在Github上又怎么舍得离开不用呢?
    • C(Competitors,竞争): VSTS有“博客”版块,但却不支持评论。Redmine彷佛是有wiki版块的,但相对简陋,使用度不高。整体看来竞争度不是过高。
    • D(Delivery,推广): 能够在“代码广场”版块下的“推荐”、“分类”、“排行”菜单后面紧接着放一个“Wiki”,而后UI用不一样于其余的更活跃的方式显示,好比带有涂鸦式的颜色等等,来引导用户使用。
  7. 若是你来领导这个团队,会有什么不同?
    答:
    • 在软件发布以前进行更充分的测试
    • 加大宣传推广的力度
  8. 若是你的团队有5我的,4个月的时间,你做为项目经理,应该如何配置角色(开发,测试,美工等等)?
    答:
    ???不是吧,前面不是还有6人,又跑路了一个...orz
    • 开发:4人
    • 测试:1人
    • 美工:没人手,另买界面设计方案...
  9. 描述你的团队在16 周期间每周都要作什么,才能在第16周如期发布软件,大小里程碑绩点设定。
    答:
    默认前提:团队人手和资源能保证在16周内能作完。

    周数 具体分配 大小里程碑设定
    1周 需求分析,设计原型,撰写软件规格需求说明书、产品规格说明书 完成SPEC
    2~3周 搭建开发环境,肯定编码规范,架构设计,详细的开发设计,团队分工
    4~11周 编码开发阶段,完成第一版后进行测试 完成内测版本
    12周 发布v1.0版本,交付用户试用,获取反馈,修复bug、完善已有功能
    13~15周 对用户提出的其余需求进行分析,选择合适的需求,投入此阶段进一步开发
    16周 进行严格的性能测试、压力测试、集成测试等 发布正式版本
  10. 项目发布后,有没有考虑过项目该怎么部署才能知足需求。依据下图(某校教务处系统的部署)做为参考,分析16周后你所完成的项目上线须要哪些配套设备(服务器、带宽、数据库需求数量与配置) 。

**答:**(经过采访已工做的同窗获知可能须要以下服务器部署)

前提: 服务器与数据库均在同一内网互通集群下, 内网带宽 1Gbps

**数量**

- 应用/后端服务器各 * 1
- MySQL * 4 (异地冷备 * 一、同地热备 * 一、读写分离 2 台)
- Redis * 1

**配置**

- 静态资源采用 CDN 就近分发, 减轻应用/资源服务器压力
- 全部请求采用 WAF 过滤, 防止 CC 攻击、SQL 注入、XSS 跨站、WebShell 上传、命令注入、非法 HTTP 协议请求、常见 Web 服务器 0day 攻击等
- 数据中心网络选择接入金盾、ChinaDDOS、傲盾、飞塔等硬件防火墙, 以便于清洗牵引 DDoS 攻击, 或采用电信云堤就近牵引清洗
- 请求进入应用层以前, 采用负载均衡平衡集群节点负载 (提早进行线上压力测试, 确认转发规模)
- 应用服务器采用 4C8T 8G 配置, 并与后端服务器采用内网通信
  后端服务器采用 8C16T 16G 配置, 并与数据库集群采用内网通信
- 数据库集群中有 MySQL 与 Redis 两种类型数据库, 分别对应存储与缓存, MySQL 硬盘采用 RAID10, Redis 内存不低于 32GB
- MySQL 采用读写分离并同地主备, 异地冷备, 以保证数据可靠与一致性, 尽量下降一切由崩溃、掉电等带来的数据丢失、宕机问题
- Redis 自动从 MySQL 热一部分经常使用数据到缓存中, 以便于快速读取

相关文章
相关标签/搜索