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

第一部分 调研测评

测评

一、使用体验

1、初步感受:

  • 一开始的时候注册账号并登陆进入华为软件开发云,看到界面非常的清楚简洁,可以说是十分友好了。点击项目进入开发者页面后,可以看到版面十分清楚,左侧显示了许多功能,中间是功能的具体展示。

2、具体功能:

  • 首先是项目的管理,项目管理有很多的功能
  • 其次是代码的管理,华为软件开发云的使用和github很像,因为软工课接触过github,所以碰到华为软件开发云也可以很快地上手,同时官网有详细的视频教程,看过之后也能很快地知道该如何操作。
  • 我们可以在软件开发云上编译我们的项目,同样我们的编译结果和编译日志也会显示在主页上
  • 流水线功能也是一个很不错的功能,不过我没有实际尝试过。有机会可以试一试。

3、优点功能:

  • 1、可以关注项目,关注的项目在前展示
  • 2、可以管理项目成员的权限
  • 3、可以查看项目成员对项目的所有操作
  • 4、在精简流程之上还有scrum流程项目可以宣选择
  • 5、可以设置迭代周期,方便项目进程的管理
  • 6、可以创建工作项给具体成员
  • 7、backlog可以导,过滤
  • 8、可以解决单人、多人冲突问题

二、存在的bug

1、左侧边栏的设置功能,在点击展开后不会显示展开的内容,要通过鼠标滚轴滑动才能显示

  • 开发人员未发现:可能是因为我所说的界面bug和个人的使用习惯有关系,所以每个人对此都可能有不同的见解,毕竟众口难调。所以开发人员其实可以做一些demo进行调查,看看哪种界面展示和跳转方式更为大众所接受。

2、创建目录不能超过3层,不然会创建目录失败,我觉得这个设计很不合理

  • 开发人员未发现:也许开发人员不觉得会需要使用到3层目录?

三、注意的方面

可以选择微服务架构而非巨石架构,在平台搭建进化的过程中,要有优先级,先解决最首要的问题。
在运维上要保证线上的稳定,才能给客户比较好的用户体验。

采访

一、采访对象的背景和需求

  • 采访对象是一位在安澳洲留学一年的同学,学习的专业是计算机科学,他在国内期间也看过邹欣老师写的《构建之法》,同时给予了高度的好评。他用过像github或者类似github的代码管理仓库,有一定的团队项目开发经验。由于他所在的实验室常有团队项目开发的需求,所以对这块他有一定的了解基础。

二、让采访对象使用华为软件开发云

三、描述用户使用这个产品的过程, 用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?

  • 被采访用户反映,本质上是实现了团队合作开发的功能,但是实际上用户在使用的过程中还是遇到了很多不顺意的地方已经有一些需要的功能并没有得到满足。
  • 看板:
    那几个图有点华而不实,同时也没有流水线cycle analysis
  • 工作项:
    类比GitLab的话,工作项相当于issues,迭代相当于milestone,没啥新的东西
    那个富文本编辑器太难用了,直接支持Markdown就好了
    工作项里面还没法引用commit或者别的工作项
  • 文档:
    不支持从代码docstring生成,比如javadoc或者Sphinx
  • 百科:
    同样的问题,不支持直接引用commit/文件
    百科页面只能在线编辑,没法作为git repo clone
  • 代码:
    不支持snippets
    部署密钥没法设置read-write/read-only
  • 检查:
    自带的规则集还行
    自定义的规则集只能从已有规则选择,100多页的根本不现实
    没法新建规则,也不支持external linter
  • 构建:
    同样的不灵活,每个项目的构建方法都不一样,自带的几个根本解决不了什么问题(但是对于有些人来说可能问题不大吧)
  • 测试:
    看起来是给QA人员用的
    但是怎么不支持单元测试
  • 部署:
    这部分做的还是可以的
  • 发布:
    构建的结果居然只能上传
    以Java为例,artefact不是直接Maven/ant构建完就好了
  • 流水线:
    做的还不错,和市面上已有的开发软件差不多
  • 其他:
    云的其他部分还有勉强能看英文界面和文档 开发云就直接只剩中文界面和文档了
    不支持内网部署不像GitLab和GitHub有enterprise版本
  • 总的来说就是集成了一堆功能,但是每个都做不好,还不如直接用Atlassian的那一套服务(这是被采访者给出的评价)

