以CSDN app 为例 软件工程 案例分析

在很多开发人员和IT专业的学生都在移动设备上学习、工作,在移动设备上的APP 能满足这类目标用户的需求么?

为了回答这个问题,我们以CSDN app为例,进行一次较为全面的案例分析:

一、调研与评测

1.bug查找

经过我为期10天的使用,找到以下两个较为严重的功能性bug:

1.图片放大bug:在PC端的网页CSDN中,对于博客中的图片,当鼠标位于图片上时,光标由箭头变为放大镜符号,单击鼠标,图片悬浮于页面上并且进行了放大;在CSDN app中,对博客中的文章进行单击,没有任何变化,用两指进行拉伸操作,只有滚动条发生了变化,博客和图片均没有任何变化。这个功能对于图片较小,难以看清楚的情况下还是非常的有用,我认为是个比较严重的bug。

 

2.链接失效bug:所写的博客中若含有博客标题链接,理论上进行点击时,应该转到相应位置处,但在CSDN app中单击文章中标题链接,除了字体颜色变化,没有任何反应。但在网页的CSDN中,单击这样的标题会链接连到相应的部分。但对于超链接来说,点击却是可以达到跳转的效果的。

 

 3.资料下载bug:

 

2.用户采访

采访对象:西安交通大学自动化系同班同学:涂同学

使用照片:

 

 

1.采访对象背景和需求

采访对象是西安交通大学自动化系大四学生,编程能力较强,有比较丰富的项目经历和竞赛经历,经常使用CSDN写博客,以及使用CSDN学习一些新知识新技术,解决遇到的技术问题已经使用CSDN2年多,对CSDN app有一定的了解。主要的需求是记录分享自己的学习内容以及学习新的技术和知识,以及解决技术问题。

需求:学习系统与软件的安装、编程的技巧和理论知识

痛点:下载一些源代码或者文档需要支付虚拟货币、广告的营销内容不感兴趣,部分博客文章中的图片加载不出来影响理解

别的需求:有的博客质量太差,应该提高发布门槛,提供一些常见数据集的本地下载方式以供国内科研人员下载使用

2.测评软件功能

阅读和发布技术类博客,源代码托管,资源(文档、软件和代码)的分享,论坛技术交流、科技圈的即时新闻和时事评价

3.软件用户体验优缺点

优点:界面很好,阅读很舒适,有多种可选择的写作模板

缺点:下载一些源代码或者文档需要支付虚拟货币、广告的营销内容不感兴趣,部分博客文章中的图片加载不出来影响理解

4.用户使用体验以及建议

问题没有解决,界面很好,阅读很舒适,有多种可选择的写作模板,用户体验总体感觉较好,没有什么大的问题。

改进意见:对发表高质量文章的博主进行奖励,降低或取消资源共享的虚拟货币,提高广告的精确度

 

结论:总体来讲,这个软件还可以,但是也有许多改进的地方。

 

二、分析

1.软件开发周期估计

  团队一共六人,且均是计算机大学毕业生,有专业的UI支持

  我主要构思了一下这个软件的编写过程以及所消耗的时间

    市场调研:调查目前该类软件使用的痛点,和目前相似产品的市场占有率,提出相应的功能需求和对应的解决方案(一周时间)

    设计文档:调查清楚了使用的需求,以及产生初步解决方案之后便需要写初步的设计文档,估计项目时间,进行任务分工,制定统一的编码风格,并且制定各个功能完成的deadline(三天时间)

    详细设计:从现在开始对于独立的功能(主要分为搜索,关注,论坛,我的,UI设计五个功能,五人分别负责,一人总览全局,编写整体代码),就可以不同的人并行的进行工作了,明确了软件的总体设计之后,就需要一步步详细的设计每一个功能实现(四天时间)

    实现设计:设计的工作已经全部完成了,现在就要开始一步步实现所期望的功能,开始编写代码的工作,这个阶段是并行完成的,最终时间取决于功能中最复杂的那一个(假设团队每个人的能力是差不多的),这里应该是搜索的功能最为复杂(三周时间)

    代码自测:这个阶段各个功能已经全部实现,需要先进行自测,测试发现bug,需要修改设计文档,以及编写的代码,测试感觉是大厦已经建成后20%的修补工作,但实际上却要耗费开发的80%的时间,才能保证我们的软件能够使用(两周时间)

    代码他测:因为自己写的代码会蜜汁自信,因此可能会遗留下一些难以注意到的bug,这个时候就交给队友进行代码互审,同样的也会发现大量的bug,这同样需要进行设计文档的修改以及代码的修改,这里测试和之前测试就包括以前学到的单元测试,回归测试,以及效能分析,这一步需要队友熟悉彼此的代码,需要多花一点时间(三周时间)

    代码合并:各个功能板块目前都已经全部完成了,这一步需要合并所有功能板块的代码,生成app软件源码,这一步也同样可能出现bug,所以也需要花些时间(一周时间)

    完整测试:整个软件雏形已经做出来了,需要做一些功能的全面测试,出现bug仍然需要进行修改。(两周时间)

  到此为止我觉得第一个版本就可以release了,总共花了:1+1+3+2+3+1+2 = 12周时间,但目前这个程度应该还没有达到要求最后一个阶段

    用户使用反馈测试:测试是永远没法完全覆盖所有用户可能遇到的问题的,所以软件release之后,交给用户去测试一段时间吧(八周时间)

