敏捷开发在支付宝团队中的应用
51CTO推荐专题:初探敏捷开发
支付宝的研发体系是从自身实际出发制定的,既要保障产品的高品质,又要保持对业务变化的快速响应,加上协调多个团队高度并行开发的需要,整套研发体系是一个精心设计的严谨结构,也是比较重量型的。但还是可以从中找到敏捷开发方法中的一些重要元素。
首先谈谈敏捷开发中的迭代。支付宝技术架构是采用与业务发展齐肩并进的策略,这个过程就像给F1比赛中的赛车换轮胎,所有架构改进的实施必须安全快速,尽量不打断正常的产品研发的节奏。因此,在确定技术架构的基本发展方向或者基础设施产品的蓝图之后,会将研发工作切分成很短的迭代,每一个迭代的目标明确,一般只解决少数几个技术问题。以引入企业服务总线为例:
第一个迭代的任务是调研,目标是概念验证与产品选型;
第二个迭代是试水,我们选择了一个新的业务产品作为服务总线应用的小白鼠,当时的目标是解决高可用部署模式问题以及集成逻辑的统一管理问题,架构师进入到该项目中,通过服务总线提供该产品与其它系统的集成方案,这个迭代与新产品发布的同时完成;
以后的迭代是一系列推广使用的迭代,几次之后,完全替换了原来不够灵活的商用JMS服务器集群,并且整个技术团队可以不依赖架构组使用服务总线了;
再以后的迭代是服务总线的自身的改进,如QoS的改进服务治理功能的增加等等。
采用这种敏捷开发的方式,每一次迭代都有实际可运行的产出,并且其结果可以作为选择下一轮迭代目标的依据。以这种模式,架构发展以一种稳健的方式小步快跑着,但与有些敏捷方法学建议的固定迭代时长有些不同,当搭顺风车时,是宿主项目的规模决定迭代的时长。