SE_team

清华大学现代软件工程学生小组 指导老师:邹欣 组长:杜圆 组员:石礼昕,张远,郭华阳,高亦陶,贾志豪,李蔚
posts - 75, comments - 55, trackbacks - 0, articles - 1

导航

现代软件工程2011——作业1

Posted on 2011-02-28 15:52 SE_team 阅读(...) 评论(...) 编辑 收藏

作业要求:

作业要求

本小组解答

张远和石礼昕分别对去年FocusLifer(唐文斌,谭宸浩等人)和网页版三国杀(陈首元等人)这两个projcet进行了调研采访,总结材料如下:

网页版三国杀概况 

该小组的blog地址是http://cid-92f210c4c08c82f6.mobile.spaces.live.com。石礼昕对陈首元他们组的采访总结如下

1.你们是怎么想到这个题目的?
答:平时一直玩三国杀,然后发现当时没有好的网页版三国杀。当时的客户端很臃肿。

2.你们工作量有多大?(代码行数,或是总共花的时间)
答:具体数字不记得了,是很大工作量的。

3.怎么分配软工和其他工作(实习,实验室等)的时间的?
答:除了我之外的各位组员都花了相当多的时间。他们在花了非常多的时间在这个工作上。当然前提是不能影响出国申请写paper等工作。

4.你觉得你们做的最出彩的地方是什么?
答:能玩。实现了基本所有的规则,玩玩还是很有乐趣的。界面也挺好看的。网站速度也不错。

5.你觉得哪地方是你们最大的遗憾?
答:没用一些更方便的开发工具和语言。比如我们当时用了google app engine,各种功能支持很弱,重复实现了挺多东西,比如储存啊,客户端服务端交互啊等等。

6.你们是怎么分配任务的?
答:一个写规则,一个写界面,一个写网络,我打酱油。

7.有没有什么比较好的经验告诉我们?
答:做好整体设计再写代码。提早整合各个模块。用好用的工具。

石礼昕的感想:

1. 总体来说这个创意还是不错的,潜在的用户群也有很多;

2. 我觉得这个工作量还是非常大的,对时间的要求也是挺高的;虽然最后没有完全达成目标,但是他们在这上面花了很多时间;

3. 用工具的选择是很重要的,他们工作量的一大部分来自开发工具不够方便。

4. 我们可能做的difference, 更好的安排时间,将进度向前放而不是集中在最后截至期限前;

 

FocusLifer概况 

我(张远)采访了一下唐文斌和谭宸浩,他们组的作品是FocusLifer,blog地址是http://scheduleyourlife.spaces.live.com/。综合总结了一下采访结果
1.你们是怎么想到这个题目的? 
答:源于作者本身的需求,对现有工具的不满。
2.你们工作量有多大?(代码行数,或是总共花的时间) 
答:1万行左右,大概花了一周fulltime
3.怎么分配软工和其他工作(实习,实验室等)的时间的? 
答:大家还是都尽量抽时间来做的,毕竟大家还都想做好这个,有5次左右5个人都在的时间,但大家各自或者2,3人的组合要多得多
4.你觉得你们做的最出彩的地方是什么? 
答:(1)分工。我们所有人都参与了工作并且合作得非常好。(2)我们完成了,而且确实有人用,我们的功能设计还是不错的
5.你觉得哪地方是你们最大的遗憾? 
答:(1)产品feature。最后赶进度删掉了最本质最核心的功能(2)没有做得更好,没有真正把同步的问题彻底解决,界面还是不够令人满意
6.你们是怎么分配任务的? 
答:(1)由PM负责编写代码框架,分为 框架/UI_A /UI_B /存储/网络通讯 5个部分。(2)实际工作的时候难免要互相帮助,以及跨权
7.有没有什么比较好的经验告诉我们? 
答:(1)尽早开始。尽早完成,寻找用户。Learn from Users. (2)design的时候框架尽量全,尽量保证可拓展性,然后尽早的出alpha版

读了一下他们组的blog,第一眼的感觉就是整个blog很充实很详细,让人感到他们对整个project很有爱,而且在这个project上投入了很多精力。学习到的几点包括
  1. 合理安排timeline并且按预期完成
  2. 注重团队合作,包括分工,框架制定,开会讨论借口,互相帮助,代码风格统一等等
  3. 注重用户体验,关注用户反馈
如果我在这个team里面,可能做得一些不一样的事情包括:
  1. 从feature上面说,我个人可能会提出一些新的功能作为备选,包括Gmail或者google doc方面的同步。当然这些功能确定之前也要分析一下是否能够较容易的实现,用户能够轻易的使用(例如google doc有些时候会被盾掉……),以及是否有足够的时间实现。
  2. 在整个工作流程以及分工合作方面,我觉得这个组做的已经挺好了。我可能还会去做的事是将各种希望实现的feature按重要程度排序,考虑在一定的时间内能够实现哪些,分清主次。在开发过程中多设置几个checkpoint,定好每个时间点实现怎样的功能。这样能尽可能的避免组员所说的因为赶进度而删掉了重要功能的状况

最后感谢唐文斌,谭宸浩,陈首元对本次作业的支持:)