四、用户对产品有什么改进意见?

  • 不要简单地堆砌很多的功能,而是应该把功能做好做精。当然有一些功能是要付费才能使用的,但是也应该要将整个软件免费部分的功能做好,这样才能让大家在市场上这么多同类产品中选择这个产品,同时原意付费使用。这样才有利于产品的市场推广。

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

  • [ ] 非常不推荐
  • [ ] 不推荐
  • [x] 一般
  • [ ] 推荐
  • [ ] 非常推荐

第二部分 分析

一、大约需要时间

可以采用参考前人经验快速原型法进行估计时间,而快速原型法并不可行,所以采用参考前人经验的方法来估计时间,考虑各种因素以及分工后,估计完成这个项目大约需要6个月的时间。
PSP表格估计

PSP Personal Software Process Stages 预估耗时(周)
Planning 计划 2
· Estimate · 估计这个项目需要多少时间 2
Development 开发 16
· Analysis · 需求分析 (包括学习新技术) 2
· Design Spec · 生成设计文档 1
· Design Review · 设计复审 (和同事审核设计文档) 0.5
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 0.5
· Design · 具体设计 2
· Coding · 具体编码 4
· Code Review · 代码复审 3
· Test · 测试(自我测试,修改代码,提交修改) 3
Reporting 报告 6
· Test Report · 测试报告 2
· Size Measurement · 计算工作量 1
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 3
合计 24(周)

优势:功能多而齐全
劣势:每一项功能做的不够精致,不能在一个功能中脱颖而出

三、可提升

可以选定一个市场已有的同类软件做的比较少,或者做的不够完善的功能,作为我们的主打功能,将它做好做精致,提升使用者的用户体验,通过这种方式来让我们的产品有一个亮点和吸引用户的地方。

四、功能逻辑框图

五、评分

维度 分数(满分10‘)
用户体验 8
UI界面美观度 9
核心功能 7

第三部分 建议和规划

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

  • 在工作项中支持Markdown、检查功能可以增加一些自定义选项等,简单说来就是把功能做好,通过来亮点功能来吸引用户。因为市场上有很多已有也做的很成功的同类产品,所以我们的竞争优势就是我们的软件友好程度和功能优势。

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

国外有:GitHub、Bitbucket 等
国内有:coding.net、Gitee.com 等
同类产品真的非常多,侧重点也各有不同,详细的可以在知乎或者各类论坛上查阅。

你要设计什么样的功能?

  • 在工作项中支持Markdown、检查功能可以增加一些自定义选项等

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

  • 其实要做这个功能的原因是在采访的过程中,被采访者表示在这个软件中没有看到这个功能,而这个功能正是他在团队开发中会用到的,也比较需要的。

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

首先我们的产品要比同类产品有优势,当然我们不可能在每一个方面都做的最优,所以我觉得我们得在一到两个功能上做出别人没有做的功能,或者把这个功能的用户体验做到最好。比如说在流水线上可以做到给出更多的流水线模板,满足更多人的需求等。这样虽然不能马上满足所有人的需要,但是对我们亮点功能有需求是人,就会对我们的产品有使用的兴趣,这样就可以慢慢积累稳定的用户量。

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

如果我是产品经理,我们做出来的开发平台的创新性还是在功能上,做出大家需要,但市面上又没有的功能,就是我们的创新点。比如:测试功能可以增加自定义的测试。当然还有一个创新点就是我们的界面可以比较有新意,也就是所谓的界面友好。

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

首先我会尽力协调团队内的关系和团队的分工,保证每一个在团队内的人都是在快乐地工作的,这样才能提升团队的向心力,保证项目开发的顺利进行。
其次我们会在需求上做的更好,更深入地去了解市场需要什么,同类的产品还有什么弊端,用户的真正需求是什么。这样才能让我们的产品在后期更好地进行市场推广。

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

三个人进行开发,一个美工,一个测试
三个开发人员每个人负责几个功能,然后开发,美工和测试要定期讨论开会交流,保证项目的顺利进行。

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

要在16周发布软件,则首先我们每周要定时开两次小组会议,汇报已经完成的工作以及接下来要做的工作。
1~8周完成主要的功能
8~12周进行测试并调试修改一些存在的问题
12~16周进一步地测试已经基本完成的软件,并在界面等地方进行完善,同时要注意项目部署运维方面的问题.....

项目发布后,有没有考虑过项目该怎么部署才能满足需求。依据下图(某校教务处系统的部署)作为参考,分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置) 。

应用服务器:8核8G8
后端服务器:8核16G
12
关系数据库:Mysql5(读写分离4,备份*1)
缓存数据库:2

原文地址:https://www.cnblogs.com/Olivia1011/p/7942509.html