项目 | 内容 |
---|---|
这个作业属于哪个课程 | 北航 2022 春季敏捷软件工程 |
这个作业的要求在哪里 | 作业说明链接 |
我在这个课程的目标是 | 学习敏捷开发的思想和方法,提升软件工程能力 |
这个作业在哪个具体方面帮助我实现目标 | 通过读书,对团队开发理念、流程有了一定认识。 |
一、调研 + 评测
测试环境
PC 网页端:
- 操作系统: 5.13.19-2-MANJARO
- 浏览器:Google Chrome Version 97.0.4692.99 (Official Build) (64-bit)
手机客户端:
- 操作系统:MIUI 13.0.3
- APP 版本:5.2.1
功能性 bug
评论无法删除
具体情况
讨论区自己的评论,有时会无法正常删除。bug 视频已上传北航云盘。
复现性
在自己的帖子下评论,能正常显示评论。这时立即点击删除,无反应,无弹出的确认窗口,刷新后同样无法删除。这个 bug 无法稳定复现,20 次成功复现了 12 次。在 Windows 10 网页端和手机客户端均未能复现该 bug。
该 bug 在每次打开录屏软件想要录屏时就无法复现了。因此不得不使用手机对屏幕进行拍照。在开启无痕模式下无法复现。
分析
由于在无痕模式下无法复现,可能是存储的 cookie 存在某些漏洞。
这个 bug 比较明显,但并不致命。即使是发生了无法删除评论的情况,也不会对软件造成巨大危害。当然,在经历了这样的 bug 之后,用户可能会降低软件的使用体验,进而对软件的质量存在质疑。
回复中的 @ 无法使用
具体情况
在评论区使用 @ 功能失败,不能选择用户。尝试手动添加用户的 id,也无法成功。
复现性
能稳定复现,在评论区中 @ 功能无法正常使用。我尝试了多种使用方法都未能成功,应该不是我使用方式错误,否则该设计过于 user unfriendly。
分析
有一种可能,这是未来准备支持的功能,现在还未实现就已经在前端放出。用户可能尝试使用这个功能发现失败,进而产生不满。
二、用户体验
使用软件截图
用户体验
CSDN 技能树以博客的形式给用户提供了零基础快速学习新技术的机会。
用户可以通过讨论区进行交流,提出问题。在看完教程博客后,还有一些习题帮助巩固复习。与同类型的平台相比(如菜鸟教程),这样的练习题是十分重要的。
改进意见
首先,技能树在网页端十分难找。或许是由于它还相对处在一个内测的状态。但在手机客户端,技能树却非常好找。
其次,当前技能树有不少的错误,反馈也得不到及时的回应。
此外,练习题以选择题为主,质量并不高。对新手来说,尤其是一门语言的新手,编程题绝对是最重要的。希望能引进一部分优质的编程题,并提供评测,帮助用户提升。
采访
我采访了经管学院的同学,他希望学习 Python 的爬虫功能。我让他在 CSDN 技能树上学习。之后对他进行了采访。
三、软件分析
1、完成时间预估
技能树依托于 CSDN 本身就具有的写博客、评论、选择题(投票)等功能。对于技能树本身来说,其难点主要在于提供优质的内容,帮助用户快速掌握相应的知识点。
由于软件本身所需的运算资源较少,并发问题也较少,所以难度其实不大。如果不依托于 CSDN 本身的功能,从零开始实现技能树部分的软件功能(不考虑其内容),我认为需要约 10 周。
周次 | 任务 |
---|---|
1-2 | 明确需求,撰写文档 |
3-6 | 完成功能部分,包括基本的注册登录,以及由 markdown 生成前端界面,以及评论、答题等功能 |
7-10 | 功能测试,前端 UI 的细节调试 |
2、同类型软件对比
事实上,我并没有找到与 CSDN 的技能树功能十分相似的网站。类似的有牛客和 Leetcode 的刷题功能。但定位均有所不同。Leetcode 的刷题,是以算法题为主,可以学习也可以练习。牛客的题更加杂,各种技术都有,但不适合学习,更适合找工作前的准备。牛客也有“技术栈”相关的内容,但主要是哪些公司需要哪些技术,为应聘者提供便利,而不是让零基础的人学习。
我认为,CSDN 的技能树理念是十分不错的,如果能做好,对零基础的人入门是帮助很大的。而市面上,似乎并没有类似的产品,能提供全方位的零基础指导。
然而,目前的技能树存在的问题也着实不少。
首先,是错误很多,对新手可能造成误导,其中甚至有较为离谱的错误。
产生这样错误的原因,可能是因为缺少足够的审核。在正式投入使用之后,或许可以通过用户的反馈来修正这些问题。但一些过于低级的错误(如上述的这些错误),实在是有些劝退想继续学习的用户,让人不得不想去质疑这些教程的权威性。
其次,是使用的用户过少,难以形成好的产品外部性。在 Leetcode 中,一个优质的提问或解答,往往能得到几百赞。而在 CSDN 技能树的提问,一天过去了,还没有人给解答。对于技能树这样,不断循序渐进的教程,用户很可能会卡在某个地方。如果不能及时得到解答,用户就可能无法坚持学习。
我认为,CSDN 技能树可以给用户的评论添加标签。在平台提供一个额外的接口,集中显示全部问题。便于大神集中浏览、帮助新手快速解决问题。
最后,是 CSDN 网页端的技能树太难找了。相信绝大部分使用 CSDN 的人都是通过网页端。我至今都只能通过网址去找技能树,而未能通过前端页面找到技能树。
四、建议和规划
1、市场概况
当今社会,计算机技术对各个领域都有着十分重要的作用。许多零基础的人,需要学习计算机技术,这个市场看似是非常大的。我们的技能树,正是给零基础学习计算机的人提供帮助的。
到处,都能看到广告,零基础的人学个 Python,就能怎么怎么样。很多职场白领,可能此前从未接触过任何的计算机培训。但在工作中,掌握一些计算机技能,确实能实质性地提升他们的工作效率。这样的人群,绝不在少数。
乍看起来,这是一片十分广阔的市场。
2、市场现状
目前市面上提供程序员教学的免费网站还是不少的,比如牛客、Leetcode 等。但它们都是主打程序员应聘的需求,帮助已经有一定基础的程序员,巩固知识,查漏补缺,以通过企业的招聘考核。对于零基础的人来说,这样的网站显然是不合适的。
面对零基础的免费教学,最主要的是菜鸟教程。但我觉得还有一个不可忽视的竞争对手,是 Bilibili 这样的视频网站。有不少 up 主录制了教学视频,在上面投稿。但无论是菜鸟教程还是 Bilibili 的这些视频,普遍缺少反馈,也缺少专业人士负责答疑。而且,Bilibili 也不会有哪个系列视频能覆盖到像技能树这样广泛的知识点。而且,视频教学普遍比较冗长,需要的时间也比较多,不像技能树,只需要掏出手机,利用碎片化时间看。
总的来说,CSDN 技能树具有免费,全面,零门槛,有反馈四大优势。正如前文所说,这个领域其实还没有一个网站有这样的竞品。即便是英文网站,我也没有找到类似的内容。
看起来,这还是一片蓝海。
3、市场与产品生态
前文,我们论述了零基础需要学习计算机的人很多,也论述了市面上没有这样全面教学的网站的替代品。
诚然,CSDN 的技能树有以上两条优点,既能面向零基础,又能提供全面的教学。即便如此,我依然要质疑技能树的商业前景。
最重要的,虽然零基础需要学习计算机的人很多,但这其中,有多少人需要全方位的学习呢?
除了要以计算机为职业的人,绝大部分人学习计算机,都只是需要学习其某个功能。比如用 Python 绘图、用 Matlab 处理数据、用 Markdown 写文案(或许?)。这批人,毫无疑问是不会看技能树,系统地学习计算机的了。Bilibili 明显更加适合他们。
对于未来想以计算机为职业,眼下却是零基础的人来说,技能树是否有意义呢?
毫无疑问,技能树有一定的意义,但或许没有想象的那么大。首先,技能树中的大部分内容都过于基础,只掌握这些能力距离“吃计算机这碗饭”恐怕还差距不小。
然而,即便是在最开始的入门阶段,技能树只怕也不是最优选择。一方面,文字的理解难度,天然要比视频大很多,Bilibili 上的科普视频是一个很好的选择;另一方面,对于想以计算机为职业的人来说,大量的 coding 练习是必须的,因此 OJ 又成了一个很好的选择。或许 Bilibili 在效果反馈上略差, OJ 在教学上略差,但两者加起来,很大可能会好过在 CSDN 技能树上的学习。
那么,剩下的,就是对计算机技术有兴趣的零基础人士了。这部分人不想大量进行 coding 训练,也不想学的很深,就是单纯的了解一下计算机技术。我认为,这部分人主要集中在学生群体中。只不过,如果抛开计算机对工作的帮助,只考虑兴趣,对计算机有兴趣的人,能有几个人呢?
维护这批用户,还需要优质的教程内容,和良好的讨论氛围。当然,这两者十分需要口碑和用户的积累。因为用户在教程基础上,在评论区的二次创作和补充,也是十分重要的因素。
4、产品规划
前文已经说过,CSDN 技能树的优势,主要在于免费,全面,零门槛,有反馈。
首先,十分重要的,就是产品免费的策略坚决不能动摇。前文说了,这个产品最适合的是对计算机技术有兴趣的人,尤其以学生群体为主。该群体的消费能力和消费意愿均较弱,收费将受到极大影响。该产品的定位,应当是吸引这部分计算机新人了解 CSDN,之后成为 CSDN 忠实用户。以 CSDN 惯常的习惯,许多相对优质的资料最终都选择了收费。因此永久免费这一点是需要强调的。
其次,在当前的基础上,最好能增加用户的发帖奖励、回帖奖励,鼓励用户积极地参与到讨论区中,形成软件的正反馈。奖励的模式可以是投 CSDN 内部的币,之后可以用来购买平台的资源等。
然后,就是给用户的评论添加错误反馈和提问标签。对于错误反馈标签,如果点赞达到一定数量,就要及时通知原作者。这个通知要直接在 CSDN 首页上显示,比其他的通知都要醒目一些。对于提问标签,每个技能树要提供一个集中显示的区域。比如进入 C 技能树,有一个区域显示当前 C 技能树所有帖子还未解决的所有问题。这样便于大神集中帮助新手解决难题。
以上需求难度不大,我想只需要 8 周就能完全解决。前两周所有人一起明确接口和需求。之后三周两个人后端开发,三个人前端开发,一个人撰写给用户的使用通知(如何使用标签,不当使用如何惩罚等)。之后的一周,每组内进行白盒测试。之后的两周,每组内进行黑盒测试。测试前端时,注意测试手机端和网页端。