Z-XML团队 软件工程课之我感我思我收获

《软件工程》这门课像我们的诤友,不断督促我们前进,又不断指引我们收获。时间飞逝,我们Z-XML团队一个个完成了课程中的所有任务,一步步走到了期末年末。

走的远了,也该回头看看。全员7人回顾于此:

李孟

    一个学期的软件工程即将落下帷幕,在这样一个历程中,我收获很多,也感受到很多。
    这是一门与实践结合极其紧密的课,而对于这样的课,总是让我感到兴奋。因为我们确实是在做中学,在学中做。而不是单单地背些转眼就忘、没有切身体会的枯燥词句。而团队项目更是让我感到刺激。我一直觉得一群人,朝着一个共同目标,并肩地努力,是最美好的事情。
    Z.XML组队伊始,我们“团结,实践,奋斗”的基调就已经被奠定了。和优秀的同学成为队友总是让人感到兴奋和充满希望。在这行将结束的时刻,再回首这一路走来,我可以自豪地说,我们做到了最好!
    还记得两次命名(一次团队队名命名,一次项目名字命名),大家的畅所欲言和丰富的想象力,更有命名狂魔马辰连续两次夺魁的神勇表现,
    还记得轩爷(周敏轩)“造出”灵活主角时,大家瞬间被激励的兴奋场景,
    还记得薛神(薛亚杰)三两天就解决一个技术难题、神龙见首不见尾的威武霸气,
    还记得技术整合攻关阶段肖神(肖俊鹏)深夜的探访,
    还记得毛神(毛宇)连日工作将所有工作整合完毕却依旧不变的淡然,
    还记得最后时刻罗凡挺身而出,强化美工的妙手回春,
    ......
    可以记得的,太多太多;可以忘记的,太少太少。这岂止只是一次软工项目开发?!
    我们收获的不止是软件开发知识和经验,我们收获地,更是一段美好的人生故事!
    这个故事里,有你,有我,有Z.XML!

罗凡

    当我们的技能已经可以在大部分“个人任务”上独挡一面之后,在我们即将接受“团队任务”之前,我们开始学习如何在团队的配合下完成一个“团队任务”。我想,这就是本学期《软件工程》课的任务吧。
    作为技术渣,刚刚接触这门课时特别不适应。刚学会怎么用C++写词频统计的作业,想继续学习C++,又要用C#去完成电梯调度算法了;刚了解pair work的优势与艰辛,又要组队进行大项目开发了……整个人都处在一种焦虑的状态,因为每次布置的任务我都完全不会。
    但锻炼就一定有效,渐渐地,我开始理解c#的语法与函数之间的逻辑;渐渐地,我开始可以看懂cocos-2dx引擎下的C++代码;再后来,我当上了我们团队的PM,终于觉得自己能够融入代码的世界了。恩,我看到了一个技术渣的成长。
    除了在技术上的一些进步,更重要的是在团队合作的过程中学会了该如何高效工作、如何团队分工、如何使7个人的想法凝聚成一个统一的、能够促进团队进步的计划。这些从人身上学到的本领,比那些从书上学到的知识更有价值。
    最后,要感谢李孟在一轮迭代的尽心尽力带领全队走向胜利,不辞辛劳的手把手教我入门;感谢肖俊鹏总能从新的角度看待问题,保证团队决策正确而高效;感谢薛亚杰、毛宇、敏轩和马辰(排名不分先后…)在平常合作的一点一滴中给我启发、给我激励、给我感动。

马辰

    这次软件工程在各种大作业和考试的簇拥下走向了尾声,想想一个学期的课程,让我收获颇丰。
    软件工程让我印象深刻的两个词,一个是团队,一个是用户。
    我在大神云集的Z.XML组技术很弱,但是大神队友会很耐心地解答我弱弱的问题,好感动~大家技术能力不一样,在分配任务时充分地考虑到了每位队员的自身特点,即使我这样的菜鸟也写代码,调bug,并没有被团队所嫌弃,真真正正地感觉到自己是团队的一份子;我们每周的例会,colorwork的文件共享,QQ群的联络,让我感觉自己的队友在努力,自己也应该更努力,这可能就是团队精神吧;我们每次开例会,大家各抒己见,进行头脑风暴,让我们的项目更趋完善......
    软件工程还让我学会了从用户角度进行思考,以前写代码,有作业要求,只要按照要求来就好。现在,我要从用户的角度来写软件,遇到了很多问题,也不断地加深了对软件开发的理解。
    这次的软件工程——累,并快乐着。 

