300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 8.敏捷软件开发框架 - 规模化敏捷框架SAFe

8.敏捷软件开发框架 - 规模化敏捷框架SAFe

时间:2019-11-05 05:46:01

相关推荐

8.敏捷软件开发框架 - 规模化敏捷框架SAFe

规模化敏捷框架(Scaled Agile Framework,SAFe)解决成百上千、成千上万人的组织如何敏捷的问题,它是一个可扩展的、可配置的框架,帮助组织在尽可能短的前置时间内,以最好的质量、最大化的价值,可持续地交付新的产品、服务和解决方案。

SAFe来源于四大知识体系:

(1)精益产品开发——包括精益思想、丰田生产系统、精益生产、精益产品开发流、精益创业、看板方法、精益用户体验等。

(2)敏捷开发——包括敏捷开发宣言里的敏捷价值观、敏捷十二原则、Scrum、极限编程等。

(3)DevOps——包括持续交付流水线、按需发布等。

(4)系统思考——全局考虑由个人、团队、项目群和业务部门等所构成的组织系统,以及由组织所开发的软件系统,并避免局部优化。

SAFe包含精益企业的5种核心能力,而每种能力其实也代表了SAFe框架中的一个构造块,SAFe全景图如图2-25所示。

资料来源:《SAFe白皮书》(/resources/safe-whitepaper/)。

(1)SAFe框架的基础构造块,位于全景图的底部,带来“精益—敏捷领导力(Lean-Agile Leadership)”能力。

(2)团队层(Team),带来“团队敏捷力和技术敏捷力(Team and Technical Agility)”能力。

(3)项目群层(Program),带来“DevOps和按需发布(DevOps and Release on Demand)”能力。

(4)大型解决方案层(Large Solution),带来“业务解决方案和精益系统工程(Business Solutions and Lean SystemsEngineering)”能力。

(5)投资组合层(Portfolio),带来“精益投资组合管理(Lean Portfolio Management)”能力。

2.5.4.1 精益—敏捷领导力

企业成功的最终责任,以及由此带来的对工作方式的任何重大改变,都取决于精益—敏捷领导者。所以精益—敏捷领导力是SAFe的基础,它描述了精益—敏捷领导者如何通过授权个人和团队以达到最大的潜力,来推动和保持组织变革和运作卓越。他们通过学习、展示、培训和辅导SAFe的价值观、精益—敏捷思维和原则,以及实践来做到这一点。

如图2-26所示,精益—敏捷领导者需要转变思维,由命令控制型领导转变成服务型领导,来开发和发展人才。精益—敏捷领导者是终身学习者和老师,领导者首先必须被培训,然后成为这些精益的思考方式和运作方式的培训师。同时,SAFe咨询顾问采用SAFe实施路线图,引领整个组织的敏捷转型。

资料来源:/lean-agile-leadership/。

1.体现核心价值观

(1)协调一致(Alignment)——当管理层和团队都统一到一个共同的使命上时,所有的精力都是用来帮助客户的。在成百上千人的团队环境中,协调一致使所有相关人员都对齐和理解了使命的意图,并使各团队能够对目标、计划和团队间的依赖达成一致,专注于如何完成任务。

(2)内建质量(Built-in Quality)——内建质量实践可以提高客户满意度,并提供更快速、更可预测的价值交付。在规模化场景中,每个小团队的代码都需要内建质量,以此为基础,才能使多个小团队集成的代码具有内建质量。没有内建质量,在可持续的最短前置时间内,最大化价值这个精益目标是无法实现的。

(3)透明(Transparency)——通过可视化所有相关工作,透明建立信任。信任使团队可以做出快速的、去中心化的本地决策,得到更高级别的授权,并且获得员工更高的参与度。同时,透明可以简化复杂的产品开发流程,降低协调成本,充分利用群体智慧及自主的个体,让一线本地各团队利用透明的信息直接解决问题,而不需要转交到其他人或者升级到管理层。

(4)项目群执行(Program Execution)——为了实现更广泛的变革,整个开发价值流(从概念到发布)必须变得更精益、更能响应变化来支持创新、速度和敏捷性。项目群是落地执行的核心,它需要有纪律、有规范地执行,并且按照敏捷发布火车的方式持续进行迭代开发和交付。领导者参与项目群执行,积极消除障碍和消极因素。

