分享到微博 分享到人人 分享到LinkedIn 分享到Email
以梦为马,结伴前行——记第七期微软创新人才学院《高级软件工程》结课

“在上这门软件工程课之前,你接触过软件开发吗?”“没有”,来自中国科学技术大学的董萌同学在被问到此前是否有相关软件开发经验的时候这样说道。她是参加第七期微软亚洲研究院创新人才学院培养项目的一员,目前已经在微软亚洲研究院待了近六个月。

微软创新人才学院是隶属于教育部创新人才培养实验区的教学改革项目,自2010年起,该学院每年从合作高校招收优秀的大四学生接受为期一年的科研培训,旨在帮助他们发掘科研潜力,激发创新能量。除了在研究员的指导下参与科研和工程项目,微软亚洲研究院还为他们量身定制了课程。在其中的软件工程课上,同学们在微软亚洲研究院资深开发经理殷秋丰老师的指点下体验了产品开发的完整生命周期,其成果还将有机会转化到微软的产品中给成千上百万的真实用户使用。

“克服困难,将细节做到极致,与用户许下一个美丽的约定”

“北航门口的哈尔滨烤冷面”——当听到这个小组名字的时候,大家都忍俊不禁。问及为何会取这样的小组名时,来自北京航空航天大学的刘乾同学笑了起来, “我们团队由来自北航和哈工大的同学组成,哈尔滨烤冷面是北航附近很流行的小吃,我们当时灵光一闪定下了这个很接地气的名字”。与组名相比,汇报会上几位同学完成的项目更令人过目不忘。

“我们的项目叫小英配音,为用户提供英文电影配音体验。首先,用户可以挑选一段自己喜爱的英文电影片段,接下来就可以模仿电影中的角色进行配音了。我们会给用户的每一小段配音进行打分,用户不满意则可以重新再配。最后,我们将用户的配音和电影片段糅合在一起,形成完整、流畅的视频。” 聊起团队项目时刘乾神采飞扬,“项目一开始,我们就把能否被微软小英采纳作为衡量项目质量的重要指标。微软小英是同学们十分喜爱的学习英语口语的好帮手,畅想一下如果我们这个项目被加载到微软小英中,并且能被大量用户使用甚至刷爆朋友圈,那将会多么的令人激动和自豪!”

然而这支充满理想和激情的团队却在一开始遇到了困难,因为缺乏相关经验,微信服务号开发调试复杂,加上测试号因为录音次数过多而遭遇阻碍,使得大家有些消沉。 不过成员们很快开始了基于同学以及指导老师的反馈在细节上寻求突破点“我们很快重新申请了两个测试号分别部署了开发和稳定版本,开发版本的代码只有在新测试号上测试稳定后才能正式发布,这使得稳定版测试号不会因新代码的输入而产生严重Bug。”

“小英配音”不久之后将正式入驻微软小英,然而作为一个细节控,刘乾认为自己团队的产品还有很大的提升空间 “现在还有一些细小的问题,比如iOS上滑动不太流畅,视频切换时播放缓慢等等,虽然课程结束了,但是我们会继续逐一攻破这些问题,给用户带来最好的体验。”他说话时的一脸认真,仿佛郑重地为未来的配音用户许下了一个美丽的约定。

小英配音demo界面以及“北航门口的哈尔滨烤冷面”团队(从左到右依次为侯宇泰、陈双、王永超、 鲍航波、刘乾)

“时间有限,在不完美中寻求完美”

项目成果未来将正式纳入微软产品的,还有“中山-科大”团队,他们为微软的大数据分析利器 —Power BI添加了新的可视化功能。“曾经尝试操作Power BI时,被其强大的数据处理和展示功能所震撼,没想到在软件工程课上能有机会为它添砖加瓦。”来自中山大学的曾艳红同学说。