毛宇

    一学期软工课上下来,我觉得心里很爽,这是一种非常充实的感觉。
    其实在我的心里,北航计算机系的课程大多数的课程设计,教材选择,教学方法,考试形式都是有很大问题的。所以,我心里一直觉得北航的教育基本等同于vain。但是软工课对我来言,有很不一样的意义。
    我知道我周边有很多人觉得软工课很没有意思,而且任务量很大。记得之前班群里面还为此群发邮件来申请缓期作业,我一直觉得这样的行为挺幼稚的。实验室里面的师兄告诉我说,北航计算机系的学生就是欠练,动手能力基本为0,在我这么多次大作业和不同人合作的结果看来,我觉得这是非常真实的一句话。
    我特别喜欢软工课这种教学形式,就是给出任务,自己去完成。很多同学抱怨,做了作业,写了程序,知道自己的得分,但是不知道自己哪里有问题,感觉很窝火。其实这种想法是一种非常土,非常高中的思维模式,软工的这种在实践中教学的方式,其实是一种自学的模式,其实我们收获更多的是过程中解决问题的solution而不是result。举个例子,以前做电梯调度程序,其实对我个人来言,我做完以后最大的收获是什么?绝对不是想出一个电梯调度的算法,绝对不是说又练习写了很多行的c#,而是一种二次开发的做事步骤。这我想是以后的工作中会时常用到的,也就是拿到一个前面人写的工程,你知道怎么去看懂它的框架,看懂它的接口,这样在最快的时间里面捡起一个你不怎么常用的语言。过程中自己学到的东西才是自己的,这不正是学技术的一个特点吗? 之后类似的锻炼还有团队项目中2次迭代,daily scrum以及转会环节,都是非常有意义的TASK,但是我看到周围很多人依然是自作聪明地钻着制度的空子来混这么软工课,其实我觉得很遗憾。
    善意的来讲,我觉得软工课如果想要开得更好,就要做一个工作:便是把学生的思维给纠正一下,告诉他们这门课不是开给那些只会做习题,只会写文档,只会排版,一心想着分数是85还是90的人的。投机取巧的人总是太多,这种风气对一门不多见的好课是很致命的。不过确实挺无奈的,北航计院风气就这样。
    最后是关于罗老师,首先我觉得您作为第一次教这么课,是很负责的。我记得当时有几个同学上课质问你的一些教学思路,你当时显得有些紧张。其实没必要,老师的权威是一种说服我们去相信,去跟随的很大力量,希望罗老师也能对自己的教学思路,教学方法更加自信。
    最后,祝愿老师新年快乐!