2.拥抱精益—敏捷思维

精益—敏捷思维在SAFe的精益之屋(House of Lean)和敏捷宣言里有很好的体现,如图2-27所示。

资料来源:/lean-agile-leadership/。

(1)精益思维——精益之屋说明了精益思维的各方面。屋顶代表了创造价值的目标,而4个支柱则体现了对人与文化、流动、创新和坚持不懈地改进,以支持这一目标。精益—敏捷的领导力提供了基础,是精益思维落地的基石。

(2)拥抱敏捷——敏捷宣言提供了一个价值体系和12条原则,这对成功的敏捷开发至关重要。SAFe采用跨职能敏捷团队,并建立在敏捷的价值观、原则之上。每个领导者都必须支持和加强敏捷的意图和实践。

3.应用SAFe原则

SAFe的实践以9个基本原则为基础,这些原则启发了框架中的所有概念,如下所述。

(1)采取经济视角(Take an economic view);

(2)运用系统思考(Apply systems thinking);

(3)假设可变性,保留多种选项(Assume variability,preserve options);

(4)通过快速、集成的学习周期,进行增量式构建(Buildincrementally with fast,integrated learning cycles);

(5)基于可工作系统客观评估的里程碑(Base milestones onobjective evaluation of working systems);

(6)可视化和限制在制品(WIP),减少批次规模,并管理队列长度(Visualize and limit WIP,reduce batch sizes,andmanage queue lengths);

(7)应用节奏,通过跨领域计划同步(Apply cadence,synchronize with cross-domain planning);

(8)释放知识工作者的内在动力(Unlock the intrinsicmotivation of knowledge workers);

(9)去中心化的分散决策(Decentralize decision-making)。

4.SAFe配置

精益—敏捷领导者通过SAFe实施路线图引领组织的敏捷转型,同时认证SAFe咨询顾问(Certified SAFe ProgramConsultant,SPC)作为内部的变革推动者进行SAFe的布道,并辅导团队按照SAFe的实践来运作。

SAFe是一个可扩展、可配置的框架,每个组织在敏捷转型的时候,都可以根据业务需要来适配框架,即将SAFe的各层级或者5种能力进行组合。如图2-28所示,SAFe提供了4种开箱即用的配置来支持需要小型团队的简单系统的开发,以及需要成百上千、成千上万人的复杂系统或解决方案的开发。

资料来源:《SAFe白皮书》(/resources/safe-whitepaper/)。

(1)基本SAFe(Essential SAFe)——框架的核心,也是实施SAFe最简单的起点,适合百人级别的系统开发。这是所有其他SAFe配置的基本组成部分,由团队层和项目群层组成,为企业带来“精益—敏捷领导力”“团队敏捷力和技术敏捷力”“DevOps和按需发布”等核心能力。

(2)大型解决方案SAFe(Large Solution SAFe)——用于开发最大和最复杂的解决方案,通常需要多个敏捷发布火车(Agile Release Train,ART)和供应商,适合上千人的解决方案开发。它由团队层、项目群层和大型解决方案层组成,为企业带来“精益—敏捷领导力”“团队敏捷力和技术敏捷力”“DevOps和按需发布”“业务解决方案和精益系统工程”等能力。

(3)投资组合SAFe(Portfolio SAFe)——围绕价值的流动组织敏捷开发,通过一个或多个价值流,帮助投资组合执行与企业战略保持一致,适合成百上千人的多个系统的开发。它由团队层、项目群层和投资组合层组成,带来“精益—敏捷领导力”“团队敏捷力和技术敏捷力”“DevOps和按需发布”“精益投资组合管理”能力。

(4)完整SAFe(Full SAFe)——SAFe框架最全面的版本。它支持那些需要投资组合管理的企业,适合上千人的大型集成解决方案开发。它包括SAFe的所有层级:团队层、项目群层、大型解决方案和投资组合,集成和带来所有的5种核心能力。

每种配置都由全景图左侧的“跨层级面板”(SpanningPalette)支持,包含所需的角色和工件等元素。

