银行中的跨国研发团队如何快速交付

在互联网大潮中,金融企业也越来越多地直面互联网金融的冲击。传统的产品设计和发布周期显然已经跟不上当下快速发展的消费市场。无论中资还是外资各大银行,都已经纷纷上马移动金融产品,并且开始采用敏捷开发的模式,以达到快速发布,灵活调整的目的。
本案例向大家分享某银行的跨国研发团队是如何达到快速交付移动金融产品的。

一、引言

该银行组建了单独的团队来研发新一代的手机银行产品,团队主要分布在中国和新加坡,在马来西亚和印度也有部分人员。手机银行的业务逻辑和关联系统基于原有的网上银行产品,但用户体验及页面设计都要另起炉灶,试图对不同国家的业务提供统一的用户体验。

对于一个全新招聘的跨国团队,采用大家没用过的敏捷方法来研发一款创新的手机银行产品,这个“三新”项目看起来就是一个不可能完成的挑战。






继续阅读 More

javascript 单元测试覆盖率工具,及Grunt集成

js单元测试Unit Test的工具包括Jasmine, Mocha, NodeUnit, JsTestDriver等。

Jasmine最为流行,因为其良好的语义和丰富的Mocking机制。

无论使用Grunt.js或是Maven来作为项目构建工具,Jasmine都有良好的插件支持。

js单元测试其实并不为前端开发者重视,近年开始node.js以及单页面web app流行起来后,越来越多的js项目也开始采用了单元测试,至于单元测试覆盖率,对于很多js开发者还很新鲜。

笔者所在项目采用grunt.js作为项目工具。之前使用了grunt.js v0.3,采用grunt-jasmine-runner插件来运行测试,但一直苦于没有合适的覆盖率插件,后来发现了grunt-istanbul,然而两者不能够直接集成,需要对源代码进行改动,以使运行测试的浏览器(比如phantomjs)将生成的覆盖率数据,从内存中传递到grunt的上下文中。

于是,笔者在github上fork了项目,自行将两者整合成为完整的一步式插件grunt-jasmine-coverage,并发布到NPM上。

近期,grunt升级到v0.4, 官方的jasmine插件也换成了grunt-contrib-jasmine。经过笔者一番探索和讨论,发现该插件支持模板系统用于扩展功能,而且已有热心人制作了用于覆盖率的模板grunt-template-jasmine-istanbul。经过与其作者的讨论,现在该模板已经可以很好的支持同时生成多份覆盖率报告。比如,cobertura格式的报告,可以用于Jenkins集成,而lcov格式的报告,可以用于Sonar集成(需要sonar-javascript插件)

有一个小技巧,项目中除了包括自己的源代码,肯定也会包含其他第三方的库,比如jquery。而对于计算覆盖率,我们可能希望将第三方代码踢除出去。这时,在grunt-contrib-jamine的配置中,记得将第三方代码置入vender一节中,这样grunt-template-jasmine-istanbul在做instrument时会忽略掉这些代码。

此外,grunt.js对于nodeunit也有很好的支持