项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2023 年北航软件工程 |
这个作业的要求在哪里 | 个人作业-软件案例分析 |
我在这个课程的目标是 | 学习软件开发方法,了解并实践一些软件工程的方法论和工具,积累以结对编程和敏捷流程进行软件开发的经验,最终深刻掌握软件工程的能力。 |
这个作业在哪个具体方面帮助我实现目标 | 分析具体软件案例,丰富软件工程理论和实践,形成设计与评估软件产品的思维方式。 |
我选择了调研IT问答网站:CSDN问答、Stack Overflow以及SegmentFault
第一部分 调研,评测
一、CSDN问答
软件评测
1. 使用软件基本功能
我主要使用了以下几个功能:
-
查看全部问题
-
查看具体问题
- 回答问题
- 提问
-
邀请回答
分享、问题标签等功能略
2. 用户体验
首先,可以看到该软件在功能上基本能完成用户的需求,提问、回答问题这些问答平台的基本功能比较完善。
但是我观察到的一点是,问答的整体质量堪忧,这包括一些人不愿意放代码而是大段截屏,一些人直接提要求:可以提供一个XXX程序吗,或者一些非技术问题:XXX公司待遇如何等让人失去回答热情的问题。
网站流量还可以,我的回答在发出后不久就有三个人回复,其中还有一个人直接抄的ChatGPT,总的来讲流量还行质量一般。
除此之外,我觉得这个网站的UI设计有点过时,圆角的橙色按钮个人认为效果并不好,最大的问题在于橙底白字不够清楚,让人很难找到自己想要的按钮。
另外,我点击每个链接都会新开一个页面,如果没有关页面的习惯很可能最后开了很多页面,结果想看之前的页面就很难找到,这个体验也不是很好。
优点
-
功能完善,除了基本的提问回答功能之外,还包括邀请回答、酬金、分享、打分、关注等功能,进一步提升了体验。
-
AI取标题功能比较有意思,考虑到程序员提炼语言能力未必多好,这一功能是有现实意义的。经过本人测试纯文字问题提炼效果还不错。
-
对图片的支持还不错,支持问题中图片的放大、缩小以及旋转、下一张等功能。
-
设计了问题分类,一定程度上方便用户快速找到自己想要的问题。
缺点
-
提问缺少引导,导致大部分提问过于简短或抽象,难以下手,影响回答热情。
-
前端UI设计的bug以及一些其他不完备的地方(半屏显示不能完全显示需要拖动)等问题影响体验。
-
UI设计一般,尤其是黑底的代码框干扰注意力,既不适合阅读也影响回答者关注问题重点。
-
不支持 markdown 的实时预览,对于习惯于随写随看的用户比较不适应。
-
首页缺少对题目质量的评价。不同于stack overflow的vote和reputation显示,CSDN上的问题在点进去看详情前对题目质量一无所知。
-
AI取标题功能不够智能,对于一些比较复杂包含代码的问题,提炼出来的标题并不准确或提炼失败。
-
修改问题和结题的按钮需要点"…"后才出现,太过隐蔽影响使用体验。
3. 改进意见
可以看出,目前CSDN问答的主要改进方向应该是提升整体的问答质量。
-
在首页增加对问题质量的描述,类比stack overflow,可以加上vote、reputation等功能,让用户对问题质量有一个直观的感受。
-
在提问时增加引导,让用户在提问时能够更加清晰地表达自己的问题。
-
采用更丰富的回答激励措施,丰富酬金、邀请回答等反馈,增加用户回答问题的热情,形成良性循环。
-
增加功能提升用户体验,如缺点中所述的markdown实时预览、修改问题等功能。
4. 综合评价
综上,对于各种细节进行量化打分:
类别 | 描述 | 评分 |
---|---|---|
核心功能 | 分析三个核心功能,功能设计和质量。 | 6(基本功能有、质量一般) |
细节 | 有什么为用户考虑的细节? | 2(很缺乏) |
用户体验 | 当用户完成功能时,不干扰用户 | 8(基本不会被干扰) |
辅助功能 | 一些辅助功能如皮肤等 | 1 |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 1 |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 0(会不停打开标签页,内存偏高) |
软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 6 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 1(不仅没有自动记忆、也没有保存草稿的功能) |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 6 |
社区质量 | 回答的数量、及时性、质量 | 5 |
总的来讲,我对该软件的评价为:
C) 一般
Bug分析和提交
为了方便下文阐述,参考了一些资料中对bug评级的方式,现对于bug严重性的星级进行一下定义:
星级 | bug波及范围 |
---|---|
⭐⭐⭐⭐⭐ | 致命性系统故障;致命性安全漏洞 |
⭐⭐⭐⭐ | 严重系统故障;严重安全漏洞;严重影响用户体验 |
⭐⭐⭐ | 一定程度的系统故障;一定程度的安全漏洞;严重影响用户体验 |
⭐⭐ | 较大影响用户体验 |
⭐ | 略微影响用户体验 |
1) 首页“回答”按钮溢出范围
- 测试环境
Windows 10 家庭版 21H2 + Edge 110.0.1587.57
- 可复现性及复现步骤
这一bug必然发生,只需打开CSDN问答即会发生。
- Bug具体情况描述
当鼠标置于CSDN问答首页的某个回答上时,会出现“回答”按钮,但是该按钮中的文字会溢出范围。
- Bug成因
通过检查元素进行分析,可以看到我版本的的Edge不支持15px以下的中文字体,而该按钮的字体大小为12px,按钮宽度为30px,所以刚好会出现溢出的情况。
- Bug严重性
⭐⭐
这是一个基本不影响功能的bug,但是却极其影响用户体验,考虑到CSDN问答的用户有不少前端开发者,他们一定也有过调整字号的经历,因此这个bug反映出了CSDN问答对于用户体验的不重视,故我认为这是一个较高级别的影响用户体验的bug。
- Bug根本原因
我认为是:4. 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
chrome内核的浏览器会对最小字体进行限制,开发人员应该考虑到这一点,而且在测试时也应该注意到这一点,对多种不同的浏览器进行测试。
- Bug改进建议
将按钮的宽度调整为40px,或者使用 transform:scale()
缩放按钮的字体大小。
2) 回答问题部分 Javascript 高亮部分失效
- 测试环境
Windows 10 家庭版 21H2 + Edge 110.0.1587.57
- 可复现性及复现步骤
这一bug必然发生,只需使用CSDN问答的回答功能即会发生。
- Bug具体情况描述
在回答问题时,回答中的代码块中的 Javascript 高亮部分失效,而其他语言的高亮部分都是正常的。
上下两个对比,可以很明显的看出在单行代码的情况下Javascript渲染失效。
- Bug成因
编辑器的markdown的渲染比较复杂作为用户很难得知bug的具体原因,猜测是因为markdown渲染引擎的javascript语法分析出现了问题。
- Bug严重性
⭐
这是一个基本不影响功能的bug,这一bug基本不影响用户体验,考虑到markdown渲染引擎的复杂性,这个bug的严重性不高。
- Bug根本原因
我认为是:4. 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
测试人员可能没有对markdown渲染引擎的javascript解析进行测试,导致这个bug的出现。
当然,也有一种可能是markdown引擎的修复难度太大,为了提升用户体验研究如此深层的bug得不偿失,所以故意忽略了这个bug。
- Bug改进建议
事关markdown渲染引擎,可以考虑重写markdown渲染引擎,或者使用其他的markdown渲染引擎。
3) 右侧导航栏定位不对
- 测试环境
Windows 10 家庭版 21H2 + Edge 110.0.1587.57
- 可复现性及复现步骤
这一bug必然发生。
首先,打开CSDN问答,然后,使用win+左箭头或者win+右箭头将浏览器窗口缩小到半屏,然后,可以看到,原本位于右侧的提问、我的问答、榜单等内容都丢失了。
调整浏览器宽度并拖动水平滚动条,可以看到,右侧导航栏的位置不对,从而导致了半屏消失的情况。
- Bug具体情况描述
如图所示,右侧为空:
适当增大窗口,可以看到,右侧导航栏的位置不对,从而导致了半屏消失的情况:
- Bug成因
使用F12不难看出右侧导航栏的位置是fixed的,而且是固定在右侧的,所以,当浏览器窗口缩小到半屏时,左侧的部分可以使用滚动条移动,但是右侧的部分却无法移动,导致了右侧导航栏的位置不对,从而导致了半屏消失的情况。
- Bug严重性
⭐⭐⭐
这一bug会导致用户在非全屏情况下诸多操作受限,对用户体验的影响较大,所以,这一bug的严重性较高。
- Bug根本原因
我认为是:3. 开发人员粗心大意
这一bug触发不难,但影响恶劣,开发人员粗心大意,没有考虑到这一情况,导致了这一bug。
- Bug改进建议
本bug解决相对容易,只需要将右侧导航栏的位置CSS属性进行修改即可。
Bug反馈
2和3两个bug已经通过在GitCode上提交issue的方式反馈给CSDN。
截图如下,包含了测试环境、复现步骤、情况截图和我的一些建议:
同时,我也已在社区对应bug反馈文章下的评论区进行了反馈。
二、StackOverflow
软件评测
1. 使用软件基本功能
我主要使用了以下几个功能:
-
查看全部问题
-
查看具体问题
- 回答问题
-
提问
-
问题搜索
团队等功能略
2. 用户体验
首先,相比于CSDN问答,StackOverflow的UI设计显然更胜一筹:精致的圆角矩形按钮十分优雅,提问、采纳和标签三个深底按钮在白色背景上十分突出重点鲜明,代码高亮和扁平化的按钮也更显时尚和简洁:
其次,相对于CSDN,StackOverflow在首页有了vote和reputation的反馈,用户在回答时对题目质量能够有一个直观的感受,不仅增加了用户回答的热情,也为用户搜索之前的回答提供了帮助。
其次,就我的个人观察来看,问答的质量相当高,我去回答了一个问题,一个人给我评论:
该平台对回答质量要求之严格从中可见一斑。
网站流量上,根据我的观察,StackOverflow的流量超过CSDN,而且用户的活跃度也更高,这也是StackOverflow的优势所在,基本上每分钟都会有数个新问题被提出,而即使是新提出的问题,views也不少,基本刚出现就会有人看到。
最后,对于网站的核心功能:问答,StackOverflow也做得相当不错,可以看出是经过了有经验的人的精心设计的:
以提问为例,整个提问环节包含数个问题:
Title: Be specific and imagine you’re asking a question to another person.
What are the details of your problem?: Introduce the problem and expand on what you put in the title. Minimum 20 characters.
What did you try and what were you expecting?: Describe what you tried, what you expected to happen, and what actually resulted. Minimum 20 characters.
Tags: Add up to 5 tags to describe what your question is about. Start typing to see suggestions.
Review questions already on Stack Overflow to see if your question is a duplicate.: Clicking on these questions will open them in a new tab for you to review. Your progress here will be saved, so you can come back and continue.
整个流程基本可以保证用户提出的问题是高质量的。
优点
-
问答质量高,这是由问答的流程保证的。
-
提问有记忆功能,对于如此复杂的流程不会中途丢失,保证了用户提问的积极性。
-
提问者外的其他用户可以"improve this question",对于提问者提出的问题进行补充,这也是保证问题质量的一个重要手段。
-
搜索功能十分强大,可以根据问题的标题、内容、标签、回答者等规则进行搜索,虽然个人体验来看实际用处有限。
-
用户多、流量大,这也是StackOverflow最大的优势:有着全球最大的回答者群体和众多问题。
-
UI美观,符合程序员简洁高效的审美。
-
很多操作(投票、公共编辑)都有reputation限制,保证了不会有恶意操作的情况出现。
缺点
-
对图片的支持不好,点击图片就是进入一个新的网址,对于不熟悉或者加载慢的用户体验将会很差。
-
存在广告,在白底的网页上比较明显,但并不太影响用户操作。
-
对新人不太友好,虽然Stackoverflow是一个成熟的社区,但是也要考虑到大量的用户并不会在该网站上花费太多时间,而StackOverflow严格的reputation限制很影响新人的热情,一定程度上影响了优质内容的传播。
3. 改进意见
根据个人体验来讲,Stackoverflow在功能上已经相当完备了,作为一个问答社区,它的功能基本上已经覆盖了所有的需求,而且完成的很不错。
我觉得目前Stackoverflow的改进方向在社区上,我在这里只简单发表一些浅显的看法:
-
加强对新人的帮扶,新人来StackOverflow很容易出现“什么都不让做,试着回答几个还被人投反对票”的情况,或许可以给出一些“当前回答者是新人”的提示来减少这种情况。
-
拓宽营收渠道,比如为其他网站定制API盈利,或者设计答案酬金等方法增加收益,从而保证网站良性运转。
4. 综合评价
综上,对于各种细节进行量化打分:
类别 | 描述 | 评分 |
---|---|---|
核心功能 | 分析三个核心功能,功能设计和质量。 | 9(基本功能有、质量很高) |
细节 | 有什么为用户考虑的细节? | 7(为了保证问答质量采取了诸多措施) |
用户体验 | 当用户完成功能时,不干扰用户 | 8(基本不会被干扰) |
辅助功能 | 一些辅助功能如皮肤等 | 2(UI还不错) |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 9(核心竞争力是优秀的历史问答资源和强大的回答者社区) |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 4 |
软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 6 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 7(对于复杂的提问流程,草稿记忆功能很有帮助) |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 6 |
社区质量 | 回答的数量、及时性、质量 | 8 |
总的来讲,我对该软件的评价为:
E) 非常推荐
Bug分析和提交
对bug严重性的星级定义与之前相同。
1) 修改回答时右侧提示栏挡住页脚
- 测试环境
Windows 10 家庭版 21H2 + Edge 110.0.1587.57
- 可复现性及复现步骤
这一bug必然发生,只需对自己之前的回答进行修改必然发生。
- Bug具体情况描述
编辑自己之前的回答,右侧会出现“How to Format”提示栏,拖动到底部会发现这一栏位置永远不变从而挡住页脚。
- Bug成因
F12查看后会发现在滚动时这一部分CSS会更改,猜测是前端框架使用有误导致。
- Bug严重性
⭐
这是一个基本不影响功能的bug,但是较为影响用户体验,虽然挡住的部分是StackOverflow的官方社交媒体平常不会使用,但是这确实非常影响观感。
- Bug根本原因
我认为是:4. 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
可能编辑回答这一操作使用较少,测试团队忽略了对这一部分进行测试。
- Bug改进建议
修改这一部分的前端代码,具体修改应结合项目使用的前端框架。
2) 无法在提问栏中使用Tab输入制表符
- 测试环境
Windows 10 家庭版 21H2 + Edge 110.0.1587.57
- 可复现性及复现步骤
这一bug必然发生,只需提问即可发生。
- Bug具体情况描述
提问时,在输入框中按下Tab,作用是选择下一个按键而不是输入制表符。
- Bug成因
stackoverflow太追求用键盘操控输入的方式,结果导致应该输入制表符时Tab键被用作切换按钮,我认为这不是Feature而是Bug,因为个人感觉很少有人会在网页中使用Tab键定位输入,但直接在输入框中输入问题内容的人未必是少数,而Tab缩进对于代码基本算是刚需,故这一情况实际上是影响使用体验的。
- Bug严重性
⭐⭐
这是一个基本不影响功能的bug,但是较为影响用户体验,如上所述,我觉得会在提问题的输入框中输入代码的人不在少数,他们都需要花时间适应这一情况。
- Bug根本原因
我认为是:1. 对用户需求掌握不好
开发团队应考虑到用户的实际需求,大部分人都可能需要在输入框中使用Tab输入制表符,而不是切换定位。
- Bug改进建议
修改这一部分的代码,定位在输入框中时Tab用作制表符输入。
Bug反馈
本来想在 stack overflow meta 对bug进行反馈的,但是他要求反馈者必须至少5 reputation,截至提交作业还没攒够。
三、SegmentFault思否
软件评测
1. 使用软件基本功能
我主要使用了以下几个功能:
-
查看全部问题
-
查看具体问题
-
回答问题
-
提问
-
问题搜索
站内其他功能略
2. 用户体验
首先说一下最与众不同的功能:
-
回答问题输入框的停靠功能。这个功能还是挺有趣的,当你在回答问题的时候,输入框会停靠在你的屏幕上方,这样你就可以在回答的同时看到其他的回答,这样的功能对于回答问题的用户来说还是挺友好的。毕竟它的回答问题输入框在所有答案之下,这样的话,用户在回答问题的时候,可以滚到上方一边看问题一边回答,回答的内容自然也会更贴合问题。
-
答案的人工审核,我在提交答案后,发现我的答案被暂时隐藏等待人工审核,这确实是一种很好的保证质量的方式,但是这样的话,用户体验就会受到一定的影响,因为用户在提交答案后,就不知道什么时候才能看到自己的答案。而且,如果网站的流量增多,人工审核的工作量也会增大,不知道思否是否有这方面的准备。
-
它的搜索功能,令人震惊的是它的搜索居然是优先使用Bing等搜索引擎,我只能将这种行为理解为对自身搜索的极度不自信,甚至愿意放任流量去其他页面,也不让用户轻易使用自己的搜索功能。
然后是一些其他角度的评价:
该网站名为SegmentFault,很有对标StackOverflow的气势,在网站里也能看到许多模仿StackOverflow的设计,比如问题左侧悬浮的点赞、点踩按钮,用户的声望值和勋章更是和StackOverflow一模一样。
另外,网站的UI设计个人感觉还不错,整个网站的色调都是青翠的绿色,整体感觉还是比较清新的。
但是,他所做的还远远不够。
首先,该网站的功能还算完备,发问题、回答问题、评论、搜索等等都有,可以说是能用。
但是,整个网站的几乎看不到为用户考虑的地方,很多地方简单的就像大学生课程作业,相比于StackOverflow精心设计的提问流程,SegmentFault的提问有点过于简陋。
除此之外,该平台的流量也可以用“微弱”来形容,根据我一段时间的观察,这个平台可能几个小时才会有一个问题出现!作为一个靠用户提供内容的社区,如此惨淡的流量自然无法产出优质的内容。我试着搜索了一些内容,感觉完全不如去搜索引擎搜索,这还是很致命的。
至于首页的问题质量提示,SegmentFault确实在首页给出了vote数据,但是奈何使用人数太少,这一数据的参考价值很难说。
最后,思否提问的质量也很难让人满意,我打开了几个问题,几乎没有使用代码块的,大多数人都是直接放截图,问题描述也不够充分。
优点
-
UI风格很统一,青翠的绿色很养眼。
-
输入框的停靠功能,可以让用户在回答问题的时候不用在问题和回答间反复滚动,StackOverflow就存在这个问题。
缺点
-
搜索功能居然不使用自己的搜索引擎而是导向站外,影响使用体验(当然其内容确实也不是大部分人搜索解决问题的首选)。
-
提问缺少引导,基本上就是个输入框,全靠用户自己保证题目质量。
-
流量实在太低,缺乏优质内容,也很难让人愿意来此提问。
虽然此处列出的缺点不多,但是对于一个问答社区来说,这些缺点都是致命的。而且这很大程度上是因为该网站功能十分有限,只有基础功能的缘故。
3. 改进意见
-
为用户考虑的细节,比如提问的引导,搜索的引导,回答的引导等等。
-
优化搜索功能,使用自己的搜索引擎。
-
优化首页的问题质量提示,让用户更容易发现优质问题。
-
采用激励措施增大网站流量,比如积分制度,悬赏制度等等。
-
优化提问流程,在机制上避免低质量问题。
4. 综合评价
综上,对于各种细节进行量化打分:
类别 | 描述 | 评分 |
---|---|---|
核心功能 | 分析三个核心功能,功能设计和质量。 | 4(只有最基本的) |
细节 | 有什么为用户考虑的细节? | 0(如上所述) |
用户体验 | 当用户完成功能时,不干扰用户 | 6(基本不会被干扰) |
辅助功能 | 一些辅助功能如皮肤等 | 2(UI看得出来经过了用心设计) |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 0(现在的流量也说明了这一点) |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 4 |
软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 6 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 4(可以记忆搜索选项,聊胜于无) |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 6 |
社区质量 | 回答的数量、及时性、质量 | 0 |
总的来讲,我对该软件的评价为:
B) 不推荐
Bug分析和提交
对bug严重性的星级定义与之前相同。
1) 半屏显示时提问按钮挡住导航栏
- 测试环境
Windows 10 家庭版 21H2 + Edge 110.0.1587.57
- 可复现性及复现步骤
这一bug必然发生,只需将浏览器窗口宽度调整为半屏即可发生。
- Bug具体情况描述
当浏览器窗口宽度调整为半屏时,提问按钮会挡住部分导航栏。
- Bug成因
前端对各种情况考虑不周,对size的设计不够合理。
- Bug严重性
⭐
这是一个基本不影响功能的bug,不算特别影响用户体验。
- Bug根本原因
我认为是:4. 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
开发团队可能没有考虑半屏情况下的情况,或者没有进行充分的测试。
- Bug改进建议
修改这一部分的前端代码,具体修改应结合项目使用的前端框架。
Bug反馈
该Bug已通过反馈区进行了反馈。
四、用户调研
采访对象
同宿舍同学,1921软件学院的一员,经常使用问答社区解决问题。
选择原因
该同学有软件开发经验,在IT问答方面有一定的需求,对于问答社区的使用有一定的了解,也对网站使用也有较高的要求,能够提供有价值的调研信息。
采访对象主要需求
根据调研对象的反馈,他使用IT问答网站的主要需求是获取编程技术方面的帮助,解决编程中的问题,获取新的编程思路。
采访对象使用的产品
根据调研对象的反馈,他经常访问stackoverflow,使用频率较高。而CSDN问答则较少访问,每周访问次数不超过1次,大部分为在搜索引擎搜索到其中的已有问答而非提问或回答。SegmentFault则基本没有使用过。
对软件的评价
调研对象认为,stackoverflow网站上的操作相对来说比较容易上手,因为其界面清晰简洁,功能布局合理。而CSDN问答则相对不太友好,界面上的功能不够齐全。SegmentFault上手还行难度不大,但是他也质疑这一平台上问答的质量。
他比较认可stackoverflow的强大的搜索功能,能够快速的找到自己想要的答案。
他另外谈了谈他对IT问答网站的看法,他认为,与搜索引擎相比,IT问答网站的优势在于能够提供更精准的答案,更高效地解决问题,以及更具有互动性和交流性,用户可以与其他人探讨问题,更有利于增长见识。
改进建议
他提议可以增加一些建议内容,比如说题目的标签相关推荐和搜索推荐,甚至是其他学习资料推荐,来帮助入门者更方便的获得知识。
同时,他也认可质量是关键竞争力,因此,他建议增加评价功能和社区管理,提高问答的质量。
第二部分 分析
这里以三款产品中的佼佼者StackOverflow为例,进行分析。
工作量分析
使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。
首先,作为一个IT问答网站,StackOverflow的业务逻辑还是比较简明的,核心功能是提问、回答和搜索,根据我之前开发的经验,完成基本功能应该并不困难,猜测大概需要两个月:
1~2周确定需求并确定产品规划,包括前后端的API设计,数据库设计,前端页面设计,以及产品的整体架构设计。
3~6周前后端同时开发,前端主要是页面的设计,后端主要是API的实现,数据库的设计和实现,以及整体的架构设计。
7~8周前后端联调,进行较大规模的测试并准备发布,保证所有功能的正确性。
但是,StackOverflow作为一个优秀的产品,它的功能远不止这些,我认为要开发出对标StackOverflow的产品,还会遇到以下困难:
-
更多的细节功能,如投票、声誉、UI的美化、个人主页、私信、关注、推荐、高级搜索(正则匹配)等等优化用户体验的细节功能。
-
高并发和大规模的访问量,这个问题在前面的分析中已经提到过,对于StackOverflow这样的网站肯定需要对性能进行优化,如高效的访存、负载均衡等技术。
-
推荐算法、AI问题联想、甚至CSDN的AI起名或者AI审核,这些功能可能需要专业的算法工程师。
-
作为一个社区,需要相关的维护,因此需要管理员功能,如能够处理用户的投诉、维护社区的秩序和规则等等。
-
安全性,保护用户的隐私以及防止恶意攻击。
如果这些全部都要完成的话,我认为需要一年的时间:
周 | 任务 |
---|---|
1~2 | 需求分析 |
3~4 | 业务逻辑设计和整理 |
5~6 | 前端UI设计,后端数据模型设计 |
7~10 | 前端框架搭建,后端框架搭建 |
11~12 | 前后端基本功能开发 |
13~14 | 前后端对接,产生一个可用版本,只包含基本功能,发布Alpha测试 |
15~18 | 前后端开发基本的扩展功能,如上述细节功能 |
19~20 | 前后端对接,产生一个完整版本,发布Beta1测试 |
21~24 | 整理市场反馈,前后端进行测试,此时软件已经达到低端产品水平 |
25~28 | 前端优化UI,后端优化数据库访存性能、负载均衡 |
29~32 | 前后端对接,产生一个高级版本,发布Beta2测试 |
33~36 | 整理市场反馈,前后端进行全面测试,此时软件已经基本完成 |
37~38 | 整个系统全方位优化用户体验 |
39~40 | 进行代码审查,进行系统测试,为上线做准备 |
41~42 | 测试部署相关,编写用户指南 |
43~44 | 上线正式版,进行市场推广 |
45~50 | 收集用户反馈,进行系统优化,经过多次迭代,项目完成 |
软件质量分析
分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?
还是以StackOverflow为例:
优点:
-
问答质量高,用户水平高,且提问质量反馈做得很好。
-
用户多、流量大,解决问题速度快。
-
UI美观,且符合用户习惯。
-
功能强大,如搜索、他人编辑等。
-
社区管理得当,对chatGPT等机器人的使用快速反应作出限制。
缺点:
-
对图片的支持不好。
-
对新人不太友好,新人由于reputation不高,处处受限。
-
用户几乎都是程序员,即IT从业者,也许可以考虑为非IT从业者提供支持和帮助。
从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。
StackOverflow团队应更加重视新人对于社区的贡献,目前对于图片的支持不够,对新人不够友好,都可能会影响新人的热情,甚至导致他们选择别的社区,从而影响社区的长远发展。
我的建议是给出一些新人的奖励,比如reputation的额外奖励,同时在社区中宣传不应对新人过分苛刻,应该给予他们更多的帮助,让他们更快地融入社区。重视对新人的引导而不是批评,教育而不是限制,这样才能让社区有更多的新鲜血液。
第三部分 建议和规划
这个软件/网站/服务有很多可以提高的部分,如果你是新上任的项目经理,如何提高从而在竞争中胜出?请针对以下的问题进行思考:
市场概况
首先市场有多大?
首先,所有程序员几乎都有使用IT问答社区的需求,这是一个很大的市场。
根据信息产品的“赢者通吃”效应,最后大概率会只剩下一个主流的IT问答社区,拥有大量问答和知识资源,其他的社区只会由于语言、政策等原因占有极小的份额。
根据Evans Data Corporation Data的全球开发人员人口和人口统计研究,全球有2690万软件开发人员,预计到2023年将增长到2770万,到2024年将增长到2870万,他们都有使用IT问答社区的需求。
其次直接的用户有多少?潜在的用户又有多少?
直接的用户可以通过StackOverflow的用户数量来估计,点击User板块Reputation统计,计算可得目前StackOverflow有约2000万有reputation的用户,实际账号数只会更多。
根据StackOverflow自己在2022年的统计,大约81%的受访者有StackOverflow账号,可以认为,几乎所有的程序员都有使用StackOverflow的需求。
至于潜在用户,考虑到计算机技术在今日的快速发展,除了开发者其他人也许也会有需要寻求计算机技术方面的支持和帮助的时候,因此,潜在用户的数量也是非常庞大的。
市场现状
目前市场上有什么样的产品了?
这里以中国大陆为例,除StackOverflow外:
-
CSDN问答:依托CSDN的庞大用户、声誉和激励,目前问答流量和质量还不错。
-
SegmentFault思否:目前流量较差,问答质量也不高,但是有一定的潜力。
-
知乎:目前流量和质量都很好,但是知乎的用户群体更偏向于知识型用户,而不是技术型用户。
上述产品的定位、优势与劣势在哪里?
-
CSDN问答:定位于CSDN博客的用户,优势是用户群体庞大,有一定编程基础,劣势是问答质量不高,而且历史问答资源有限。
-
SegmentFault思否:定位于程序员,优势是更专业、小众,劣势是用户群体太小。
-
知乎:定位于广大用户,优势是用户群体庞大,劣势是用户群体太广,问答未必是IT类的,尤其纯技术的问答极少。
-
StackOverflow:定位于程序员,优势是用户群体庞大,劣势是英文网站有语言障碍,对新人不友好。
上述产品之间呈现什么样的关系,哪些为竞品关系?以及竞争中的各方态势如何?
如上所说,IT问答网站更可能是“赢者通吃”的市场,因此功能高度重合的CSDN问答、思否、StackOverflow是竞品关系,知乎主业并非IT知识问答,因此可认为不是竞品关系。
目前,在国际上,StackOverflow是最大的IT问答网站,几乎所有程序员都会使用它,也因此积累了庞大的历史问答和专业的回答者,但是由于其英文网站,对新人不友好,因此在国内的市场份额未达到垄断地位。
而CSDN问答、思否则是在国内的IT问答市场中,各自占据一定的市场份额,但是由于功能重合,市场份额之间存在一定的竞争关系。
目前看来,CSDN问答依托CSDN博客的用户群体和相关激励,有了一部分用户。而思否则比较小众,但是有一定的潜力。
市场与产品生态
这个产品的核心用户群是什么样的人
?典型用户是什么样的?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
作为一个IT问答网站,其核心用户群是自然是需要编写程序的人。
典型用户A:
属性 | 特征 |
---|---|
身份 | 学生 |
学历 | 中学以上 |
年龄 | 15-25 |
专业 | 计算机 |
爱好 | 编程、游戏 |
收入 | 0 |
表面需求 | 学习编程 |
潜在需求 | 找工作,成为技术专家 |
典型用户B:
属性 | 特征 |
---|---|
身份 | 工程师 |
学历 | 本科以上 |
年龄 | 25-35 |
专业 | 计算机 |
爱好 | 社交、休息 |
收入 | 5-20k |
表面需求 | 解决工作中的问题 |
潜在需求 | 成为技术专家,拓宽视野 |
典型用户C:
属性 | 特征 |
---|---|
身份 | 专业人员、研究人员 |
学历 | 本科以上 |
年龄 | 35-45 |
专业 | 计算机 |
爱好 | 研究新技术、分享见解 |
收入 | 20-50k |
表面需求 | 为他人解惑 |
潜在需求 | 为社区做贡献、帮助他人实现价值 |
产品的用户群体之间是否存在一定的关系?是否有利用其相互作用二次构成特定用户生态
的可能性?
我觉得这些用户群体之间是一种成长的关系,每一个技术专家都是从学生、工程师或开发者这样一步一步走过来的。
我觉得确实可以利用这些用户群体之间的关系,学生通过学习编程到找工作,工程师通过解决工作中的问题到成为技术专家,专业人员通过为他人解惑到为社区做贡献,这形成了一个良性循环,而这个过程中,他们都需要一个平台来交流,这个平台就是我们的产品。
如果能实现这个用户生态的良性循环,那么我们的产品就可以稳定的拥有高质量的用户群体,这样我们的产品就可以稳定的发展下去。
产品的子产品,以及其他相关产品之间是否存在一定的关系?是否有利用各个产品特性之间的相互关系二次构成产品生态
的可能性?
StackOverflow作为StackExchange的一个子产品,我觉得完全可以利用它和StackExchange其他产品之间的关系,形成一个良性的产品生态。
StackExchange的其他产品有:
- Server Fault
- Super User
- Ask Ubuntu
- Arqade
- Mathematics
- English Language & Usage
- Ask Different
等等,他们大多也都是问答网站,对于熟悉StackOverflow的用户来说,上手这些网站应该比较容易。
程序员只是一份职业,甚至可能不是他们的主要职业,如果能利用StackOverflow的影响力,为StackExchange的其他产品带来更多的用户,那么这些产品也就可以更好的发展下去。
比如,一位程序员是StackOverflow的忠实用户,同时也是游戏玩家,那么他就可以通过StackOverflow的影响力,找到Arqade这个产品,从而解决他在游戏中的问题。
又比如,一位学生可能会在StackOverflow上询问编程问题,那么当他在写高数作业的时候,可能会用到Mathematics这一产品。
如果能形成这样一个产品的联动,那么StackExchange的产品就可以更好的发展下去,StackOverflow也会有更忠实、更高水平的用户群体。
产品规划
你要在当前软件的基础上
设计什么样的新功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?可以用NABCD分析
。
我想设计一个IDE插件,方便用户在使用IDE时快速针对bug进行提问。
功能描述
StackOverflow上的大部分问题都是针对bug的提问,但是用户在提问时,不仅需要离开IDE,打开浏览器,打开StackOverflow,还需要在StackOverflow上进行搜索,找到相似的问题,如果没找到还需要复制粘贴问题描述,最后才能提问。
这个过程不仅繁琐,而且还会打断用户的思路,影响用户的效率。并且,用户在提问时可能并不会包含一些细节,比如python环境等等,对于一些逻辑问题需要Debug的情况尤其麻烦。
我希望设计一个IDE插件,能够自动总结当前工作环境(工具链版本),当前错误(代码和报错信息),然后在IDE内部打开StackOverflow的搜索页面,甚至如果对面也装了该插件还可以自动在回答者的IDE中还原项目,方便回答者进行Debug。
同时,该插件或许还可以提供协作功能,让回答者远程调试。而这所有的一切,都可以在IDE内部完成,不需要进行琐碎的操作,可能就只是几个快捷键的事情,就可以体验完整的StackOverflow提问和回答过程。
同时,AI可以智能地总结出用户的问题,然后从StackOverflow上自动寻找类似的问题进行推荐。甚至可以自动生成问题,让用户修改细节。
NABCD分析
- Need需求
- 用户需要在使用IDE的同时能够方便地在StackOverflow上提出问题。
- 用户需要准确地报告问题,同时附上相关的错误信息和代码。
- 用户需要向回答者提供足够的信息,以便其能够轻松地重现错误并进行调试。
- Approach方法
- 创建一个StackOverflow IDE插件,使用户可以在IDE中直接提问。
- 使用AI技术自动总结用户的错误信息和相关代码,并自动生成提问的草稿,以节省用户的时间。
- 同时,该插件可以自动提供工具链信息,以便回答者能够轻松地复制环境并进行调试。
- Benefit好处
- 通过在IDE中使用插件,用户可以更快地解决问题,而不必在多个应用程序之间来回切换。
- AI技术可以自动化生成问题,减轻用户的负担。
- 提供工具链信息可以帮助回答者更快地重现问题并给出解决方案。
- Competition竞争
- 目前没有类似的StackOverflow IDE插件,这使得该产品在市场上具有竞争优势。
- 有了这个插件,在StackOverflow上提问会变得更加简单,这也会为StackOverflow带来更多的用户,提升其竞争力。
- Delivery推广
- 通过在StackOverflow打广告、在官方社交媒体宣传该产品、鼓励试用,以吸引目标用户。
- 与IDE厂商合作,以将插件集成到其平台和产品中,同时也可以通过IDE厂商的用户群体来推广该产品。
综上所述,我觉得这个功能不仅很有意义,也很有市场,和IDE开发商是一个双赢的关系,也能切实的方便用户。
程序员都对便捷有着强烈的追求,我觉得如果真的能完成,那么这个产品会很受欢迎。
如果你是项目经理,可以招聘6个人
,并且有4个月
的时间,你认为应该如何配置角色
(开发,测试,美工等等) 才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
我设计的团队如下:
-
2名插件开发人员,负责开发插件的基本功能。
-
1名测试人员,负责测试插件的各项功能。
-
1名前端&美工,负责设计插件的UI以及与IDE对接。
-
1名算法工程师,负责提问生成与推荐算法。
-
1名StackOverflow后端开发,负责开发新的后端接口和最终部署。
请为你的团队设计16个周期每周的详细规划。
周次 | 插件开发(2人) | 测试 | 前端&美工 | 算法 | 后端 | 产品经理 |
---|---|---|---|---|---|---|
1 | 学习相应技术知识 | 调研其他经典插件,确定UI风格 | 调研AI模型,初步选型 | 学习相应技术知识 | 需求调研 | |
2 | 需求调研 | 需求调研 | 需求调研 | 需求调研 | 需求调研 | |
3 | 确定需求规格 | 初步设计 | 模型初步设计 | 调研StackOverflow后端情况 | 时间和分工规划 | |
4 | 设计插件框架,与IDE开发者交流 | 设计测试框架 | UI设计 | 着手搭建AI模型 | 设计后端,与StackOverflow开发者交流 | 与用户交流 |
5 | 插件开发 | 插件前端美工 | 调试AI模型 | 改写StackOverflow后端以支持新功能 | 与用户交流 | |
6 | 插件开发 | 插件前端美工 | 调试AI模型 | 改写StackOverflow后端以支持新功能 | 与用户交流 | |
7 | 插件开发 | 插件前端美工 | 完成基础功能 | 为插件编写新的API | 与用户交流 | |
8 | 单元测试 | 集成测试 | 插件前端基本功能完成 | 对接插件接口 | 测试新API | 参与测试 |
9 | 单元测试 | 系统测试,准备上线测试版 | 在IDE中优化美工 | 测试AI模型的部署 | 测试整个服务的部署 | 准备上线,编写文档 |
10 | 整理反馈 | 整理反馈 | 整理反馈 | 整理反馈 | 发布Alpha测试,收集市场反馈 | |
11 | 功能完善 | 测试之前的功能 | 优化调整 | 设计完善 | 优化性能 | 后续规划 |
12 | 功能完善 | 测试之前的功能 | 优化调整 | 优化用户体验 | 优化性能 | 收集反馈,与用户沟通 |
13 | 整理反馈 | 整理反馈 | 整理反馈 | 整理反馈 | 发布Beta测试,收集市场反馈 | |
14 | 代码审查 | 系统测试 | 代码审查 | 代码审查 | 代码审查 | 市场推广,编写用户指南 |
15 | 部署 | 部署 | 部署 | 发布正式版,正式上线 | ||
16 | 修改反馈的Bug | 修改反馈的Bug | 修改反馈的Bug | 修改反馈的Bug | 发布迭代版本 |