![a9049674f5bce783984f1411633f5ad0.gif](https://i-blog.csdnimg.cn/blog_migrate/c35292e7c032bb0934ca58bd94ffc9ad.gif)
![1d005709c258185f5ee4d576460d8e20.png](https://i-blog.csdnimg.cn/blog_migrate/4c714d9b04318a117e2925048b995caa.png)
导语
敏捷运动是软件开发领域发展史上重要的里程碑。敏捷方法(Agile Method,简称AM)驱动团队高效运转、产品质量不断提升、交付周期显著缩短,使得敏捷理念逐渐深入人心。目前,在小团队中实施AM的效果已经得到验证,但对于大型组织(譬如农行研发中心),如何规模化运用AM还是一个需要深入探索的领域。
01
敏捷运用推广的现状及面临的挑战
敏捷(Agile)作为一种软件开发理念,与之伴随出现了很多实践框架和方法,如Scrum、Kanban和XP。这些方法已经成为敏捷化软件开发的事实标准,十年前类似持续集成这样被大家认为是“极限”的方法,现在也已经成了开发团队的一个标配。 但是,推广应用AM面临如下问题:在小规模团队中卓有成效的许多敏捷化手段,一旦移植到大规模团队,似乎失去了原有的魔力。在敏捷扩展方面,开发并不是最大的难题,要想延续敏捷化的既有效果,需要在很多方面做出改变,比如产品规划、产品管理、组织协同和后期运维等,而实现这些改变需要花费很长的时间。 在这些涉及到传统管理的领域,现有的敏捷方法就显得力不从心,重点在于这种规划、管理、协作也要有快速反应的能力,才能适应这个改变速度越来越快的世界。02
规模化敏捷简介
在大体量组织敏捷化领域,业界进行了多年的探索。巨大而迫切的市场需求,催生了Scrum@Scale、SAFe、Less、DAD等多种适合大型组织的“规模化敏捷”框架。其核心思想就是在经典敏捷开发的基础上增加管理协调的机制。下面就是几种典型的大规模敏捷框架。Scrum@Scale
Scrum@Scale是一个对Scrum进行扩展的框架,由Scrum框架的发明者Jeff Sutherland设计。Scrum@Scale通过使用Scrum来扩展Scrum,彻底简化了规模扩展的设计。它仅仅包含一些Scrum团队,这些团队通过Scrum of Scrums和MetaScrums进行整合。Scrum of Scrums允许Scrum扩展到上百个团队,MetaScrum使得创新产品能快速部署,将Scrum扩展到整个组织。SAFe(Scaled Agile Framework)
SAFe的设计和主要方法论由Dean Leffingwell主导,是目前发展较快的规模化敏捷框架之一,特点是将敏捷实践在企业中分层而治,从团队级(Team level)到项目群级(Program level)乃至投资组合级(Portfolio level);引入了新的角色、组件和事件,糅合了精益-敏捷知识体系。LeSS(Large-Scale Scrum)
LeSS由Craig Larman和Bas Vodde共同设计,框架采用Scrum的基本指导原则,另外采纳了一些其他方法来管理大规模的敏捷项目,是一个轻量级的规模化敏捷框架。LeSS框架想要解决的问题是,如何将Scrum的原则、元素尽可能简单够用地运用到多个团队合作开发产品的场景里去。DAD(Disciplined Agile Delivery)
规范敏捷交付(DAD)基于敏捷和精益原则,由Scott W. Ambler首先提出DAD的概念并领导相应过程框架的开发。DAD包括了人员管理、基于价值的解决方案、增量交付以及持续学习等方法。DAD与其它敏捷框架的区别在于它是一个流程化的解决方案,而其它框架的主要特点是提供一系列的指导原则。DAD帮助团队形成一个已经敏捷和流程化的解决方案。03
SAFe框架介绍
规模化敏捷框架出现的时间不算很长,目前都处在快速发展和演变中。以SAFe为例,SAFe于2011年正式发布1.0版本,历经多次升级,融入了敏捷、精益、系统思考等思想。目前最新版本是2020年发布的5.0版本。 下图是官方网站上所给出的SAFe全景图,展现了SAFe的完整体系、理念和实践原则,如组织级敏捷性、精益组合管理、敏捷产品交付、团队和技术敏捷性、持续学习的文化、精益敏捷领导力七大核心竞争力,以及愿景、路线图、里程碑、共享服务、CoP(由团队成员和其他专家组成的非正式团队)、系统团队、精益用户体验(UX)、度量等重要概念。![68d99fe6db6267adae0b4af4e9989d90.png](https://i-blog.csdnimg.cn/blog_migrate/56ef74ae16a6c8c2f523eacf63b55e9a.png)
04
规模化敏捷借鉴的思路
在规模化敏捷方面,目前并没有哪一种框架能够整体照搬,但是可以从特定切入点入手进行适配,在框架中寻找既能解决组织中目前面临的特定问题,同时对组织现有的架构流程不造成冲击的局部解决方案来进行试点。下面以SAFe框架为例,选取框架中三个可借鉴点进行分析,结合银行研发中心的真实场景,探讨可借鉴之处。敏捷发布火车(ART)
敏捷发布火车的目标是交付持续的价值流。敏捷发布火车通过围绕着一个共同的项目群愿景、使命和待办事项列表来对齐人和工作,将团队对齐到一个共同的商业和技术使命上。 敏捷发布火车(ART)是典型的虚拟组织,它包含定义和交付价值所需要的所有人员,具备定义、实施、测试和部署新系统功能所需要的软件、硬件、固件和其他所有能力。这种方式打破了可能存在的传统职能筒仓。![62998707bedabf825d664bbee6a215e0.png](https://i-blog.csdnimg.cn/blog_migrate/e7757906050f54505c83f1e64f0ce808.png)
PI及PI计划(PI Plan)
在SAFe中把一个ART交付增加价值的时间盒叫做项目群增量,用于构建和验证完整的系统增量,并向客户演示价值从而获得快速反馈。每个PI都利用节奏和同步去达成目标,长度通常是8-12周,是一个固定的节奏。常规的PI模式是4个开发迭代,然后进行一个创新与计划迭代。正如迭代是针对敏捷团队而言的,PI是针对ART而言的。![92bce04c19666412a8fd312952607f5d.png](https://i-blog.csdnimg.cn/blog_migrate/28dc624a7900d958191678ba6b25c149.png)
架构跑道
架构跑道在SAFe体系中是一个很不起眼的概念。敏捷开发一个原则就是避免大规模提前设计(BDUF),而架构跑道的概念提供了一种敏捷架构的方式。SAFe中对架构跑道的定义是:在系统有足够的技术基础、没有过多的重新设计以免导致延迟的前提下,能够支持实现近期高优先级特性时,我们就说有架构跑道的存在。简单地理解,架构跑道就是架构模板,组织级架构库沉淀的最佳实践。对于匹配的特性可以拿来即用,避免重新设计。 架构跑道提供了快速实现新特性的必要技术基础,这是确保开发流动的一个关键使能。但是,架构跑道会不断地被新特性所消耗,因此必须持续投入,通过实施使能不断延长跑道,从而支持新功能的实现。 如果对于架构跑道的投资不足,敏捷发布火车交付价值的过程就会变缓,对于每个特性的交付可能都需要整体的重新设计。另一方面,如果投资过多,则可能会产生永远都用不到的架构“库存”,这些“库存”可能会反过来阻塞系统的正常发展。因此,对于架构跑道的投入需要平衡。 目前,农行研发中心的架构审查制度已经很成熟,贯彻执行也很到位,在架构管控方面发挥了非常重要的决策作用。但是只是对架构进行审查,尚无法支撑架构最佳解决方案的积累和重用。产品的技术手册只是单一技术层面视角,缺少从架构层面出发、组合使用各种基础技术软件匹配领域问题的技术手册,导致不同的团队面对类似的复杂问题需要重复进行架构设计。 为此,我们可以借鉴架构跑道的理念,通过架构跑道提供各级架构方案的样例,包含适用场景、最佳组合方案和使用说明,覆盖从组件级别的组合到系统领域间的架构使用方案。架构跑道的建立,可以让团队在架构设计上敏捷起来,既可以直接沿用已有的架构方案,也可以在已知的架构跑道上演进。即使是新手团队,在跑道内也不容易翻车。架构设计敏捷起来后,带来的明显改进是可以缩短设计周期,进一步提升效率,并且设计质量可以得到保障。05
规模化敏捷的展望
类似于SAFe这样的规模化敏捷框架的出现,并且经过几年的演化,已经建立起了一套完整的整体框架、流程和可落地实施的方案。SAFe在敏捷社区被赞誉为在组织层面上能够与 Scrum 相媲美,并且得到了若干厂商的支持。SAFe目前所具备的工具支持、冠名厂商支持、认证计划和官方标准,这一整套都为大型组织的规模化敏捷提供了实践指南。 然而,社区中并不是只有对SAFe的赞誉。实际上,有些成员表现出一定的负面反馈。比如SAFe试图建立规模化敏捷的标准化框架,随着版本的演化,体系越来越庞大,导致SAFe自身变得不怎么敏捷,让初识框架的新手无所适从。 当前,把以SAFe为代表的规模化敏捷框架定论为日臻完善可能过于乐观,但是可以肯定的是,这些框架已经进入成熟期。SAFe、Scrum@Scale、Less,DAD各具特点,都具备适合其生长的特定土壤。大型组织所面临的规模化敏捷挑战越来越迫切,规模化敏捷框架面临的挑战已经不再是理论的演化,而是去迎接现实世界实践的洗礼。规模化敏捷会不会像Scrum一样星火燎原,未来拭目以待。(来自:我们的开心)