软工实践结束了,有些惘然,就像一部剧终了,心里也就不安起来,惆怅起来。
变得不再痛快。
想起自己第一篇软工博客,仿佛是很久以前的事了,显得有些无知。对比现在,有些事情实现了,有的没有。
我说,自己要掌握Java的基础,结局是,自己只写了些PHP。
我说,自己能独立写出简单的软件,结局是,我只弄了些触发的程序段。
我说,开发的软件是有市场价值的,结局是,几乎没有市场,只用于少量的客户。
但是,这些并不重要。
开发软件的过程是很有意思的。
所有开发者都有责任心,在一起做事很开心。
每个人都体现了他的价值。
有了这些,夫复何求?
这学期使用过的软件超过以往,“Axure RP”“Adobe”“WampServer”“Git”“Google Chrome”“Sublime Text 3”这些都是现装现用的。其中的“Axure RP”“WampServer”“Git”都是重点掌握的对象,但也只能说“用过它们”,离熟练运用还差得远呢。
还有很多安装失败的软件,被浪费的时间非常“可观”,常常心(ren)痛(pin)不(tai)已(cha)。这里就不枚举了。
接触到的新语言是PHP,平台有github、wampserver、以及最终部署到的服务器。
印象最深的新方法是:用github进行项目管理,而不是QQ。平心而论,二者各有优点,QQ有即时性,上传下载文件比较方便,交流也很方便;Github可以很方便地查看新旧文件的差异,可以进行项目的merge,可以看到每个人的活跃度、提交数量(精确到每一行),这是QQ不能比拟的。综上,更适合软件开发的,是专业软件github。
哈,还记得自己第一次使用Markdown写博客的时候,那是一百个不情愿啊!明明有更“人性”的编辑器,为什么还要用Markdown这种看起来好“原始”的编辑器?但如今我已经把使用Markdown作为一件和举手投足一样普通的事情了,没有任何不适应。
我的人月神话
相信长期目标大家都会明确,那么接下来的关键就是如何落实每一天的工作。我得到的经验之谈是,每一次的站立式会议都要认认真真地完成。我见过一些组基本没有实质性的站立式会议——几个人约个时间拍个照就走了——这也是有原因的,大三上学期的紧张程度已经到了空前绝后的程度(至少我这么认为)——之前课也多,但水课也多;之后都是专业课,但课很少。——不合理的课时安排造就了大家都不愿费时开会的现象。然而软件工程是特殊的,它需要面对面的交流。站立式会议不仅仅是解决当前问题,交流中总会有人发现隐藏的新的问题,提出来,一起研究。这是其一。另外,当有人在不经意间敲错字符(我们的站立式会议是三人站立,一人敲键盘,敲写的对象有可能是某段出了问题的代码,有可能是搜索的关键句,亦有可能是文案……四个人都围成一圈站立比较少,因为不适合实际需要),另外三人总有眼尖的瞧出来,可以避免一些无谓的时间消耗,所以在一起议会的纠错的能力、效率是更高的。这是其二。每天制定的任务是讨论得出来的,更切合实际,每个组员都可以充分了解自己该做些什么,该怎么做——强大的组长作为核心,会耐心的解答我们的疑问,甚至直接做个示范,非常具体。这是其三。有时会一起学习某个软件的使用方法,大家会盯着同一个屏幕一步一步的学,出现与教程不一样的bug的时候也能够一起弄明白如何解决。这是其四。
这样子,每个人的动态都很清楚,更有凝聚力。
举个反例,某个小组基本不开会议——因为大家都是老熟人了,而且做的东西比较简单,只要在交代作业的时候说一声就够了,没必要天天开会。我不认为这样有什么好结果。看到其中一人每天只是玩,其他人好像也没怎么顾及项目。后来,在将要验收的时候,这个组就炸开了锅,互相指责对方没有搞好各自负责的部分,导致项目的工作不能正常开展……于是他们呆在一块连续攻关了三四天,终于在验收之前弄好,旋即又都好聚好散了。但这种模式好吗?项目经理不是合格的经理,成员不是合格的成员。没有经常交流,即便是熟人也无法知晓各自的状态究竟怎么样,工作进展如何,又遇到了哪些困难。
对下一届的建议
想想自己在面试的时候能对HR说些什么?精通C/C++?Java?PHP?——假如你真的有这个实力的话,那倒没什么困难。但你如果没什么信心的话,还是来软工吧,在软工实践中塑造良好的软件工程素养。你在面试的时候或许可以自豪地说自己曾参与过某个软件的开发!
上面的说法比较功利,我也不太会讲。讲点其他的。软件工程实践是一门不能错过的课程,对我这样基础不好的人来讲是一次极大的挑战,相信对很多人来说也是一次历练。另外,对于不同的老师来讲,教学模式也不一样——我强烈推荐张栋老师的教学方法(博客),那是贴近实战的教学模式,能给深感课堂无趣的你一次思维冲击!你学到将不仅仅是个人代码能力的提升,还有团队协作能力的提升。无论是当下还是将来,软件工程都必须强调分工合作的重要性,独狼不会受到公司的青睐。
说到这里,心里有些惭愧,在团队合作之前,我认为自己可以很容易地融入集体。但真正开始的时候,才发现心里还有距离,这个距离需要一定时间去磨合。从一开始的不自然到后面的自然,花了较长时间,算是跟上了团队的节拍,也开始真正享受其中的乐趣了。
对老师的建议
- 如果可以,请与学院协调一下本专业的课程安排,不要把压力都集中在这一学期。
- 许多软件从大一大二开始布置作业去使用吧,不用在一个学期内一口气学那么多工具。
- 支持栋哥把这种新式教学模式“传染”给其他老师,并把此课设为必修,让所有同学都体验什么叫做团队开发。
对未来的期许
未来可能碰不到现在这么好的队友了,这么负责的PM了——我需要提升自身的专业水准,最少要成为一个专业的Coder。
最后
再次感谢辛勤付出的老师和助教,还有,可爱的伙伴们!你们让我明白团队开发是一件很有意思的事情,和你们共处的每一天,我都很充实。