2.5.4.2 团队敏捷力和技术敏捷力

团队敏捷力和技术敏捷力,指的是团队层需要具备的能力,如图2-29所示。

资料来源:/。

每个敏捷团队都是跨职能自组织的团队,包括产品负责人、开发团队和Scrum Master,按照Scrum执行为期2周的迭代或者采用看板方法进行交付,形成团队敏捷力。另外,采用内建质量实践形成技术敏捷力,如敏捷建模、设计模式、极限编程相关代码质量实践、测试驱动开发TDD、行为驱动开发BDD等。

2.5.4.3 DevOps和按需发布

DevOps和按需发布能力,体现在项目群层,围绕价值交付的价值流来组织多个敏捷团队(5~9人),这些敏捷团队构成一个大的敏捷团队(50~125人),形成了敏捷发布火车。SAFeDevOps和按需发布如图2-30所示。

资料来源:/。

ART采用项目群增量(Program Increment,PI)时间盒,通常包含5个2周迭代。其中,4个迭代是对软件系统进行迭代;第5个迭代进行创新和对下一个PI时间盒的规划,称为创新与计划迭代(Innovation and Planning,IP)。敏捷发布火车上的所有人(上百人)一起在一个大房间里进行为期2天的会议——PI计划会议(PI Planning),来规划这4个迭代。

PI计划会议将所有的利益相关者统一到一个共同的技术和业务愿景中,授权团队协作制订出达成目标的最佳计划。PI计划采取总分总的方式,首先所有人面对统一输入共同开会,然后每个小的敏捷团队并行地规划自己团队的4个迭代,在过程中团队与团队之间直接进行对话、协调、同步团队间的依赖和计划,在最后汇总的时候,每个团队面对所有其他团队展示自己的计划。SAFePI计划会议议程如图2-31所示。

1.第一天议程

(1)业务背景——高级管理人员/业务线负责人描述业务的当前状态,并介绍现有解决方案在多大程度上满足当前客户需要。

(2)产品/解决方案愿景——产品管理者介绍当前的愿景、下一个PI的目标,以及特性(Feature)的优先级。如果有多个产品经理,可能每个人都需要针对他们负责的领域,进行愿景和高优先级特性的陈述。

(3)架构愿景和开发实践——系统架构师/工程师介绍架构愿景,包括通用基础设施的新架构、大规模重构,以及系统级的非功能性需求。此外,高级开发经理可能会对下一个PI要推进的敏捷工程实践进行介绍,如测试自动化、DevOps、持续集成和持续部署等实践。

(4)计划背景和午餐——发布火车工程师介绍会议的流程和预期结果。

(5)第一次团队突破——每个敏捷团队针对4个迭代,分别对每个迭代估计迭代的容量(速度),并确定需要实现特性(Feature)的故事(Story)。按照故事的优先级,将故事规划到4个迭代,并识别风险和依赖,起草团队的初始PI目标。

(6)计划草案评审——所有团队重新聚在一起评审各组计划,每个团队依次展示团队的PI计划,包括每个迭代的速度(容量)、负载、PI目标、项目群风险和障碍。

(7)管理者评审和解决问题——管理者、产品经理、产品负责人、敏捷发布火车工程师、Scrum Mater及团队代表等关键利益相关者留下来,一起评审范围、资源约束、瓶颈、过度依赖、过度承诺,以及团队负载不均衡等挑战,为了解决这些问题,做出必要的决策。

2.第二天议程

(1)计划调整——第二天,在会议开始时管理者描述范围、优先级、计划和里程碑及人员的任何变化。

(2)第二次团队突破——团队继续根据前一天的议程进行规划,进行适当的调整。最终确定迭代计划和PI目标,整合项目群风险、障碍,以及依赖关系。所有特性及跨团队依赖更新到如图2-32所示的Program Board(项目群看板)上。业务负责人对PI目标的业务价值打分(1~10分)。

资料来源:《SAFe4.0参考指南》。

(3)最终计划评审和午餐——每个团队向其他所有团队展示他们的计划,说明他们的迭代速度(容量)和负载、带有业务价值的PI目标、项目群风险和障碍。

