采访前高级软件工程课程学员付浩同学,及Scrum总结阅读感想

陈宇澄

  我采访了第一届高级软件工程课程学员,现正在MSRA攻读MSRA-USTC联合培养博士生的07级师兄付浩同学。以下内容整理自采访笔录:

1.你们team当时做了什么项目?花了多少时间?你在team内部担任什么分工?

  我们做了一个模仿拳皇的游戏,前后花了3个月。Team一共有7个人,我负责写代码,此外还有负责美工、游戏设计等等的同学。

2.你觉得参加高级软件工程最大的收获是什么?

  最重要的就是学会了团队协作,其次对软件的整个开发过程都有了了解。

3.在开发过程中有什么经验教训想要提醒后来的同学?

  最大的教训是在设计需求时要现实一点,不要构思太过宏伟,最后发现根本做不出来。

4.你是如何平衡软件工程课程和导师那里的研究工作的?

  根本没法平衡,课程项目的工作量实在太大,时间基本上都花在这个上面了。我只有给导师说实在没有时间,希望能得到谅解。

 


 

付浩同学所在的MSRA_SE_TEAM的Blog地址是:

http://www.cnblogs.com/MSRA_SE_TEAM/

                       

在阅读了队伍每一次的Scrum总结后,我有如下几点感受:

1.对于DirectX的学习,MSRA_SE_TEAM采用了由一个人(付浩)深入了解并指导其他同学,其他同学基本了解的方式,我认为这是值得借鉴的,因为整支队伍对DirectX的熟悉程度的上限是由最熟悉的那个人所决定的,在所有人的总时间有限的情况下,让一位同学精通DirectX并指导其他同学,比所有人都花时间学但都学不精明显要好,因为后者在遇到技术难题时往往会完全无力解决。

2.队伍一开始想要从图片中提取出头、躯干、四肢等信息,然后将它们映射到事先定义的人物模型上,但这涉及一些模式识别上的难题,最后队伍果断决定放弃并采用拍摄照片的方式来得到关键帧,虽然这比他们当初的设想弱得多,但毕竟是一个肯定可以实现的解决方案,总比彻底失败更好。

3.Word Item的定义和管理,是一门很重要的艺术,但从scrum的总结中仅能对其管中窥豹。这一点应该是我们在今后需要重点学习和锻炼的地方。

4.引用第7次总结中的一段话:

详细讨论了人物招式状态图的问题,由于昨天的specification不是很清楚,导致陈稳霖同学有些糊涂,今天sync各自的工作时,引起了一些讨论,其实大家昨天指定计划的时候,自己也都不是很清楚招式设计到底应该出来个什么样的东西,都是心里朦胧有个印象,但是语焉不详,等陈稳霖按照他的理解做出一个设计(主要是文字描述)后,dev觉得根据这个很模糊,没有办法进行程序设计,也不好根据这个来进行拍摄照片。最后经过讨论,才明白我们需要的实际上是一个状态转换图,之前我虽然做了一个,但是比较粗略,希望陈稳霖可以将它近一步细化。这个也使大家明白,一定要明确自己要做什么,或者别人需要什么,千万不能糊里糊涂的,不然等到交付时才发现彼此说的不是一个东西,那就惨了。幸好我们进行的是Daily scrum,可以及时纠正,不至于偏差太多,如果是weekly/monthly sync-up,天哪。。。。。不敢想象。

  我个人认为,和scrum/sync-up的频率相比,更重要的是专业性。Scrum不应该是一个例行公事,而应该有它明确的目标:每个人清楚地描述自己的工作和计划,并明确其他人的工作和计划。在每次scrum后,每个人都应该反思:通过这次scrum我到底明白了什么东西。如果大家都糊里糊涂的,说明scrum需要有重大的改进了。

5.在alpha阶段总结中他们提到大部分开发工作都是由一个dev完成的,这一点刚开始令我相当惊讶,因为从之前的scrum中可以看到work item都是分到每个人头上的,但是仔细想想这也很正常,因为不同人的编程速度不同,投入的精力也不同。作为manager肯定是要尽量避免这种事情的发生,但是如何做到呢?这是个问题……

6.队伍把beta阶段的目标定为“在除去人脸识别的前提下,将游戏的可玩性达到最高”。虽然又有一个设想被除去了,但在有限的时间下,专注于最能提高一个游戏竞争力的部分,我认为是理性的选择。

7.电脑AI部分竟然是在一天时间内完成的,而且就在发布的前一天,在感叹队伍实力强大的同时,不得不说他们开发过程中预留AI接口的设计居功至伟。良好的架构有时可以取得难以想象的效果。

8.在beta阶段他们在bug的发现和消除上可谓极其迅速,虽然是由几个人经常疯狂地敲击键盘来完成的……就我个人作为软件用户的经验来看,在使用过程中遇到致命错误的沮丧感是软件的其他优点根本没法弥补的。任何一个对用户负责任的团队在发布时至少不能有明显的bug(比如随便点几下就跳出了),但事实上这样的产品,尤其是在游戏界,是非常多的。

  总而言之,我觉得从MSRA_SE_TEAM的工作过程中最应该吸取的经验是:设计过程要和技术实现结合,不能天马行空;Daily scrum要目的明确,形式合理,交流充分;beta阶段要专注于优化核心用户体验;要尽最大努力发现和消除bug。

 

转载于:https://www.cnblogs.com/codelsd/archive/2012/08/09/2630023.html

Published by

风君子

独自遨游何稽首 揭天掀地慰生平