根据博客要求,写一篇个人随笔
参考来自:
http://www.cnblogs.com/xinz/archive/2012/03/26/2417699.html;
http://www.cnblogs.com/xinz/p/3308608.html;
http://www.cnblogs.com/jiel/p/7631784.html
很多同学有误解:
软件工程课是否就是理论课?
或者是几个牛人拼命写代码,其他人打酱油的课?
要不然就是学习一个程序语言,搞一个职业培训的课?
都不对!软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,这样能根据切身体会来分析,很有价值,但也有可能“身在此山中”,未能看清全局。而且,课程时间有限,我们也不能做很多具体的项目。因此,我们也需要从间接经验中学习,分析。别人的项目的成败同样能够给我们很多启发!
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。
你为何成为它们的用户?
它们的团队做对了什么,做错了什么?
如果你来做,会做得更好么?
通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
第一部分:调研、评测
1、选择的产品:
集大通APP————“集大通”是我校统一通信平台,集消息推送、应用入口、组织机构、单点登录等为一体,目标是方便学校办公、服务与通信,方便师生学习、工作、生活与娱乐,成为学校信息化的入口平台,成为“智慧集大”的窗口——“微门户”,同时实现移动信息化。
2、下载并使用,描述最简单直观的个人第一次上手体验
应用截图:
其实,该软件应该是在我收到录取通知书就下载了的,当时看到后第一反应,学校有点高大上,有我们学校的“专属微博”,哈哈哈哈。从上面的截图可以看到,我们可以看到全校同学所分享的动态,比如:有的学长学姐在上面买书籍,兼职的各种信息;了解学校的新闻,建立自己的朋友圈。当然,与我们学习相关的功能也有很多,比如查课表,查成绩,充值校园卡,老师的点名工具,最最最让我感动的是,我在这个上面找回了我的校园卡,有捡到的同学发到了失物招领里面,同样我也有帮助同学找到。但是话又说回来,我用它的时候真的不多,除了查查成绩,一般不会上来看,我相信很多人都是这样。为什么会这样可能就是以下我所说的bug了!
3、bug
(1)课程表
这个bug就是他出来的并不是我的课表,而是班级课表,有些我没有选的课,他也会播报,有些公选课,我选了这边也没有。还有他这个播报课程的功能很随意,有时候我都上完课了,他发过来,有时又不发。这么来看的话功能就是摆设嘛,我还是得自己去教务处查,它就不方便了!更严重的是有时候根本刷不出来。
(2)图书馆选座
这个呢永远是错的,完全不更新的感觉,显示着有很多的座位,但是实际全是人,但当我走过去,看到这种情况,内心真的是很奔溃的。还有这是一个很大的问题就是它的页面设置特别不合理,左右划来划去贼难受,尤其选课的时候,特别怕对勾点错了。
(3)课堂助理
这个功能完全就是摆设,点下面的选项什么都没有,老师发公告,学生都看不见,老师说他发布了点名,这边没有显示。
其实,还有很多bug,我就只列举这三个了,所以更多的学生开学下载,一周后卸载,哎。
4、用户采访
这次我采访的是我的舍友,用了这个软件三年的资深使用者,虽说不怎么常用。
- 你经常用这个APP做什么呢?你用之后的感受是什么?
- 我经常用它来查成绩,还有看课程安排,查校园卡余额,还有宿舍电费。感受是还行吧,至少上面这几个还是很好用的。反正我又不会那他来做其他事情。
- 你觉得软件有什么优缺点呢?
- 优点就是我至少不用每次登教务处查成绩,比较方便,缺点是网络很不稳定,经常卡,而且广告推送特别多,跟专业有关的推送有特别少,还是有点不人性化。
- 你有什么改进意见呢?
- 网络改善一点,改进界面问题,可以有与专业的相关消息。功能加载快一点,播报课程及时一点,最好提前播报。
5、请选择一个结论
一般,如果说满分100的话,65分左右
6、[附加题]除了定性的结论,是否能有定量的结论 (就像比较时髦的手机评测那样, 跑个分?), 如何定量地评价一个软件?
评分内容 | 得分(满分10分) |
---|---|
功能测试 | 6 |
软件权限 | 9 |
性能测试 | 8 |
安装与卸载 | 8 |
用户测试 | 6 |
页面测试 | 7 |
安全测试 | 8 |
兼容性测试 | 8 |
第二部分:分析
1、使用此软件的所有功能 , 估计这个项目做到这个程度大约需要多少时间 (团队人数6 人左右, 计算机大学毕业生, 并有专业UI 支持)。
集大通功能很多,我觉得大概需要五个月,虽说前期的调研、分析用时较少,但因为功能较多,代码编写也有一定的难度,而且后期的优化和测试需要更多的时间。
(1)需求调研1周
(2)需求分析1周
(3)系统设计2周
(4)软件编码2个月
(5)软件测试1个月
(6)用户反馈1个月
2、不要写成一个罗列功能的流水单子! 而是要集中火力在一个场景,这个场景中典型用户有什么需求,软件如何解决了需求(或者没解决),UX 有什么细节是好的,差的,请结合书上UX的内容来分析。
场景:图书馆馆藏查询
需求:快速找到书籍及书籍所在位置
细节:我觉得应该将图书分类,即将图书分成多个模块,便于大家寻找,图书的位置应该更加详细。最好介绍一下每本书的大概内容。而上面截图可以看出,在这方面做得不好。
3、你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?从下面的可能性中选取几个:
-
对用户需求掌握不好
-
具体的设计质量不高
-
开发人员粗心大意
-
测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
-
其他
我觉得课程表应该是对用户需求掌握不好吧,没有具体到个人;图书馆选座和课程管理都属于测试把关不严,具体设计质量不高,排版问题很大。听说这个软件本身就是学生的创意,可能当时并没有好好的知道需求的调研及分析。
4、团队在哪一个层次还有问题? 可以把自己想问软件团队的问题都列出来, 也许就能得到团队的亲自解答了!
可能实践经验还是不足吧,毕竟大学刚毕业,实战特别少。
理工对美工这方面相对差一点,页面的设置存在专业知识的欠缺。
用户调查做得不够,毕竟软件做出来都是给用户用的。
5、从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面 (具体建议)。
具体建议:希望在设计之前,了解用户的具体需求,根据用户的需求去设计软件;在进行测试时,应注意软件的实用性,封面,页面的设计也要格外的注意;在更新改进期间,应多进行用户问卷调查,从多方面的发现不足来进行改进,想一些比较热门的聊天软件和游戏软件,都会进行问卷调查,让用户实时的反馈问题,这个软件团队这方面做得不好。
第三部分:建议和规划
(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)
1、这个软件/网站/服务有很多可以提高的部分, 如果你是项目经理,如何提高从而在竞争中胜出?
要在竞争中脱颖而出,就要有吸引用户的东西,要掌握现在市场用户想要什么,来迎合用户的需求,这样软件才会被用户选中。我觉得不一定每个的功能都要做好,那样往往导致不能做精,最合理的应该是把用户最需要、最经常使用的那个功能做到极致,其他的功能只要多考虑用户体验即可,不需要把每个功能都做得那么高大上。就比如说:集大通不需要那么多的功能,只要把学生的一些基本需求做好了就可以了。
2、目前市场上有什么样的产品了?
像这样的产品有很多,基本上大学都会搞一个这样的东西,方便大学生的学习与生活。往大了说,这个和微博就超级像了。
3、作为新的项目经理,这个产品的核心用户群是什么样的人, 典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
这个产品核心人群是在校师生,典型用户就是大学生,学历一般是本科,18-24岁,专业不等,爱好:喜欢交友,分享自己的动态与心情;表面需求是查成绩、查课表、校园卡充值等满足自身学习需求,潜在需求是交到志同道合的朋友,扩大自己的人际交流圈。
4、功能:你要设计什么样的功能? 为何要做这个功能,而不是其他功能? 为什么用户会用你的产品/功能? 你的创新在哪里?
以用NABCD分析(http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html)
我要设计一个考研交流模块
原因如下:
(1) N (Need 需求)
对于许多准备考研大学生的来讲这个很需要,因为一开始大家都会特别迷茫,关于选择专业和选择院校。要是有这样一个模块可以方便同学们更好的了解考研的相关知识,同时,考研成功的学长学姐还可以提供自己的考研心得,也可以互相交流,互相监督。
(2) A (Approach 做法)
首先创建一个平台,分成不同的院系,不同的专业,邀请各位成功学长学姐加入,及时公布各高校的考研招生信息。可以的话,还可以和考研机构合作,公布一些考研书籍及课程。
(3) B (Benefit 好处)
是否考研是个大学生很重要的选择,提供这样的平台,可以有助于学生选择符合自己的院校专业,增加考研成功率,也可以为学校增加威望。
(4) C (Competitors 竞争)
现在这样的考研软件也有很多,比如考研邦等,我们觉得我们的优势就是这个毕竟学校的官方软件,有一定的亲和力,如果做好的话,会受到本校学生的欢迎。
(5) D (Delivery 交付)
因为这个软件在收到录取通知书时都会提醒学生下载,这时只需把这个版块进行详细的说明即可,不需要其他任何的费用。
我的创新的话可能不是很明显,或许不叫创新,只是为了满足一些学生的需求而已,让考研路上的障碍少一点。当然,宣传十分的重要。
5、如果你有钱可以招聘 6 个人, 有 4 个月的时间, 你作为项目经理, 应该如何配置角色 (开发, 测试,美工等等)?
(1)前两周大家先进行需求调研,了解市面上流行的软件及长处,了解学生需求;
(2)第三周可以进行需求分析,如何实现各项功能;
(3)第四周对想要实现的各个功能详细规划,还有人员分工,先四个人开发,两个人美工;
(4)第五周开始就进入开发期,持续到第十三周;
(5)第十四周开始进行测试,一直到十六周,两个人测试,三个人修改,一个人美工。
6、描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
(1)第一周进行需求调研;
(2)第二周可以进行需求分析,如何实现各项功能;
(3)第三四周对想要实现的各个功能详细规划,先四个人开发,两人个人美工;
(4)第五周开始就进入开发期,持续到第十周;
(5)第十一周开始进行测试,一直到十四周,两个人测试,三个人修改,一个人美工;
(6)第十五六周五个人全部都去调查用户的反馈,看看如何完善。