软工案例分析作业-CSDN

时间:2024-01-06 10:35:44
项目 内容
这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健)
这个作业的要求在哪里 案例分析作业要求
我在这个课程的目标是 提升软件开发能力与团队意识
这个作业在哪个具体方面帮助我实现目标 撰写软件使用体验报告,增加对软件工程的理解,进而帮助团队项目软件开发避坑

1. 前言

CSDN创立于1999年,曾是中国最大的IT技术社区。据天眼查数据显示,最近一次融资在2014年。20多年对于互联网产品来说,已经是相当漫长的时光了。不过它是否承载了最初那一批用户的期待?

我在大学刚入学时曾下载过CSDN App,当时的主要目的是将在浏览器端看到的网页收藏后,碎片化时间在手机上继续阅读;另外就是每年都可以看到CSDN发布的中国开发者调查报告,这就是我对于CSDN的第一印象。

牛客网则是集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的招聘类网站,它的目标用户更加垂直,以应届生和社招求职者为主;微信公众号个人使用极少,因此在本文中我以知乎作为代替。

本文主要分析CSDN产品,牛客网与知乎则作为对比分析。

2. 调研与评测

2.1 基本功能介绍

登陆后进入App页面,底部导航栏包含5个标签,首页包含关注、推荐、热榜三个主要的资讯入口,Blink则接近知乎的动态或是微信的朋友圈,此外按照编程语言细分了更多板块。

其次是会员,除了广告收入以及企业合作,这应该是CSDN收入的主要来源之一。会员可以解锁资源下载、VIP文章、技术电子书以及网课等权益。

CSDN在稳住文字创作基本盘的同时,也在推广视频直播等形式的新媒体,CSDN上的直播以技术分享为主,支持回放功能,个人用户也可以进行直播。(备注:iOS端与安卓端的第三个Tab不同,iOS为直播,安卓为Blink),页面如下:

软工案例分析作业-CSDN

最后则是消息与个人页面,总的来说在UI逻辑上CSDN与另一款我常用的社区类App知乎很接近,或许这就是内容社区的殊途同归吧:

软工案例分析作业-CSDN

相比之下,牛客网的功能简单了许多。首页是学习、校招、面经的聚合页面;社区则包括面经分享、薪资对比等;求职板块打通了企业与求职者之间的通道。

软工案例分析作业-CSDN

2.2 CSDN Bug与反馈

Bug等级与测试环境

参考某四级分类法[1],对应的等级与描述如下:

级别 描述
Blocker 致命性系统故障、致命性安全性漏洞、严重影响大部分用户的使用体验
Critical 严重系统故障、服务器鉴权漏洞或重要数据泄露、用户体验较差
Major 一般系统故障,功能没有完全实现但不影响使用,不影响系统稳定性
Minor 轻度系统故障,界面、性能缺陷、建议类问题

测试环境如下:

  • iOS 13.6,App版本号v4.5.7
  • Android 11,App版本号v4.5.5

本文所出现的稳定复现Bug已通过个人中心“帮助反馈”页面向客服反馈。

Bug 1. 夜间模式部分页面字体异常

Bug等级 出现Bug平台 复现情况
Major iOS/Android 必然发生

① 复现步骤:

  • 从个人设置页面开启夜间模式
  • 进入任一CSDN下载页面,正文字体难以辨认

② Bug具体情况描述:

CSDN支持夜间模式,但目前存在不少影响体验的Bug,如展位图依然是白色,较为刺眼;而本Bug发生时,下载页面的文字依然是深色,难以辨认,对用户阅读文章造成了负面影响。配图如下:另外,对于站内发布时间较早的文章,也存在夜间模式下无法反色字体颜色的情况,对应的老文章字体显示异常、安卓下载页面显示、iOS下载页面显示效果图如下:

软工案例分析作业-CSDN

③ Bug分析

夜间模式并不是软件的核心需求,微信直到iOS13系统级支持夜间模式,才开始对夜间模式的适配,CSDN App的夜间模式无疑也是后加的需求,因此可能出现判断是否采用夜间模式的开关未覆盖所有文章类型,导致部分页面背景修改为夜间模式,文本却没有更新,从而影响阅读的情况。

严重性方面,我觉得这是一个Major级别的Bug,不影响系统功能与安全性,但影响部分用户使用体验:虽然该类页面占CSDN总体博文的比例不大,但刺眼的占位图让夜间模式失去了存在的意义,页面难以辨认也会进一步降低用户使用夜间模式的意愿;而对于使用普通模式的用户来说,则完全不会影响他们的使用体验。

④ Bug改进建议

下载页面等字体颜色与普通页面一致。

Bug 2. 任务中心无法查看课程

Bug等级 出现Bug平台 复现情况
Minor iOS/Android 必然发生

