摘要:实习期间,在公司前辈的帮助下,熟悉了公司主要开发模式,对于敏捷开发,开发框架,集成测试,单元测试等都有所涉及。将理论知与实际工作相结合,在不断地尝试和实践提高自己的专业水平,为接下来走出学校踏入社会做准备。现将毕业实习的具体情况及体会作一系统的总结。
关键词:敏捷开发;测试;框架
1 实习单位简介 Perficient (NASDAQ: PRFT) 是全球领先的IT咨询公司, 主要面向北美客户,帮助客户实现商业驱动下的解决方案,整合商业模式,发展生产力,增强客户忠诚度,使其更具竞争力,从容快捷地应对市场机遇。长期合作伙伴包括IBM,TIBCO,Microsoft,EMC以及Oracle等。 Perficient公司证券以代码PRFT在纳斯达克证交所挂牌交易,在全球各地约有1600名员工,超过1400名商业及技术咨询顾问,50余名专业销售人员,目前在北美设有24个Office,在中国、欧洲和印度设有全球软件研发中心。 博克软件(Perficient China) 在杭州滨江超过200名员工,其中90%以上是技术人员(至2013年底),是全球率先采用敏捷开发方式通过CMMI5级认证的IT企业,优势业务领域:客户关系管理,门户, SOA/BPM/EAI,电子商务,商业智能,测试。 继2005年和2006年通过了CMMI3和CMMI4的认证之后, 博克软件杭州公司即PerficientChina于2008年4月成为全球率先采用敏捷开发方式并通过CMMI5级认证的公司。CMMI 是国际公认的衡量软件企业能力成熟度的标准。在CMMI框架中融入敏捷开发实践,是为客户提供优质软件开发服务的坚实基础,也已被欧美世界级企业认可为过程改进成功的关键之一。博克软件通过不懈的努力, 把CMMI和自己的敏捷开发方法论(Enable-M Methodology)完美地结合在了一起,跻身于世界领先软件服务公司之列。 2 实习主要过程 此次实习的目的在于通过在杭州博克软件的实习,熟悉敏捷开发的流程,正规软件开发的步骤等。实习过程主要包括以下几个阶段: 第一,了解企业文化,熟悉集团公司的经营单位,了解经营单位的经营对象。 第二,学习公司软件开发的流程和一些软件开发需要的框架以及软件测试的框架和工具。 第三,与同事合作按照公司软件开发流程以及运用业内新兴框架完成公司安排的实习训练项目。 第四,总结实习经过,并完成实习手册、实习报告。 3 实习主要内容 刚到公司的第一周,主要是了解博克软件的企业文化,崇尚敏捷开发的原因。了解公司,融入公司前首先要了解并且喜欢公司的文化。在这一周里了解了公司的规章制度并学习了一些公司内部比较常用的软件测试工具以及软件开发理念和流程。 第二周开始在公司前辈的指导下与同期同事合作开发公司安排的实习项目。根据要求是必须用新兴的特定的框架来开发,所以是一边学习一边开发。最开始的几天还得根据需求设计数据库,小组里先将自己负责模块的数据库讨论出来,再由几个小组组长讨论并决定出最终的数据库。而各小组成员都在忙着学习新的框架,angularjs和bootstrap。Angularjs的难度全在双向绑定的思维,要理清javascript的使用。看了许多关于angularjs的例子之后,才有点入门的感觉。 接下来的几周就是在不断学习新知识并将其运用到项目中的过程,之前在学校的实践的项目都没有真正的做过测试,直到实习,项目主管和po一直耳提面命测试的只要性。根据公司开发流程,在我们开始项目时就一直要有测试,除了测试代码外,还需要搭建CI环境,CI就是持续集成(Continuous Integration),让测试代码一直处在run的状态,所有测试都通过,代码才算是基本合格。测试框架用的是jasmine,我在其中负责的是页面测试,需要将页面上所有能点的组件都点一遍,靠的就是这个,测试代码还算简单,就是刚开始安装时都是有项目主管手把手教的。团队合作中最为重要的就是版本控制了,要将所有人的代码有序的合并在一起,以前我们用的是CVS,在实习期间项目主管强制要求用git,又是一个新的东西。18个人的项目大家都是第一次接触,版本控制大家也用的不太多,所以刚开始频频出错,没多少人的本地版本能跟git上的版本一致,只能一次次的强推,连前辈都说从来没见过我们这样不会使用git的实习生。最后,大家想出一个笨方法来,每次上传代码之前就招呼一声提醒大家及时更新本地版本,总算是向前迈了一大步。 第五周开始我加入了安卓小组,与同事一起开发项目中的安卓软件,因为之前没有接触过安卓,所以主要负责的还是安卓的页面部分,刚开始有点困难,上手了就还好,,这一点除了用自适应也没有其他办法了,还有就是就是po对页面的需求一直再改变,我们只好根据他的要求一改再改。安卓app的功能则都是依据webservice给的接口来实现,具体是由另外一位成员负责,每当页面完成的差不多,我就会观摩学习一下他的代码还是学到了挺多东西的。 4 实习的主要收获和体会 在这几周的实习中,我最大的收获就是对如何与同事合作开发软件有了一个比较深刻的体会,并学习了的新知识。在提高专业水平的同时,其他方面的收获也是非常大的,学到了许多学校里所学不到的经验与教训。作为一名即将走出校园的大学生,这次的毕业实习无疑成为了我踏入社会前的一个很好的试炼,为我今后更好地投入工作指明了方向。 首先,让我意识到理论知识与实践的差距。WWW.EEELW.COM 在学校里总是在被灌输知识,近乎是得过且过,自己根本没强烈的求知欲。然而这次实习,却让我深刻地感受到了自己的知识的贫乏,不能将专业知识系统的掌握。作为专业基本对口的公司,对自身掌握的专业知识水平是相当不够的。计算机行业是一个日新月异的行业,以前在学校的时候老师就说过,我们现在学的东西等到我们毕业了就都过时了,之前一直都不当回事儿,等到了实习才发现确实如此,我们实习时所做的项目都运用到了一些当前比较新的技术,有些甚至在国内还没有太普及,所有的人都是在一边学习一边运用,也是在那个时候我意识到知识共享的重要性,当时摆在我们面前的全新的技术,一个人的时间精力有限,学到的都只是一部分,然而在与同事讨论之后,往往都能够以最简单快捷的方式去理解其中的一些用法和原理,大大的节约了我们的时间。这次的经验更让我体会到理论知识与实践的差距。通过这次的实习,给了我与众不同的学习机会,增强了自学的能力,了解了分享的重要性。 其次,我学会工作中应具有高度的责任心。在合作完成项目的过程中,我们每个人都有自己的任务,因为分成了三个小组,每个组的任务不同,但都是同时在进行,一个人的失误就会拖慢整个项目的进度,白天在公司不方便通过视频学习,只好与同事一起查文档,收集别人的经验,一点一点的进行着我们任务,下了班之后则是自己通过视频学习,自己做个小小的试验或是记录下关键的知识到公司继续;随着项目的一步步进展每个人的任务都有了小小的改动,但是千万不要以为之前的任务就跟自己没关系了,公司前辈说“代码是终身负责制的”随着项目渐渐的完善,之前隐藏的小问题也随之一个个暴露,这时之前负责此模块的人就得暂时放下自己手头的任务来修改这些小。这样的事情在我们实习过程当中非常多,所以在对自己的工作应具有高度的责任心,做到事中细心事后检查。 最后让我学会什么叫妥协。这样一个项目有18个人的参与,每个人的性格都不相同,在碰到三个人设计的方案中只能选择一个时候矛盾就会爆发,原以为自己的脾气还算温和,但当自己辛苦了一星期的成果还没有被老板看到时就先被同事否决,认为他们自己组的更好更适合,为了不拖慢项目进度把原来写的大幅度的删改时还是会忍不住委屈和气愤不服,但是除此之外又能做什么呢,客户要的只是一个结果,而不关心这其中的过程,当同事有了更棒更简洁的方案,即使之前付出再多,也要学着去接受,因为这不是一个人的项目,这是大家共同的项目,应该以所有人的利益为重。 通过这次的实习,让我更清楚地了解自身的优势和不足,学会了很多学校里学不到的知识,更为我今后步入社会打下坚实的基础。 |