前言
很多同学有误解:
- 软件工程课是否就是理论课?
- 或者是几个牛人拼命写代码,其他人打酱油的课?
- 要不然就是学习一个程序语言,搞一个职业培训的课?
都不对!软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,这样能根据切身体会来分析,很有价值,但也有可能“身在此山中”,未能看清全局。而且,课程时间有限,我们也不能做很多具体的项目。因此,我们也需要从间接经验中学习,分析。别人的项目的成败同样能够给我们很多启发!
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。
- 你为何成为它们的用户?
- 它们的团队做对了什么,做错了什么?
- 如果你来做,会做得更好么?
通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
第一部分:调研, 评测
1.产品
智慧集大平台——集大通APP
2.上手体验
3.找BUG
BUG1
我才刚下载了集大通,都还没登录就叫我更新,更新包没有及时更新到下载软件的网站中吗?或者下载的时候应该有版本选择啊,这样又要重新下载一遍多麻烦。BUG2
刚进入界面就收到教务发的课程安排通知,但是我有点不是很懂这是什么操作(课程通知与上课时间不符),具体请看下图BUG3
就如BUG2所示,首先,每次进课表看教室安排的时候,进入的速度非常慢,反应好慢,而且有时候还会出错要退出去再重新点击课表才可以。
其次集大通上我的个人课表与实际的个人课表并不符合,个人课表与班级课表一样。。。。数据没有及时跟新。
而且课表只能在空白处添加课程,就跟做记事本一样,但是不能修改已有的课程时间。
点周一56节的课就只能查看不能修改BUG4
集大通很多应用是网页界面,很不方便!比如图书馆选座,现在嘉庚和延奎的电子阅览室都要选座,预订才可以坐,像期末这样,大家都很早去图书馆占座,可是要是哪天来不及的话,集大通做了这个应用功能,目的不就是为了方便同学们可以更快更好的选座吗?但是这个界面也太不友好了吧,只能看到一点点,这样谁会想用这个功能呢?
再比如这个选座点进去不是很懂这个界面,跟图书馆刷卡选座都不一样,左右都动不了,不知道要怎么弄。BUG5
这个应该不算BUG,但是这个很难受,进入每个应用的速度都很慢很慢
4.分享并采访胖友
采访对象的背景和需求
让采访对象使用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周如期发布软件的改进版本,并取得预想中的成绩。