① 复现步骤:

  • 从个人页面点击左上角“”标志,进入任务中心
  • 选择“学习课程”任务
  • 点击最上方课程,显示“课程未发布”Toast后强制返回上级页面

录制的复现Gif如下:

软工案例分析作业-CSDN

② Bug具体情况描述:

每日任务页面能够通过活跃度激励用户,让用户使用课程、面试题等功能,但点击课程后自动返回会影响用户浏览感兴趣的课程。

③ Bug分析

严重性方面,我觉得这是一个Minor级别的Bug,不影响系统功能与安全性,但影响部分用户的轻度使用体验:从任务页面向服务端发送拉取课程列表请求时,服务端应该只返回用户有权访问的课程列表。目前会泄露部分未正式发布课程的信息,但应该不会造成负面影响。

④ Bug改进建议

取消显示未上架的课程。

Bug 3. 部分Deeplink无法正常跳转

Bug等级 出现Bug平台 复现情况
Minor iOS 必然发生

① 复现步骤:

  • 在iOS浏览器搜索编程相关内容
  • 点击属于CSDN站点的链接,Deeplink将唤醒App
  • 部分链接无法在App中打开链接,也无法在浏览器中打开(会强制跳转到App)

录制的复现Gif如下:

软工案例分析作业-CSDN

② Bug具体情况描述:

Universal Links是iOS的Deeplink方案,iOS9以上的用户可以通过点击Universal Links链接无缝重定向到一个app应用,极大优化了跨应用的交互体验;如果用户没有安装App,则会在网页中打开对应页面。

但在打开聚合搜索页面时(CSDN已经为您找到),会跳转到CSDN App上一个浏览的页面(通常是首页),无法查看内容。

③ Bug分析

Universal Links需要App在系统中注册对应的路由,成功打开App说明外部路由跳转正常,但在App内无法定向到聚合搜索页面,说明是服务端的内部路由中没有对应的schema,出现此Bug。

④ Bug改进建议

服务端增加对聚合搜索页面的路由跳转功能。

Bug反馈

已通过个人中心“帮助反馈”页面向客服反馈。

软工案例分析作业-CSDN

此外还发现了网络状态较差时登陆界面死循环的问题,不过该问题仅出现1次,之后想要复现未成功。

2.3 体验与采访

CSDN个人体验

  • 使用过程:填补碎片化时间,浏览帖子内容,为自己充电
  • 解决的用户问题:希望能在移动端方便的浏览CSDN博文
  • 用户体验:广告比PC端更少一些(不开插件的情况下),但是排版比较紧凑,并且移动端阅读代码块的体验并不好,需要横向滑动才能看完一行,思路很容易中断。因此回到最初的“现在很多开发人员和 IT 专业的学生都在移动设备上学习、工作,在移动设备上的 APP 能满足这类目标用户的需求么?”问题,我觉得在移动设备上学习还是较为困难的,我可能更倾向于寻求一些Kill Time的应用,而不是断断续续的技术类文章阅读……

采访:某互联网从业人员(A)

A是我在网上认识的IT研发人员,目前在自主创业。因此采访在线上进行,类似聊天的形式。

我:A佬,你用过CSDN吗?

A:20年前用过

我:1999年才出的,那是2001年?(刚查完百度百科的我觉得他在吹牛)

A:(滑稽表情)

【随后A发了他的主页截图】

软工案例分析作业-CSDN

A:当年就泡泡论坛,发发博客

我:那之前和现在相比如何呢?

A:现在基本不用了

A:当年是编程初心者社区吧

A:你要去CSDN上班吗?

【对话到此告一段落】

采访:其他软工班级同学(B)

B是其他软工班级学生,数码产品爱好者,计划出国,在我的请求下,他体验了一段时间的CSDN App,经本人同意,B的体验现场如下:

软工案例分析作业-CSDN

我:你是CSDN的用户吗?

B:没有,我用Google搜索,中文互联网点进去你可以发现10个全是复制粘贴。

我:那么现在你使用的体验如何?

B:我觉得一个App就应该做他自己该做的事情,而不是说各种商城书库直播视频……商业化的太过头了,另外UI上过于混乱,看上去很杂。

我:你提到了UI,那么有什么类似的产品的UI能够让你满意?

B:Quora,还有5点几版本的知乎(之后B同学给我展示了他手机上的其他精简化App,如微博国际版、Bilibili国际版等),只有关注推荐热榜的时候是最好的。

【此后B同学与舍友开始讨论Bilibili国际版的不简洁之处,采访告一段落】

2.4 对比与量化分析

总的来说,我觉得CSDN App的优缺点都很鲜明:

优点

  • 有很多技术大牛分享专业内容
  • 用户基数大,社区讨论范围浓厚
  • 问答、公众号……产品矩阵全面