(4)项目群风险——在计划期间,团队已识别可能影响目标达成的项目群级风险和障碍。这些问题是团队层不能解决的问题,需要在整个敏捷发布火车前解决。讨论每项风险或障碍,并划分为以下ROAM类别中的一类:

①已解决(Resolved)——团队同意该问题不再是一个问题。

②已承担(Owned)——该风险无法在会议上解决,但会有负责人会后跟踪处理。

③已接受(Accepted)——有些风险就是事实或者可能发生的问题,必须被理解和接受。

④已减轻(Mitigated)——团队可以制订一个计划来缓解影响。

(5)信心投票——每个团队用“五指拳”对他们实现项目群PI目标的信心进行投票。一根到五根手指代表不同的信心程度。如果信心投票平均少于三根手指,那么计划需要重新调整;任何人如果伸出一根或两根手指,就需要给其机会在所有人面前指出风险。

(6)必要时重做计划——如有必要,团队需要重做他们的计划,直到达到较高的信心程度。在这种情况下,达成一致和承诺比遵守时间盒更有价值。

(7)计划回顾和向前推进——最后,发布火车工程师RTE引导对PI计划会议的简要回顾,讨论哪些做得好、哪些做得不好,以及下次可以做得更好,以此持续改进PI计划会议。

敏捷发布火车在迭代过程中,采用自动化的持续交付流水线,进行持续探索、持续集成和持续部署,并在业务需要的时候,按需发布。SAFe持续交付流水线如图2-33所示。

资料来源:/。

2.5.4.4 业务解决方案和精益系统工程

业务解决方案和精益系统工程能力体现在大型解决方案层,当需要成千上万人开发最大和最复杂的解决方案时,通常需要多个敏捷发布火车和供应商,如图2-34所示。

资料来源:/。

大型解决方案对于航空航天和国防、汽车和政府等行业比较常见,并且通常会采用精益系统工程(System Engineering)来综合考虑不同组件、固件、硬件之间的关系,以及整体的建模设计和迭代。如图2-35所示的SAFe解决方案火车示例,包含了终端设备、云端方案、第三方供应商提供的软件包、第三方供应商提供的汽车感应器,以及自研的无人驾驶汽车等。

资料来源:/business-solutions-and-lean-systems。

业务解决方案和精益系统工程能力进一步提供了8个实践:

(1)采用ART来构建解决方案组件和能力,多个ART交付的内容组成了解决方案。

(2)使用解决方案火车来构建和集成解决方案,以此聚焦解决方案整体的交付。

(3)解决方案意图(Solution Intent)这个存储库(解决方案意图的详细信息,包括非功能性需求、接口定义、架构,以及每个ART需要开发的需求等)持续优化系统规格说明书。已经实现的功能更新在存储库中,未实现的功能是可变的,随着迭代不断打磨。

(4)运用多个地平线(Horizon)规划近期比较详细和固定的内容,以及未来中期和长期比较粗略和变化的内容,通常采用解决方案路线图,以及解决方案火车ARTPI路线图的方式来规划当下和远景

(5)解决方案架构师采用演进架构方式代替前期大量设计,但是也持续进行轻量级的、刻意的架构设计,来支持解决方案的规模化、模块化、重用性和服务化

(6)应用“系统的系统(Systems of Systems)”思维管理供应商,将其视为交付一个系统的、虚拟的ART,和交付其他系统的组织内部的ART,一起纳入交付整体解决方案的解决方案火车内进行管理。

(7)应用持续集成,在PI周期内多次部分或者完整地集成解决方案,在PI结束的时候进行完整的端到端解决方案集成。

(8)持续每个迭代都处理合规关注点,代替一次性的发布前关注内控合规要求。

2.5.4.5 精益投资组合管理

精益投资组合管理(Lean Portfolio Management,LPM)能力体现在投资组合层,每个SAFe投资组合,围绕价值的流动,通过一个或多个开发价值流,将战略与执行保持一致,如图2-36所示。

资料来源:/。

投资组合层为价值流定义战略主题,通过战略主题形成实施战略的较大规模的举措,即史诗(Epic),并采用滚动式的精益预算为价值流上交付解决方案的人员和资源提供资金。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。