综上所述,这款软件做到这个程度我估计需要20周的时间。

 

2.软件目前的优劣:

  我估计在同类型的软件中,所处的地位应该是数一数二的(可能和微信公众号竞争),市场所占的份额应该也是数一数二的,实际上做移动端技术论坛的app并不多,目前也就csdn,开源中国等。

  优势:

    a.网站知名度高

    b.功能齐全

    c.与PC端配合使用,达到了全覆盖的效果

    d.博客和代码分享功能都具备,非常完备

    e.博客分区明确

  劣势:

    a.博客功能单一,不能促进it人员更多的交流

    b.没有代码托管功能

    c.没有像博客园那种班级功能,不能给高校开班授课

    d.csdn学院,csdn博客分开,不能让更多人了解这些其他功能

3.bug未修复原因估计:

  我认为这个是开发人员粗心大意导致的,全功能测试没有做全,导致一些应该有的功能产生了缺失,这些功能都是增加用户体验的,可能是开发人员对用户体验这方面的重视还不够导致的。我估计他们没有一个全面的详细记录功能和bug的设计文档。这一点也是测试人员的问题,测试人员没有将所有的功能全面的覆盖住,才出现了现在的这个漏网之鱼。

4.开发团队问题:

团队在测试这方面所下功夫还不够,应该拿更多的精力投入到各种各样的测试当中,做好程序的把关,这么著名的团队还出现这样的问题,我觉得是因为项目经理所做的计划不够好,没有将测试的位置放到比写代码还要重要的位置上来,导致这样的bug的出现。

 

 

三、建议和规划

1.如何提高

  1.假如我是项目经理,我会十分的重视项目的测试环节,花80%的时间来完成这所谓的20%工作,保证低级很简单普适性强的bug不要出现,让这种会影响用户体验的bug不要出现。

  2.考虑到用户大多数是学生和开发工程师,我打算改善如下的功能:

    1.论坛与博客一样分区,用户可以只看自己想看到的区

    2.论坛与博客一样,具有搜索功能,能够搜索感兴趣的问题

    3. 可以显示关注好友的排行榜以及全球的总榜

  这样做的分析:

  1) N (Need 需求)

    1.对于不分区的论坛用户难以看到自己想看的内容,因此应该算刚需

    2.对于没有搜索功能的论坛用户难以看到自己想看的内容,因此也应该算刚需

    3.既然csdn给了大家排名,给了大家分数,为啥不让看呢,有利于找到大牛,也有利于大家娱乐,也属于刚需吧

  2) A (Approach 做法)

    1.分区的话数据库里面加一个key就可以,然后修改一下app界面,每次问题发出就需要选择

    2.数据库可以实现搜索功能

    3.排名已经排了显示不应该是问题

  3) B (Benefit  好处)

    1.用户可以再也不看那些不感兴趣的问题了,那些与自己领域毫不相关的问题

    2.用户可以根据自己的需要去查找那些和自己比较相关的问题解决方法

    3.用户可以产生虚荣心,不断投入精力到回答问题和发布博客中,牢牢锁住用户

  4) C (Competitors 竞争)

    1.很多技术论坛,例如小木虫论坛,都是对论坛进行分区的

    2.那些技术论坛也有自己的搜索功能

    3.目前大部分还是没有这个功能的,这个功能多出现在一些娱乐软件中(段位,排名啥的,导致一些同学深受其害)

  5) D (Delivery 推广)(推广手段很多,这不是技术问题,这里就不再讨论了

2.目前软件所处的局势

CSDN 创立于1999年,目前拥有超过3000万注册会员(其中活跃会员800万)、50万注册企业及合作伙伴。因此市场占有率应该是数一数二的。根据中商情报网,全国的IT从业人数应该在5000万以上,目前市场上还有开源中国,stack over flow 还有博客园,他们的优势在于每一个所着重发展的方面都不同,CSDN与博客园注重博客,而stack over flow注重论坛问答,而开源中国注重代码共享。最直接的竞争对手是博客园,这个领域目前处于萌芽阶段,因为移动端所做的工作并不多。

3.核心用户

用户大多数是学生和开发工程师,典型的用户是长期处在IT工作前线,需要进行开发设计,因此需要经常使用CSDN查询相关知识。

4.角色配置

 如果我有足够的钱可以招聘 6 个人, 有 4 个月的时间, 你作为项目经理,我会招两个开发,三个测试,一个美工,我觉得这款软件其实体量不大,开发量不是很大,不需要太多的开发人员,测试对用户体验来说还是非常有用的,所以多招一个测试,美工很重要,但相比前两个就比较逊色了,所以就招一个美工。

5.如何分配16周开发周期

 之前打算用20周开发,假如只有16周的话,我打算压缩最后一个阶段的时间,则得到的新时间表如下

任务 时间
市场调研 1w
设计文档 3d
详细设计 4d
实现设计 3w
代码自测 2w
代码他测 2w
代码合并 1w
完整测试 2w
用户使用反馈测试 4w

其中w指week即一周,d指day即一天,总共花了16周时间。

 

posted @ 2018-11-17 16:57  Thomas_MrY  阅读(491)  评论(1编辑  收藏  举报