对往届软件工程的思考——写在软件工程开课之际 by 姜健

众所周知,软件工程是我们在MSRA度过的这一年中的重头戏,大家也拿出十二分的劲头来对待她。终于,在大家的期待中,高级软件工程课在本周一开始了。殷秋丰老师带领我们探索了一般软件的整个开发流程,介绍了我们这门课的指导思想,确立了“教练-健身者”的师生关系。我想这些都对于后面三个月的学习和练习打下了基础。

高级软件工程这门课已经开了两个年头,我们要从各届师兄师姐那里得到经验教训,才能够长江后浪推前浪(前浪死在沙滩上)。通过第一节课邹欣老师的客串的内容,和对去年各个博客的阅读,我总结出以下几点。

一、软件一定要有市场

微软是做商业软件起家的(当然,也参与了很多开源项目,只不过不被世人所知)。我们要做一个有意义的软件,就要让它造福于人。首先,软件要有需求,有市场。这一点,邹欣老师已经在第一节课的客串中讲的十分清楚了。在这一点上,我觉得去年“萌萌”队做的很不错。他们开发了Windows Phone上的豆瓣客户端。尽管WP的市占率不是很高,但是既然有用户,我们就不能忽视用户的需求。豆瓣作为在国内颇有影响力的综合社区,手机客户端自然是一个很大的需求。我相信在“萌萌”队之前,应该没有哪个团队能想到在WP上面做(包括豆瓣官方)。我认为“萌萌”队很敏感的嗅到了用户和市场需求,这对于他们这个软件的成功无疑是十分重要的。

邹欣老师说,今年我们做的项目是由老师来确定的。虽然不必要在为做什么而纠结,但是我们应该仔细分析老师让我们做某个项目的理由,这对于我们以后领导一个团队去开发产品是十分重要的。

二、团队合作

Teamwork是一个老生常谈的问题,但是又不得不谈,原因就在于其重要性。现在任何一个商业软件几乎不可能是由一个人开发出来的,原因在于用户需求的复杂性和市场的迅速变化。

在一个团队中,首先要有PM。我们队很幸运,PM钟华平是具有软件工程经验的人,这也是大家推选的结果。我们围绕PM的既有经验,要严格按照整个团队确定的开发方向、流程和规范进行。当然我们也需要在开发过程中积极提出自己的看法和观点,加强交流。交流在一个团队内部是十分重要的,不能每个人闷声发大财。任何问题在积极的交流中都不是问题。

这就看到了去年“萌萌”对在整合代码的过程中产生的问题。首先,如果在这之前,所有人都有很好的交流,事先制定好源代码书写规范,那么这个问题就不可能发生。其次,在问题发生后,“萌萌”队积极组织会议进行协调解决,通过很好的交流,也及时解决了问题。由此看出,积极的交流在一个团队中有多么重要。

我相信我们都是有能力的人,都是牛人,不管是大牛还是小牛。牛与牛之间要相互尊重和包涵,牛与牛之间也要碰撞出思维的火花。这就要求我们要权衡好组内队员的关系,在加强合作的同时分工明确。同时,每个人都要体验在一个团队中不同角色的职责与作用。俗话说男女搭配,干活不累。作为唯一有女生的队伍,我相信我们一定可以以一个团队的姿态去完成一整套软件开发流程。

三、严格而灵活的时间规划

软件作为一个系统工程,必须要有清晰的时间规划,否则在中间某个环节上耗费时间太多,必将导致最后的失败。但是开发也需要灵活的时间表,因为每个人都无法预知在开发过程中会遇到什么样的问题,解决问题需要多长时间。到时候要根据实际问题调整时间规划。当然,不能遇到问题就放松时间要求,需要加倍努力才是王道。

时间规划的问题不仅在团队项目中十分重要,在Individual Project and Pair Project中也同样适用。

四、加倍努力

我们在各个组里都有自己的活要做,队员之间不仅要相互体谅,对于某一个人,更要加倍努力,不拖团队的后腿。对于本科非CS专业的自己,更是要努力提高编程能力。努力加方法是王道。

 

暂时只能想到这么多。希望在软件工程中,能体会到与之前不同的体验。

 

姜健

posted on 2012-08-10 15:12  Gun N' Rose  阅读(254)  评论(-16编辑  收藏  举报

导航