课程的第一个任务是阅读师兄师姐们从前的项目经历,并从中吸取经验。我选择的是OMG!团队,不仅是因为对Dongliang和Haifeng师兄的熟悉,更是由于他们充满激情的队名吸引了我。
在他们的博客中,对于当时project内容的brainstorm非常有参考价值,尤其是对我这种没有项目经验的人来说弥足珍贵。他们的ideas有个非常大的侧重点,就是着眼于手机应用。在这个安卓,苹果,wp争相抢占市场的时代,我觉得他们的眼光是非常准确的。从以聊天社交为主要内容的微社区应和“呆呆Mobile”到Academic Search电子书架,都很好的把握了手机这种小型终端的特性。而且我对他们的“高校申请指南”这个项目方案非常有兴趣,第一是这个方案很有“市场前景”:现在大学生们申请出国留学的人数越来越多,大家也更倾向于DIY申请流程而非单纯依靠中介。网上庞杂的信息可能让人手足无措,如果此时有这样一个智能的申请指导将会有很大的助益。他们还对这个项目进行了NABC分析,即(Need, Approach, Benefit, Competition)。我想他们最后之所以放弃了这个方案,大概是Approach方面觉得不好实现,确实在申请时什么重要什么不重要、什么是有效信息就算对于专业的申请中介也不是很清楚,要让机器来完成这样一种学习就更难了。
他们最后的选题是conference helper(会议助手)。相比高校申请指南要简单不少,因为省去了从网上筛选信息并分类这样一个复杂的学习过程。当然这个题目也有其难度所在,第一是软件平台在大家都不熟悉的wp上运行,有一定的编程技术难度;第二,对于手机应用,UI设计非常重要,毕竟用户体验对于移动App是第一位的。而我本人对于这个项目其实并不怎么觉得感冒,原因在于当前大多数智能手机的calendar都能与outlook或者google calendar同步,时间安排可以非常方便的同步进手机中,没有必要为academic conference专门搞一个应用;第二会议的内容流程在会议主页上会列出得相当清楚,我也觉得没有必要再以应用的形式呈现;第三学术圈毕竟不大,如此的用户群定位使得受众天生很少。
在Beta版本时OMG!团队有过自己的反思。他们首先回首了自己对于user scenarios的把握,他们也发现如果这样一款软件仅仅是把会议内容和流程展现出来是没有办法吸引用户的(即使是好奇心很强的学术人士),很后悔没有加入社交功能。PM同学又分析了任务分配的结果,发现按照代码能力合理的分配任务层级是一个很好的做法,但是在层次化以后没有进一步的量化各个人的具体任务,如果当初有这样做的话就能达到更高的效率。看完他们的blog以后我觉得daily scrum是一个很好的方式,用列表的形式把每天每个人该做的事情清清楚楚的列了出来,这样团队中的每个人都知道大家干到什么程度了,心里也就有了底。下面是从他们博客盗的图,可以作为我们team以后daily scrum的参考:
总的来说,看完他们的blog我觉得对于ASE课的team work更有了期待,如果能做出影响更多人的应用就更好啦~
这是OMG!队的blog地址:http://www.cnblogs.com/OMG-Team 。
下面是我对Haifeng师兄的一段问答:
Q1: 为什么当时要把你们组的队名取为OMG?
A1: OMG 最普通的意思就是 oh,my god, 只是个名字而已,听上去很炫很牛逼的样子,也期望着我们的产品做的会很好~
Q2: Brainstorm你们team project的时候是从什么方向出发去想idea的?是从用户的need还是队伍成员的interest?
A2: 我们想了很多Idea,你可以从我们的博客中看出,以前都是用户需求出发,当然每个人都会想出idea,个人想出的都是印象深刻有意思的,然后大家最后vote,只可惜我们的方案没有得到其他人的支持,被邹老大安排了一个。
Q3: 最后为什么把项目选择为conference helper? 我觉得开始想到的idea之一“高校申请指南”很有价值,如果能够实现的话能给许多以申请国外高校的同学们省下大量时间和精力,为什么放弃了呢?
A3: 之所以选了conference helper是最后邹老大的意思,我们队的idea没有得到其他人的认可。那个高校申请指南是我想的,我也感觉很有价值,也是我力推的,邹老大也很赞成这个想法,只是其他队员认为我想的不切合实际,而且难度较大,自己编程能力也不怎么强,所以也没多大底气,只好quit了这个idea,其实我很看好那个想法,而且如果做好之后不仅服务同学而且里面有很大的商业价值。
Q4: 每天进行的scrum会不会让人觉得非常exhausted?这种例会对于快速开发的好处大么?
A4: 每天的daily scrum还好,毕竟scrum时间较少,而且都是汇报自己的工作,好处还是挺大的,毕竟每天都会监督你push你完成你的工作,大家一起干活其实很少觉得累
Q5: 你们对alpha版本进行review的时候提到任务粒度不够细,时间消耗估计不足,我想问对于我们这种不熟悉软件开发的人来说要怎样快速的学会把这两点做好?
A5: 任务粒度不细最主要原因是对开发不了解,其实慢慢就好了,我们最主要是遇到技术问题可能会耽误我们的进度,所以很多未知的因素,如何做好,最好PM能够从实战中快速积累经验,针对每个人的能力分配合适的工作。
Q6: 最后一个问题,软件工程课对于你现在的工作帮助有多大?
A6: 帮助应该说是有的,毕竟了解流程,锻炼编程,回想起来确实很充实,一起奋斗,一起吃饭,一起交流,那种日子是我在MSRA最充实的日子之一。
以上内容多谢Haifeng师兄的热心回答~