缺点

  • 内容较杂,不够垂直,缺乏趣味性
  • 文章判重机制有待完善,经常看到重复的转载内容

牛客由于用户在求职完毕后便失去了使用App的目的,相对小众;知乎最近刚刚上市可谓风光无限(虽然破发),目前也在艰难探寻流量变现之路。

对比牛客、脉脉、知乎的App,参考邹欣老师在博客中给出的评分表格,我对CSDN软件的评分(满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分)如下:

描述 CSDN 牛客App 脉脉 知乎
核心功能 分析核心功能,核心功能的设计和质量 6(用户基数大,知名度高) 8(垂直领域,面向求职者) 6(垂直领域,面向职场员工) 6(内容丰富,IT技术相关话题也很活跃)
细节 有什么为用户考虑的细节? 4(收藏、关注功能完备) 6(手机端做题不方便) 4(需要氪金才能私信) 4(新版本越来越臃肿)
用户体验 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告) 1(广告较多) 6(基本不影响) 4(影响较小) -3(广告极多)
辅助功能 一些辅助功能如皮肤等 4(支持夜间模式) 1(辅助功能较少) 1(辅助功能较少) 8(夜间模式体验很赞)
差异化功能 这个软件独特的功能. 它对用户的吸引力有多大? 4(垂直领域较欠缺) 6(专注于面经等) 6(互联网吐槽第一线) 6(内容质量相对较高)
软件的效能 占用内存, 启动速度, 内存泄漏情况 6(加载时间较长) 8(较轻量) 8(较轻量) 1(常出现闪退情况)
成长性 记住用户的选择, 适应用户的特点,用户越用越方便 4(个性化推荐) 1(较薄弱) 1(较薄弱) 4(个性化推荐)
用户有控制权 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 6(反馈较清晰) 8(反馈提示较清晰) 6 8
App Store评分人数 能从一定角度反映用户基数 6(7w) 4(1.4w) 7(35w) 8(111w)
总分 41 42 43 42

3. 分析

3.1 估计这个软件做到这个程度大约需要多少时间?

使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。

内容社区发展最大的困难并不在于软件本身,而在于如何抓住自己的种子用户,提升社区用户的活跃度,引导正向循环的社区氛围,进而为社区带来更多流量。

在开发过程中也要考虑跨端的兼容性问题,初期可以以Web以及Web移植到Android方案为主。仅从技术角度,社区代码有相当多的Demo可以参考,我认为6人大学生团队需要3~4个月实现一个类似的社区软件,目标人群可以进一步细分,前期会员、视频等功能可以先不开发,迅速抢占痛点用户以及做好运营也许更加重要。

3.2 分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?

对比牛客、脉脉、知乎App的量化评分上文已经给出,但相比这几款软件,我觉得CSDN的体验总是差了那么一些:

  • 从消磨碎片化时间角度考虑,知乎、微信公众号上的内容更具趣味性,紧随时事热点
  • 从IT求职者角度考虑,牛客上的八股文、面经更具有针对性
  • 从IT从业者角度考虑,脉脉的高门槛让交流更加私密
  • 从内容质量考虑,掘金、博客园等的内容水准通常更高一些

而CSDN的优势也许只剩下了百度SEO的高排名?但在查询这些技术资料时,用户通常是“用完即走”的状态,粘性较低,因此对于社区活跃度的贡献很难说明。我想这也是CSDN博文页面广告繁多的原因之一吧(顺便推荐一哈Chrome的广告屏蔽插件)。

在同类产品中,我觉得CSDN毕竟有着庞大的用户群体,因此个人给出的排名是3~4名。

3.3 从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。

构建之法12章中提到:

好的用户体验当然是所有人都想要的,如果它和产品的质量有冲突,怎么办?牺牲质量去追求用户体验么,用户能接受么?

对于一款商业产品来说,如何盈利显然是最首要的问题,但盈利性作为产品本身的重要组成部分,和用户体验却往往是冲突的。

因此我觉得CSDN团队也许可以放慢脚步,暂时将工作重心转移到提升用户体验上:可以更加重视用户反馈,增加团队中负责用户体验工作的人数与话语权。

3.4 你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?

因为这些Bug所影响的用户范围较小,相对而言优先级并不高。社区维护是需要很高成本的,因此我觉得软件团队有意不修复的可能性比较大。

4. 建议和规划

4.1 市场概况

首先市场有多大?

参考GitHub 2019发布的全球报告,*的开发者总人数至少有221万[2],未来两三年的潜在用户人数在百万级别。

软工案例分析作业-CSDN

直接的用户有多少?潜在的用户又有多少?

直接用户为百万级别,潜在用户则包括相关行业从业人员、学生等,为千万级。

4.2 市场现状

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

CSDN、掘金、牛客网、脉脉、知乎、微信公众号、V2EX……

上述产品的定位、优势与劣势在哪里?

