软件案例分析
这次软件案例分析选取VS和VSCODE做比较,一方面本人对这两个软件都有一定的使用时间,另一方面也是这两个软件经常会被一起提及。
下面先附上两个软件的使用截图。
一、 调研,评测
首先介绍一下这两个软件的功能和定位。
VSCODE本身定位是一个编辑器,实现十分轻量,应对大量的文件、文件夹很快就能处理打开。
VS的定位则是一个IDE,也就是集成开发环境,由于这个定位,使得VS要比VSCODE重很多,在启动时间和加载时间上也能有所体现。
VS启初是为C/C++开发而设计的IDE,前身还有VC++,后来支持越来越多的编程语言,如Python等,作为一个IDE,VS集成了整个软件开发流程的各个阶段的功能,从设计,到编码与测试,到代码的部署与管理以及团队协作等,VS都是集成支持的,这些对于原生VSCODE是没有的。
而VSCODE作为一个编辑器,本身的功能较少,基本上只是支持对各种语言的编辑等,但是插件赋予了VSCODE不同的意义,VSCODE有一个庞大的插件社区,基本上针对各种语言都有相应的插件支持,从而使得用户可以在VSCODE中进行编译、运行等操作,基本上任何一个在VS上有的功能,在VSCODE上都可以通过插件来获得类似的功能,但同时,也会使VSCODE变得越来越庞大。
然后讲一讲在使用中本人遇到的BUG
- 测试功能可用性逻辑问题
在我的VS版本上,测试功能存在不可用的bug,表现为项目加载后测试功能一直为不可用状态,只有进入测试的配置界面然后再退出后才可使用测试功能
- 代码动态检查不及时
VS的代码动态检查功能存在不及时的问题,表现为一般只有Ctrl+S保存操作后VS才会重新对文件进行代码检查。
- 代码动态检查错误不报错
VS对代码动态检查时常出现报错不全的情况,表现为常常有非链接方面的错误(如名字空间等错误)不能在编写代码时给出提示,而要在编译时才能发现错误。
然后是关于用户体验与改进意见方面
首先,先说说优点,作为IDE,VS基本可以支持一个软件开发流程的全阶段,仅这一点就十分强大,同时VS独立开发的编译器功能很强,也能够对代码进行有效的分析和优化,单元测试等工作开展都十分容易。
而VSCODE作为一个代码编辑器,其出色的用户界面就让它和其他产品拉开了距离,同时VSCODE的插件社区又给了VSCODE第二条生命,基本上只有想不到的,没有做不到的,从代码提示、颜色主题到音乐播放器,这些功能都可以在VSCODE的插件社区上找到。
然而,正因为VS和VSCODE功能十分强大,所以存在难以上手的问题,直到现在我依然感觉VS和VSCODE的配置十分麻烦,也十分容易出现错误,由此容易因为环境而影响开发的展开,是比较令人沮丧的一件事情。
对于VS,它的代码编辑器一直是身边朋友的槽点,经常会有人说为什么VSCODE那么好看但VS那么丑,这一点确实一定程度上影响到了VS的用户使用体验。
还有就是关于VSCODE的配置项方面的功能,很多插件的配置入口找不到,又缺少相关的介绍,这方面也有些影响用户的体验。
如果说改进意见,我认为可以多做一些关于使用引导方面的工作,让开发者可以快速上手这些工具,而不是依靠网上质量参差不齐、版本五花八门的技术博客摸索前行。同时可以从UI设计上对产品做一些优化和升级,让软件更加易用。
如果让我给软件评分的话,我会给出好,不错
类别 | 描述 | 评分 (满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分) | |
---|---|---|---|
功能 | 核心功能 | 分析三个核心功能,功能设计和质量。 | 8 |
细节 | 有什么为用户考虑的细节? | 4 | |
用户体验 | 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 | 10 | |
辅助功能 | 一些辅助功能如皮肤等 | 6 | |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 6 | |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 10 | |
体验 | 软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 6 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 8 | |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 10 |
二、分析
1. 使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间
借鉴已有成果的基础上进行实现大约要2年时间。
上面介绍到了VS中的功能十分丰富,基本贯穿了整个软件开发流程的各个阶段所需的功能,而仅6人要实现这么多的功能,除非6人都有相关的从业经验,否则从零开始构建的话基本上是不可能的。因为我们也知道,VS从97到今天经历了二十多年的积累,才有了现在的样子,要想仅仅6人来从零开始实现,那基本是不可能的。
2. 分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?
就用户的活跃量来说,VS还是稳居榜首的,2019年底时VS的用户活跃量占到了总比的22.49%。
就其功能方面而言也确实实至名归,VS作为IDE能够支持团队软件开发的各种场景和各个阶段,也是其他IDE所无法比拟的。
3. 从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面
我认为团队在注重软件本身强大功能的同时,也应兼顾软件的用户使用体验。
所以有如下建议
- 建议可以对官方使用文档进行升级更丰富,让用户在使用出现问题时可以有据可循
- 建议可以做一些引导功能,让用户可以边学边用,从而快速上手软件
- 建议可以不定期进行一些体验问卷,及时获取和相应用户关心的问题
4. 你在第一部分发现的bug,为何软件团队不能在发布前修复?
对于第一部分发现的BUG没有修复,我认为主要的原因是对用户需求掌握不好,VS作为一个IDE,其集成的功能十分丰富,也因此必须对功能有所侧重,而上面提到的一些BUG大都是不影响核心功能的BUG,即使不修复,软件的核心功能也依然能正常运转,所以,我认为是对用户需求的把握有所欠缺,没有及时注意到这方面的问题。
此外,我认为上面BUG没有修复也与软件测试有关,因为VS的版本很多,同时又支持在各种版本的操作系统上运行,所以难免会有某种组合情况下的某个功能没有完成测试,由此可能产生BUG而没有修复。
三、建议和规划
-
首先,市场有多大?潜在的用户有多少?
VS和VSCODE作为软件开发工具,其用户就是程序员,程序员有多少,市场就有多大。
埃文斯数据公司(Evans Data Corporation) 2019最新的统计数据(原文)显示,2018年全球共有2300万软件开发人员,预计到2019年底这个数字将达到2640万,到2023年达到2770万。
而来自IDC的统计数据显示,2018年全球软件开发人员数量增长到2230万,而2014年只有1850万程序员。
所以软件开发人员的市场还是十分庞大的,并且按当今趋势,未来尚不会进入衰减期。
-
目前市场上有什么样的产品了,它们的优势劣势在哪里?和它直接竞争的产品在那里?
市面上主流的同类IDE还有Xcode,Clion等。
相比于这两款产品,VS在界面的易用性以及功能引导上有所欠缺,同时,在代码实时动态检查上,VS的效果也不及这两款产品。Xcode作为苹果公司的产品,一向以艺术化界面作为其产品的特色,而Clion作为JetBrian的产品,因其丰富的产品家族而占有一定的市场和用户。
-
作为新的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
产品的用户肯定就是软件开发人员
- 学历:从专科到博士
- 年龄:20-50岁
- 专业:不定,但进行过计算机专业的学习
- 爱好:不定
- 收入:月收入从5000到10万不等
- 表面需求:工作开发使用,需要使用软件进行开发工作
- 潜在需求:希望软件更加自动化和人性化,提高用户的操作效率和操作体验
-
功能:你要设计什么样的功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?
- 可定制的实时代码分析提示工具
现在团队开发中往往会制定一个团队开发规范用于同一代码风格等,而VS并没有提供一个可以实时检测并给出提示的工具。虽然有工具可以对代码整体进行规范检查,但因其不是实时检测,所以使用起来并不方便,如果可以做成实时检测,那么在一定程度上可以提高开发的效率。
相比于市面上的其他IDE,基本上也都有类似的功能,但是支持的效果并不足够好,例如Clion中的代码流分析在千行以上的文件就不再进行分析了,而我们可以开发更高效率、功能更强的代码实时分析工具,从而可以更快地支持更大的文件。
- 迁移VSCODE优秀的编辑器到VS
VSCODE可以说是最美丽的代码编辑器了,同时各种插件的加持更是让VSCODE的视觉使用体验更上一层楼,这个基本上是同类产品都无法比拟的。
而相比之下,VS的代码编辑器比较朴素,这同时是市面上IDE的通病,或许是开发团队认为这个部分并不重要,抑或是没有投入足够的心思,各大IDE基本上对编辑器美化功能做的都较为欠缺。
由此,既然我们已经拥有了VSCODE这样一个十分成功的编辑器案例,那将其迁移至VS,让VS从外观第一步就给人以足够的吸引力,相信能让人们对VS能有一个全新的认识。
-
如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
开发与运维3人,测试1人,前端与美工2人
- 第1~3周进行市场调研、现有产品分析、功能实现设计
- 第3~7周进行编码,并同步收集相关的测试数据
- 第8~10周进行代码复审,测试与bug修复工作同时展开
- 第11周发布alpha版本,同时收集用户使用报告与反馈
- 第12周对alpha版本的反馈进行汇总和总结,同时提出改进方向与改进意见
- 第13~14周进行功能的改进与测试,同时进行回归测试
- 第15周进行bug清理,清除所有现阶段发现的bug
- 第16周发布beta版本进入市场