软件案例分析作业
软件案例分析作业
项目 | 内容 |
---|---|
课程链接 | 2020春季计算机学院软件工程(罗杰、任健) |
作业要求 | 个人博客作业 |
课程目标 | 了解如何创造出一个足够好的软件 |
本博客的收获 | 分析比较不同软件的区别,提出自己的看法 |
第一部分 调研,评测
我选择的软件是CSDN的手机APP。CIT社区CSDN (Chinese Software Developer Network) 创立于1999年,致力于为中国软件开发者提供知识传播、在线学习、职业发展等全生命周期服务。当在编程时遇到问题百度时,CSDN肯定会在头几个链接中出现。如果有空想向行业内的大佬学习时,CSDN也有非常多优秀的文章可供参考。目前相比所有类似网站,包括博客园或者简书,CSDN拥有更高的在线活跃人数。同时配合一系列的周边扩展型领域发展,可以说CSDN是中国所有程序员交流学习的第一选择。
1、使用10–30分钟这个软件的基本功能(请上传使用软件的照片)
2、描述使用这个产品的过程,解决了用户的问题么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
这个APP给人的直观感受应该是麻雀虽小,五脏俱全。似乎设计中想把它打造成美团那样的应用,把PC版已有功能结合自己能够想到的所有功能全部塞在20MB的小小空间内。但问题仍然是没有任何一技之长,每个功能都没有做到尽善尽美。
从整体上而言这款应用满足了普通程序员用手机的一般要求。毕竟对于程序员而言手机是打发时间而不是工作的场所,将所有功能,包括博客、评论、问答、商城等做到没有BUG,能够运行已经是大体满足要求了,但仍无法吸引核心用户付费使用。首先广告过多。当我想搜索和C语言有关的内容时,弹出页面如下所示:
可以看到下载、问答、电子书都混在一起。并且没有其他软件搜索引擎那样的依照热度或者日期排序等功能,总体上看上去非常的乱。同时置顶的都是水平非常差的文章,可见在搜索环节只是做出了功能,但没有以用户为导向,而是以商业为导向。
在对面试题的测试中,首先发现的是对错题集的整理中只是简单的给出了正确答案,而没有给出相关的延伸资料或者内容。死记硬背的方式显然不利于面试者的备考环节。
在看完面试题后使用错题延伸功能,本以为会有相关资料作为参考,结果给我推荐了一推广告网课。我选择的是系统运维类的面试,其中对LINUX入门还能理解,但我搞不懂推荐给我JAVA和Kotlin是什么原因。似乎设计的结构只是不加甄别的海量推选。
总体上而言CSDN APP解决了用户在手机端浏览博客,进行学习交流的需求,同时也为平台的开发者提供了盈利的空间,为每个用户创造了个性化的空间。功能已经齐全了,但是在细节上还有待打磨。APP的优点包括非常充分完整的功能、较高的活跃用户数以及非常海量的博客和数据。缺点在于相比其他同类产品,例如简书或者leetcode的手机APP而言,CSDN APP界面和排版非常的混乱,并且掺杂了过多的商业广告元素,导致用户的体验感非常差。
我对该产品的改进意见是在手机APP上简化不必要搜索功能,例如在手机端的搜索中就没必要加入下载文件这样必须在PC端才需要的内容,同时手机端如此海量的网课也非常多余,我的建议是保留几类适合在手机端浏览的精品课程,删除必须在PC端学习的课程。同时在排版上,我认为CSDN APP可以向stackoverflow或者leetcode app学习,在部分板块中给出固定的格式要求,让读者和博客写作者能够更加清晰地分享知识并交流。
总体上我对CSDN APP的评分为c),具体量化评分如下图所示:
类别 | 描述 | 评分 (满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分) | |
---|---|---|---|
功能 | 核心功能 | 博客浏览,学习交流 | 8 |
细节 | 有什么为用户考虑的细节? | 小细节并不多,主界面底部按钮体现了细节 | 7 |
用户体验 | 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 | 大量广告,体验较差 | 8 |
辅助功能 | 一些辅助功能如皮肤等 | 无法快速找到辅助功能 | 6 |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 活跃人数较多,相较同类APP有天然优势 | 9 |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 占用内存较小,但启动较慢,容易出现卡顿情况 | 7 |
体验 | 软件的适应性 | PC端和移动端都能良好交互,适应性还是不错的 | 9 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 自动推荐系统薄弱 | 7 |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 退出操作为例,并没有任何提示,导致多次误退出 | 7 |
自选 | 自选评分项目 | 内容质量参差不齐,差别较大 | 6 |
3. BUG报告
给出我使用CSDN APP的几个BUG:
1、第一项应该不算BUG,但属于重大的设计缺陷。在修改个人生日时不能直接输入指定的日期,只能从目前日期倒回。在倒回时只能以月为单位进行倒回,不能以年为单位进行倒回。总体操作非常繁琐,修改操作花费时间非常长。
2、在浏览博客评论区的时候我发现所有博客评论区的链接都是以以下方式给出,没有给出完整域名,同时在跳转时也没有知乎那样的危险提示页面。如果有不法分子在评论区放置一个钓鱼网站很容易导致用户中招。
第二部分 分析(参考8.6节对工作的估计,和14.1节软件工程的质量)
1、使用此服务的所有功能,估计这个软件/网站/服务做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI支持)。(必答)
个人认为所需时间必定会在5个月以上。本APP虽然质量并不高,细节打磨也并没有做到完善,但是APP功能非常繁多复杂,个人推算开发者需要解决的问题包括对于用户个人应用需求的满足,对于博客内容的广泛整理以及分类,搜索引擎的建立,对于网课和视频的支持,广告的布局,个人动态以及关注的发布和建立以及付费用户和非付费用户的不同功能区别以及充值环节。其中不同的功能之间也存在着交互行为,需要在开发完成之后进行大量DEBUG操作。同时CSDN数据量和日均用户数非常的庞大,作为大量编程者使用的论坛,CSDN的安全性也需要得到邮箱的保障。而作为计算机大学毕业生,我认为在正式开发之前每个人最少都需要3周时间重新学习对于大型APP开发的相关知识。因此5个月时间只是保守估计,个人认为时间可能会更多。6个人的团队之中如果没有一个好的架构师,可能会因为大量的错误和漏洞导致软件质量较低。
2、分析这个软件目前的优劣(和类似软件相比),这个产品的质量在同类产品中估计名列第几?(必答)
经过个人的调研,同类产品主要包括简书APP,博客园APP以及leetcode APP。简书APP相较于CSDN而言,内容更倾向于精品化,排版布局也更加的优秀。但CSDN优势在于只聚焦于服务计算机类博客,而简书覆盖面则较广,无法成为码农们的第一首选。博客园APP与CSDN同样专注服务于程序员,但是博客园体量明显较小,缺少论坛等配套服务,只聚焦于博客内容,并且在细节功能上不如CSDN APP,多为学生在应用,缺少大牛的支持。而leetcode作为新兴的APP,优势在于对于算法领域的专注化,但和CSDN相比问题较多,包括活跃人数的极度缺失以及APP功能仍然不够完善。总体而言,这类APP更像是作为网站的复制而存在,而不是致力于在手机端实现PC端所不具备的更多应用,因此总体使用质量都不太高。相较于其它APP而言,CSDN有着较大的体量以及非常高的活跃人数,因此我估计CSDN APP在同类产品中能够名列第一。
3、从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。
我认为该应用可以在准确性和易用性两个方面提高。
- 准确性:在搜索中删除所有和下载相关的内容(对手机端没有太多意义),同时改善推荐系统。例如在推荐课程时能够通过最近的搜索记录推荐几门精选的课程,而不是固定的罗列几百门对用户毫无用处的课程。
- 易用性:适当减少广告,使页面更加整洁,方便用户直接获取有用信息。同时增加改善用户体验的功能,例如退出应用时的提示,以及跳转时的安全警告,更好地服务用户。
4、你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?
我认为我发现缺陷没被修复的最主要原因是软件团队对于细节处理的缺失导致缺陷产生。例如生日设定以及网页链接的罗列,我认为开发团队的想法是只需要快速实现这类功能就万事大吉,将主要精力投入在博客以及付费板块的开发中。与其花费更多时间打磨程序,不如开发更多花哨的功能吸引更多用户。
第三部分 建议和规划(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)
-
首先,市场有多大?潜在的用户有多少?
据不可靠的数据统计,我国的程序员人数大约为200万人左右,但是与计算机相关联的,包括各类理工科学生以及行业从业人数保守估计3700万人左右。而2011年注册人数官方宣布为600万人,目前保守估计为1000万人左右。由此可见市场和潜在的用户数量依然是非常庞大的。
-
目前市场上有什么样的产品了,它们的优势劣势在哪里?和它直接竞争的产品在那里?
内容请参照第二部分第二点的回答
-
作为新的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
属性 | 学生 | IT从业者 |
---|---|---|
学历 | 本科、专科及以上 | 大学、专科或社会机构毕业人士 |
年龄 | 20-25 | 23-40 |
专业 | 计算机类 | JAVA、PYTHON具体开发类 |
爱好 | 学习 | 提升技术实现跳槽和加薪 |
收入 | 我无 | 7000k+ |
表面需求 | 初步走入IT社会,学习他人经验 | 解决工作中遇到的问题,寻求志同道合的朋友 |
潜在需求 | DEBUG,找到BUG原因 | 获取更优秀开发者的工作经验,把握行业方向 |
-
如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
配置:1位PM,2位美工,2位程序开发人员以及1位测试人员。
第1-2周:进行项目需求分析。由6人共同参与。由于PC端已经实现了大量的功能,因此需求分析的关键在于哪些功能可以被移植到移动端,哪些功能需要删除。
第3-4周:进行UI设计。由PM和2位美工参与。第一个关键点,将内容从PC端移植到移动端后排版的分布。第二个关键点是对于软件提供的功能如何将它们合理地分布在程序中。最后一个关键点是如何合理地植入广告内容。
第5-10周:开始APP开发阶段。由PM和2位程序开发人员参与。总体上分为2个阶段。第一个阶段在于整个程序的总体架构,包括逻辑分块,接口定义,评估各部分实现所需的人手和复杂度。第二个阶段开始正式的编程。在写代码的同时也要对需求部分以及规划部分做出及时反馈,报告无法实现的部分,重新调整需求或者重新规划。
第11-14周:测试阶段。由PM,2位程序开发人员和测试人员参与。作为功能繁多的程序,测试环节非常重要,所要花费时间也较多。主要进行DEMO测试和压力测试。DEMO测试包括对于新增加模块功能,以及老的模块功能可用性测试。压力测试通过人为增加大量数据访问,看看APP的博客访问等功能会不会因为新增功能的原因出现崩溃。
第15-16周:试运行阶段。由1位美工,1位开发人员,1位测试人员以及PM参与。将APP版本小规模发布,让部分核心用户抢先体验产品。在进一步汇报BUG的同时结合用户反馈对一些细节部分重新调整,并重新测试。