产品 定位 优势 劣势
CSDN 开发者交流论坛 用户基数大 内容质量参差不齐
掘金 技术分享论坛 质量较高 相对小众
牛客网 求职者交流平台 垂直领域 用户粘性低
脉脉 从业者交流社区 用户群体大 匿名制度与隐私管理
知乎 泛娱乐内容平台 用户基数极大 专业性有待提升
微信公众号 泛娱乐内容平台 依托微信 订阅制依赖创作者自身素质
V2EX 小众技术社区 用户群体质量高 较为冷门,变现难

上述产品之间呈现什么样的关系,哪些为竞品关系?以及竞争中的各方态势如何?

牛客网、脉脉与CSDN构成竞品关系,都是深耕某一垂直领域,用优质内容吸引用户,进而寻求变现;竞争中CSDN在内容质量上稍逊一筹。

4.3 市场与产品生态

这个产品的核心用户群是什么样的人?典型用户是什么样的?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?

典型用户画像:

学生、IT技术从业者,通常有着大专以上学历,年龄群体则较年轻(难以找到40岁以上的程序员),收入相对较高。

  • 表面需求:提升技术水平,与同行业从业者交流
  • 潜在需求:寻找内推机会、分享自身体会、满足自我实现的需求

典型用户例子

  • 丁施羽:男,18岁,希望在互联网行业工作,自学后端技术,在百度上通过搜索发现社区,下载App之后发现技术文章契合自己的学习路线,并购买了平台上的编程课程。
  • 汪蓬勃:男,47岁,曾为互联网行业某国民应用做出重大贡献,功成名就,物质已经无法满足他,渴望实现自我价值的超越,因此会在互联网平台上积极解疑,分享技术收获与方法论。
  • 阳自敏:女,25岁,互联网公司猎头,在技术论坛上寻找发表博文的博主,提供工作机会。
  • 冼充浱:女,31岁,新媒*作人,发现论坛视频频道,希望制作技术相关视频,寻求商业合作

产品的用户群体之间是否存在一定的关系?是否有利用其相互作用二次构成特定用户生态的可能性?

技术分享者与其他用户存在创作者与阅读者的关系,可以构造能让创作者盈利的生态,进而激励创作者生产更多优质内容。

产品的子产品,以及其他相关产品之间是否存在一定的关系?是否有利用各个产品特性之间的相互关系二次构成产品生态的可能性?

天眼查显示CSDN包含两款子产品:MobileHub和笨笨家庭记账软件,不过均已长时间没有更新。

软工案例分析作业-CSDN

CSDN旗下的新媒体矩阵则涵盖开发招聘、人工智能、大数据、区块链等话题,可以引导用户从微信到CSDN的链路。

软工案例分析作业-CSDN

4.4 产品规划

你要在当前软件的基础上设计什么样的新功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?可以用NABCD分析。

我计划增加CSDN会员试用功能,并增加会员权益(去广告、私信优先级等)。

  • 原因:会员是网站收入的重要部分,与商业化密切相关
  • 创新:2021年1月CSDN曾为了推广“CSDN官方助手”而举办免费抢购会员活动,得到了不少好评,而通过免费试用可以去广告等的会员,能让用户进一步熟悉CSDN的功能,增加会员购买的转化率。
项目 内容
Need CSDN会员需要推广,用户体验需要提升
Approach 新用户实名认证后免费赠送1个月会员,除下载外享有会员基本权益(避免黑产),并且可以去除广告等
Benefit 提升用户体验,增加会员购买的转化率
Competitors 知乎盐选会员通常有7天试用机会,引导用户浏览会员内容以增加转化率
Delivery 开屏弹窗、公告等

如果你是项目经理,可以招聘6个人,并且有4个月的时间,你认为应该如何配置角色(开发,测试,美工等等) 才能在第16周如期发布软件的改进版本,并取得预想中的成绩。

  • UI设计&测试:1人
  • 基础架构&后端:1人
  • 后端&测试:1人
  • 前端&测试:2人
  • 安全分析:1人

请为你的团队设计16个周期每周的详细规划

项目主要涉及到对原有广告业务的重构、对黑产利用会员试用机制的预防。

周数 任务
1 需求分析,协同各业务部门
2~4 后端设计会员试用相关接口,UI设计活动页面
5~7 前端实现页面,后端与安全分析师进一步修复可能的漏洞
8 进行集成测试
9~12周 预上线,进行Alpha测试和Beta测试
13周 完成需求说明和单元测试等,进行压力测试
14~16周 项目上线,根据用户反馈即时迭代

5. 参考资料


  1. Bug等级划分 | https://wenku.baidu.com/view/f2a55ab8d15abe23482f4d80.html

  2. Where Do The World's Software Developers Live? | https://www.benfrederickson.com/github-developer-locations/