题目要求:
很多同学有误解:
软件工程课是否就是理论课?
或者是几个牛人拼命写代码,其他人打酱油的课?
要不然就是学习一个程序语言,搞一个职业培训的课?
都不对!软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,这样能根据切身体会来分析,很有价值,但也有可能“身在此山中”,未能看清全局。而且,课程时间有限,我们也不能做很多具体的项目。因此,我们也需要从间接经验中学习,分析。别人的项目的成败同样能够给我们很多启发!
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。
你为何成为它们的用户?
它们的团队做对了什么,做错了什么?
如果你来做,会做得更好么?
通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
第一部分:调研, 评测
1.下载并使用,描述最简单直观的个人第一次上手体验。按照《构建之法》13.1节描述的 bug 定义, 找出几个功能性的比较严重的 bug,至少2个。用专业的语言描述 (每个bug 不少于 40字),如有必要, 可以配图。
第一次上手是刚被录取的集大的时候,录取大礼包里面让下集大通,第一次用的时候感觉还很新颖,像微博一样有动态,可以关注,还可以互粉什么的,而且感觉像进入了一个大家庭一样,而且还没到学校就知道我的同学有那些人了,也可以在里面聊天,确实很方便。
BUG1
症状:签到抽奖系统算法太小气,而且签到的按钮太大
例子:从下载集大通开始,陆陆续续的签到了很多次,每次可以抽奖了就会点进去抽奖,抽奖转盘上有一圈的礼品,但是我从来没有中过除了鲜花之外的其他东西。如果我不想签到,签到按钮又非常大,影响我浏览其他内容。
BUG2
症状:突然而且过时的消息推送
例子:星期三晚上九点多的时候,系统突然给我发了一条消息,“毛卓,为你播报明天的课程安排:“,我一看就惊了,明天又是满课,然后仔细一看才发现这课是我星期一的课。。。
相信每个同学的朋友中一定有人需要用这样的软件, 选择一个朋友(用户)进行采访,并加以记载。
提示: 采访提要
介绍采访对象的背景和需求(他们为何要使用该软件,例如开博客,读博客,给博客点评,她有什么痛点,她还有别的需求么)
让采访对象使用10 – 30 分钟该APP的功能 (请上传照片证明用户的确正在使用, 远程采访的同学请让别人帮忙照相)
描述用户使用这个产品的过程,用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
用户对产品有什么改进意见?
请选择一个结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价:
非常不推荐
不推荐
一般
好,不错
非常推荐
[附加题]除了定性的结论,是否能有定量的结论 (就像比较时髦的手机评测那样, 跑个分?), 如何定量地评价一个软件?
第二部分:分析
使用此软件的所有功能 , 估计这个项目做到这个程度大约需要多少时间 (团队人数6 人左右, 计算机大学毕业生, 并有专业UI 支持)。
不要写成一个罗列功能的流水单子! 而是要集中火力在一个场景,这个场景中典型用户有什么需求,软件如何解决了需求(或者没解决),UX 有什么细节是好的,差的,请结合书上UX的内容来分析。
你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?从下面的可能性中选取几个:
对用户需求掌握不好
具体的设计质量不高
开发人员粗心大意
测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
其他
团队在哪一个层次还有问题? 可以把自己想问软件团队的问题都列出来, 也许就能得到团队的亲自解答了!
从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面 (具体建议)。
第三部分:建议和规划
(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)
这个软件/网站/服务有很多可以提高的部分, 如果你是项目经理,如何提高从而在竞争中胜出?
目前市场上有什么样的产品了?
作为新的项目经理,这个产品的核心用户群是什么样的人, 典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
功能:你要设计什么样的功能? 为何要做这个功能,而不是其他功能? 为什么用户会用你的产品/功能? 你的创新在哪里? 可以用 NABCD 分析(http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html).
如果你有钱可以招聘 6 个人, 有 4 个月的时间, 你作为项目经理, 应该如何配置角色 (开发, 测试,美工等等)?
描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。