“同学们不仅根据用户的反馈在Power BI 的插件Infographic Designer里增加了对折线图、缩放功能、灵活设置坐标轴等功能的支持,还在短短的两周内将Infographic Designer的代码迁移到Power BI的新API上。根据我的以往经验这类工作在实现起来非常的琐碎和棘手,没有简单的解决方案,没想到他们在这么短的时间内就完成了。”汇报会上,秋丰老师对该团队赞赏有加。

团队主要的开发者之一,来自中国科学技术大学的刘思远表示“本来在旧版的API上已经完成了所有开发,但突然要搬迁至Office Store。当时距离结课时间已所剩不多,我们没时间多想,立刻就入手开始熟悉新的开发环境,加班加点完成了这一对用户的承诺。”

左图:“中山-科大”项目组曾艳红、刘思远庆祝项目答辩结束。右图: Infographic Designer新功能之灵活设置坐标轴功能展示。

“分工学习 —— 高效的团队合作”

“很早就从师兄师姐那里听说过微软创新人才学院的软件工程课,也用过师兄师姐开发的软件,感觉很棒。今天我们有机会发布自己的软件,真的很有成就感。”来自中国科学技术大学的刘丹阳和黄红艳在项目汇报后兴奋地说。他们的小组名叫ASE753,开发的项目是English writing ,一款架设在微软Azure云平台上希望帮助用户提高英语写作能力的网站。

由于团队成员均无软件开发经验,ASE753小组在一开始确定软件的形式问题上就遇到了磕绊。他们请教了微软小英团队的微软亚洲研究院资深研发工程师夏炎,学习了几种常用形式并比较了其优势。“最开始我们想做一个UWP软件,但是考虑到网站受众更广,最终选择了以网站为形式展示来开发内容。 ”刘丹阳提到。在项目推进的过程中,团队合作是ASE753团队学到的第二课。“刚开始大家都很不熟悉,经常完不成Sprint中的任务,后来我们会先充分讨论下个阶段的目标、任务分解并合理分工,项目进行起来就顺畅多了”。

项目中需要大量关于 Azure云平台、MVC框架等相关的知识,但团队成员之前对此并无太多涉猎,如何在有限的时间内可以让大家迅速获取相关知识并完成项目开发呢?ASE753小组想出了分工学习的学习方式——大家分别了解不同角度的知识,然后分享给团队,这种方式让同学们很快地掌握了项目开发所需的相关技术。 来自中国科学技术大学的黄红艳说“我们在这个过程中不仅学习和实践了所学的知识,更重要的是我们懂得了如何进行高效的团队协作。虽然课程结束了,但那种大家一起努力完成一件事的开心和成就感我们都将会一直记得。 ”

来自中国科学技术大学的董萌同学以及她所担任项目负责人的“X-Space”小组对此也深有感触,“只有不断地汇集大家的智慧,才能真正做出有益于用户的产品。”该小组的History Manager项目可以帮助用户更好地管理浏览器记录,从而更好地进行分类、汇总,并标记出重点浏览过和操作过的网页,对于经常需要查找资料的学生有很大的帮助。

左图:刘丹阳同学代表ASE753团队做报告; 右图:董萌同学代表X-Space团队作报告

结语

“软件工程课是微软培养创新人才不可或缺的重要训练,它的意义远远超出‘提高学生的动手能力’。一次成功的软件工程实践需要高质量的需求分析、制定项目计划、管理项目周期、控制风险和质量、团队内部的高效协作,以及与技术提供者的有效沟通等等。比起基础课程重视知识点的授予,软件工程课更注重训练学生在高效的团队合作和沟通的基础上,去定义问题以及有计划地解决问题的能力。大四的同学们正在逐步接触并从事研究工作,而这两种能力对于他们未来独立地承担研究项目具有重要的意义。“ 微软亚洲研究院学术合作经理、人才项目负责人孙丽君女士在听完项目报告后说,“看到同学们在短短的几个月内就可以完成如此高质量的项目,我们为其进步深感骄傲,也坚信优秀的他们会在未来的道路上不断取得更好的成绩!”