肖俊鹏

    罗老师的软件工程是我在大学这几年间上的比较特殊的一门课。首先这门课程没有传统苏联式教育,也没有中国传统教育的风格。是一种全新的风格。很难说这种风格的好坏。因为和传统教育相比,首先老师上课讲的内容不是很重要了,反倒是课下自己学习的内容多了起来。课程设置不重要了,自己安排的时间多了起来。最重要的是,死记硬背的考试取消掉。多出来的时间分配到工程上面。我个人适合于这种教学方式。但我并不赞同这种教育方式。
    很明显,课件是邹欣的。而邹欣的水平实在是很难说怎么样。作为现代程序设计课程的老师,竟然连一个NP问题都看不出来。还连着提出了两个错误的算法。这种情况在传统教学里面是很难想象的。而且邹欣老师一个特点就是,讲的内容少,练的内容多。这无形之中就提高了学生的自学能力。但这里指出这一点,并不是说表扬,而更多地是批判。因为课余时间自学,自学的内容又是邹老师留的,邹老师留的内容又是只要花时间就能学会的。这个等价于:不论是谁,只要有时间去干这个事情,都能干出来。这个等价于:不论是谁,只要他自己肯花时间在上面,他就能做出来你再这门课程中学到的东西。请注意,这里用到了“自己”这个词。没有老师的帮助,就可以搞定。换句话说,将来工作以后,随便一个人都能代替你的工作,只要他花了一定时间。所以说现代程序设计那门课程实在不怎么样。就是任务多,工作量大。最后做了些码农都能做的事情。
    于是这各课程使用邹欣的课件,邹欣的教育方法。我认为是不合时宜的。虽然在最一开始我表达了自己对于这门课程教学设置新颖的观点。但现在看来,要实现真正的适合学生,还有很长的路要走。更重要的一点是,这门课程犯了教育中的一个大忌:使用某个特定商业企业提供的闭源软件:Visual Studio。以及其提供的服务:Team Foundation Sever。这个我认为应该属于教学事故!这样子培育出来的人才,会使用(或者习惯使用某个商业企业的软件),这种事件的性质恶劣程度不亚于前一段事件中国医院出现的“第一口奶”事件。因为学生本来是不偏不倚,掌握多种东西。但是这里竟然去用MS的商业化服务。
    对于工程,我认为设计也不是很合理。迭代开发速度过快。没有真正的将软件工程的内容阐明正确。这些工程在建立的时候,就应该有人来指导如何划分工程模型,如何来进行团队合作。但这们课程竟然让刚学习的学生,来对于上一届的学生的糟糕的程序架构,读、改、写。这也是不可理解的。如果学生本来就不知道正确的软件工程应该怎么分,正确的软件工程有什么优点。怎么可能学习到新的东西呢?
    所以希望罗老师自己研读软件工程的推荐教材,弄出一套自己的风格。认真的设计教学路线,规划时间。提高这门课程的水平。

薛亚杰

    软工一路走来,感想很多很多,在项目开发的过程中,许多次都想把他们写下来.但无奈这学期实在是太忙了,我做事情一向会搞好提前量,但这个学期我似乎也体验到了deadline的感觉,而我又坚持从不熬夜,于是时间在这里不允许对于软工感想诉说太多太多.

    非常幸运在软工团队分组的开始加入到了z.xml这个团队中,这个团队如果只用四个字来形容,那一定是凝聚力强.再来四个字的话,才算的上是大神云集.我承认这个团队云集六班七班最优秀的软件开发人员,但他们聚集在一起无疑需要一股力量凝聚在一起,否则只能是一盘散沙,各自为战.然而令人欣喜的是,我们团队的所有成员都为了这个团队在奉献自己的光和热.而这次的团队开发也带给了我不一样的开发体验.代码编写人员众多,我自愿担当起了美工的工作.地图的编辑,素材的剪切,我都进行了下来.二轮迭代过程中我又完成了消息推送的工作.代码编写工作这个学期我已经锻炼了太多太多,而美工这份任务让我意识到一个项目中美工实在是太过于重要.一个项目,尤其是游戏,如果美工粗糙,那么不可能赢得大家的青睐与关注,这,也督促我在以后的项目过程中着重注意.

    不多说,最后来一句,如果有下一次团队项目,我仍旧希望加入这样一个凝聚力强,执行力强的团队.

周敏轩

    团队的项目开发也进入尾声了,看到团队经过2轮迭代,4周的敏捷开发的奋斗开发出来的游戏能发布,真的是很开心。

    在开发过程中,收获自然是很大的,很喜欢这种分工明确,讨论活跃的开发氛围。最大的收获就是学会了如何团队合作并且在开发过程中见识到了团队开发的力量;和这些伟大的队友们一同奋斗的过程中,从大神们的习惯以及思想中学到了很多。另外的收获就是从这种不一样的课程设置中获益良多,节省了许多时间;敏捷开发,看似幸苦,但如果项目组真的做到了敏捷开发的要求,在一两周内集中开发,效率应该来说是最快的,这样的高效率开发节省了不少那两周之外的时间。

  虽说课程中没有学到很多传统软件工程开发的一些体系知识,但之强调敏捷开发对于我来说还是很不错的。