SAFe(Scaled Agile Framework)学习笔记

news/2024/4/16 20:10:25/文章来源:https://blog.csdn.net/chancein007/article/details/129209419

1.SAFe 概述

SAFe(Scaled Agile Framework)是一种面向大型企业的敏捷开发框架,旨在协调多个团队和部门的协同工作,以实现高效的软件开发和交付。下面是SAFe框架的简单介绍总结:

SAFe框架包括以下四个层次:

  • Portfolio层:在这个层次上,管理人员确定公司的战略和目标,并负责管理整个组织的资金和资源分配。
  • Program层:在这个层次上,多个团队协同开发一个或多个产品,形成一个“敏捷发布列车(Agile Release Train)”。
  • Team层:在这个层次上,各个团队负责完成特定的功能或任务,并将其集成到产品中。
  • Individual层:在这个层次上,个人在团队中负责实现具体的任务和功能。

SAFe框架的核心理念包括:

  • 敏捷思想:SAFe框架是建立在敏捷思想之上的,包括以人为本、持续交付、迭代和增量开发等。
  • 系统思考:SAFe框架鼓励团队和组织从整体上考虑问题,将复杂的系统分解为更小、更可管理的部分。
  • 持续改进:SAFe框架鼓励团队和组织不断地反思和改进自己的工作方法和流程。
    在这里插入图片描述

SAFe框架中的一些重要概念包括:

  • Agile Release Train(ART):ART是SAFe框架中的一个核心概念,它是一个由多个团队组成的敏捷团队,共同协同开发和交付一个或多个产品。
  • PI Planning:PI Planning是SAFe框架中的一个重要活动,旨在协调多个团队的计划和开发工作,确保整个组织在每个Program Increment期间都能够交付高质量的产品。
  • Feature:在SAFe框架中,Feature指的是一个独立的、完整的、可验证的业务价值,是产品开发的基本单位。
  • Epic:Epic是一个大型的、跨部门的功能集合,需要分解为更小的特性和故事点来实现。

2. SAFe精髓

SAFe(Scaled Agile Framework)是一种广泛使用的敏捷开发框架,SAFe框架的精髓在于它提供了一种协调大规模敏捷开发的方式,并强调价值导向、持续集成和持续交付等敏捷开发的核心原则。它的完整的框架可以帮助团队更好地实施敏捷开发,并提高团队的效率和质量。它的精髓在于:

  • 能够协调大规模敏捷开发:SAFe框架提供了一种能够协调多个团队、多个项目和多个部门的方式,让大规模的敏捷开发变得可行。它提供了一种标准化的流程、角色和术语,使得不同团队之间的协作变得更加容易。

  • 强调价值导向:SAFe框架始终强调价值导向,将客户价值放在最高的位置。它通过价值流分析和价值流管理,帮助团队了解客户需求,同时确保团队开发的功能都是有价值的。

  • 强调持续集成和持续交付:SAFe框架支持敏捷开发的核心原则,包括持续集成和持续交付。它鼓励团队在开发过程中频繁集成代码和测试,使得团队能够快速地检测和解决问题,并让功能能够快速地交付给客户。

  • 提供完整的框架:SAFe框架不仅仅是一种方法论,它是一整套完整的框架,包括组织结构、角色和职责、流程、工具和方法等。这种完整的框架能够帮助团队更好地实施敏捷开发,从而提高团队的效率和质量。

在这里插入图片描述

3. SAFe和SCRUM敏捷流程的相同点和区别

SAFe(Scaled Agile Framework)和Scrum都是敏捷开发的流程方法,它们有一些相同点和区别。

相同点:

  • 都强调团队合作和迭代开发。
  • 都强调在变化和不确定性的环境下快速适应客户需求。
  • 都强调持续集成和自我组织的团队。

区别:

  • 适用范围不同:SAFe框架适用于大规模的企业级应用开发,而Scrum适用于中小型团队的应用开发。
  • 团队组织方式不同:SAFe框架采用了分层的组织结构,包括组织层、价值流层、程序层和团队层;而Scrum则是一种基于团队自我组织的方法,没有固定的组织结构。
  • 角色不同:SAFe框架包括多个角色,如产品经理、产品所有者、系统架构师等;而Scrum则只有三个角色:Scrum Master、产品所有者和开发团队。
  • 流程和文档不同:SAFe框架在流程和文档上比Scrum更加详细和丰富。SAFe框架提供了完整的开发流程、工具和方法,同时也包括了详细的文档,如特性、冲刺计划、冲刺评审、需求文档等;而Scrum只有简单的流程和文档,如产品待办事项、冲刺计划和冲刺回顾等。

SAFe框架和Scrum都是敏捷开发流程方法,它们有相同点和区别。SAFe适用于大规模的企业级应用开发,采用了分层的组织结构、多个角色和详细的流程和文档;而Scrum适用于中小型团队的应用开发,采用了团队自我组织、简单的流程和文档。选择哪种方法应该根据实际需求和项目规模来决定。

4. SAFe框架的完整的开发流程、工具和方法

SAFe(Scaled Agile Framework)框架是一种大规模敏捷开发框架,它包括多个层次和组件,提供了一个完整的、可重复使用的开发流程,旨在帮助组织以一种更加协调的方式交付高质量的软件产品。以下是SAFe框架的完整的开发流程、工具和方法的详细阐述。
在这里插入图片描述

  • 建立组织层(The Organizational Level):SAFe框架的第一步是建立组织层,这是指整个企业或组织的顶层管理,它为整个框架提供了领导力、财务和战略方向。在这一层次,通常需要定义组织的愿景、使命和价值观,并确定企业战略和产品路线图。

  • 建立价值流层(The Value Stream Level):组织层下面是价值流层,它是指一系列相关的价值交付活动,包括产品经理、需求分析、开发、测试和发布等。在这一层次,需要识别所有的价值流和价值流中的价值流程,并为每个流程定义相应的角色、负责人和流程。

  • 建立程序层(The Program Level):程序层是指跨团队的多个敏捷团队,共同协作交付一个共同的产品或解决方案。在这一层次,需要创建一个价值流程组合(Value Stream Solution),并且由一个主要的团队负责领导协调。在程序层中,通常需要制定一个特性路线图(Feature Roadmap),并为每个冲刺(Sprint)制定计划。

  • 建立团队层(The Team Level):团队层是指单个敏捷团队,负责实现特定的需求和开发功能。在这一层次,通常需要采用Scrum方法,包括每日站立会议、Sprint回顾和Sprint计划等。此外,团队层也需要采用XP(Extreme Programming)方法,如测试驱动开发、持续集成等。

采用工具和方法:SAFe框架提供了一些工具和方法,以帮助组织实现敏捷开发。这些工具和方法包括:

  • Agile Release Train:它是一个跨团队的敏捷开发流程,由多个敏捷团队组成,它们协作完成一个共同的目标。

  • PI Planning:它是一个两天的活动,旨在帮助整个团队在一个特定的时间段内协同制定产品

以下是SAFe的三个核心概念Feature Roadmap、Agile Release Train、PI Planning的详细描述。

  • Feature Roadmap
    Feature Roadmap是一个逐步建立的特性路线图,它描述了在一个时间范围内需要交付的所有特性,以及它们的交付时间表。在SAFe框架中,特性是指一个独立的、完整的、可验证的业务价值。Feature Roadmap用于支持跨团队的特性计划,并为组织提供一个总体的特性视图。
    在建立Feature Roadmap时,需要从顶层组织开始,确定组织的战略和产品愿景,然后将其转化为特性的清单。接下来,需要将特性按照其优先级排序,并将它们分配给不同的版本和时间框架,以支持持续的特性开发和交付。

Feature Roadmap是SAFe框架中的一个重要概念,用于协调多个团队的特性计划,并提供整个组织的特性视图。Feature Roadmap是一个逐步建立的特性路线图,它描述了在一个时间范围内需要交付的所有特性,以及它们的交付时间表。在SAFe框架中,特性是指一个独立的、完整的、可验证的业务价值。

下面是一个例子来说明Feature Roadmap的使用。

假设我们是一个电商公司,我们决定使用SAFe框架来开发我们的电商平台。首先,我们需要确定我们的产品愿景和战略目标,例如,“成为一个全球领先的电商平台,提供最好的购物体验和服务”。

接下来,我们需要将这个战略目标转化为可行的特性清单。例如,我们的特性清单可能包括:

购物车功能:允许用户将多个商品添加到购物车中,然后一起结账。

支付系统:提供多种支付方式,并确保安全的支付流程。

会员中心:允许用户注册成为会员,并提供个性化的推荐服务和折扣。

物流跟踪:允许用户跟踪他们的订单,并提供实时的物流信息。

社交媒体功能:允许用户分享他们的购物体验,并与其他用户互动。

接下来,我们需要将这些特性按照优先级进行排序,并将它们分配到不同的版本和时间框架中。例如,我们可以将购物车功能和支付系统功能分配到第一个PI(Program Increment),会员中心和物流跟踪功能分配到第二个PI,社交媒体功能分配到第三个PI。

在制定Feature Roadmap时,我们还需要考虑到不同团队的资源和能力。例如,我们可以将购物车功能分配给前端开发团队,支付系统分配给后端开发团队,会员中心分配给个性化推荐团队等等。

通过Feature Roadmap,我们可以实现多个团队的协同开发,使得整个电商平台的开发过程更加协调和高效。同时,Feature Roadmap还可以帮助我们确保开发出的特性是有价值的,并符合我们的战略目标。

  • Agile Release Train

Agile Release Train(ART)是一个跨团队的敏捷开发流程,它由多个敏捷团队组成,这些团队协同完成一个共同的目标。ART是一个按照时间表和版本进行协调的团队集合,它的目标是为客户和利益相关者提供一个可预测的交付周期。

ART的时间表通常是由PI(Program Increment)计划来确定的,PI计划是一个12周的开发周期,用于支持跨团队的协同计划。ART中的所有团队都必须遵循共同的开发流程和规范,包括同步冲刺计划、协作开发、持续集成、系统演示和回顾等。
ART是SAFe框架的核心,它提供了一种可重复使用的、可预测的交付方法,使团队能够快速适应不断变化的市场需求。

假设一个公司正在开发一个电子商务平台,该平台需要多个团队的协同开发。为了实现高效的协同开发和交付,公司决定采用SAFe框架,并将所有相关团队组织成一个Agile Release Train(ART)。

在这个ART中,每个Program Increment(PI)的时间长度为12周。在每个PI开始之前,所有的团队都会参加一次PI Planning活动,以确定该PI期间的目标和计划。

在这个例子中,ART包括以下四个团队:

  • Web团队:负责开发和维护电子商务平台的网站前端,包括网页设计、交互设计、前端开发等工作。

  • API团队:负责开发和维护电子商务平台的API接口,包括后端开发、数据库设计等工作。

  • 移动端团队:负责开发和维护电子商务平台的移动端应用,包括iOS和Android两个平台。

  • 测试团队:负责进行各种类型的测试,包括自动化测试、手动测试、性能测试等工作。

在每个PI期间,每个团队都会完成一些特定的Feature和User Story。在每个团队内部,他们会采用Scrum框架进行敏捷开发,包括Daily Scrum、Sprint Planning、Sprint Review和Sprint Retrospective等活动。

在ART层面,所有团队的工作会在PI Planning活动中进行协调,以确保整个平台能够在每个PI期间内按时交付高质量的软件产品。同时,ART还会定期进行系统演示、系统整合和系统验证等活动,以确保各个团队的工作能够顺利集成和交付。

  • PI Planning

PI Planning是一个由整个ART团队参与的两天活动,旨在帮助整个团队在一个特定的时间段内协同制定产品和特性的开发计划。PI Planning在SAFe框架中是非常重要的,因为它为团队提供了一个统一的、协同的计划视图。

在PI Planning期间,团队将一起评估当前的状态,审查特性清单,并确定下一个PI的目标。团队会根据当前的业务需求和愿景,制定一个可行的开发计划,并将计划分配给不同团队。

在PI Planning活动中,所有团队会参加一个两天的会议。第一天会议的重点是确定ART的目标和里程碑,以及确定每个团队的贡献和计划。在这个过程中,团队会制定一个PI Objectives,也就是该PI期间希望完成的具体目标和计划。

例如,在上面的例子中,前端团队的PI Objectives可能是实现一些新的UI特效和优化用户体验,后端团队的PI Objectives可能是实现一些新的数据处理和查询功能,移动端团队的PI Objectives可能是实现一些新的移动端特性和提升应用性能。

第二天的会议重点是确定团队的迭代计划和任务分配。在这个过程中,团队会制定一个详细的迭代计划,包括迭代期间需要完成的具体User Story和任务,以及团队成员之间的工作分配和时间安排。

例如,在这个例子中,前端团队的迭代计划可能包括实现一个新的购物车功能和一个商品详情页面,后端团队的迭代计划可能包括实现一个新的用户登录和数据备份功能,移动端团队的迭代计划可能包括实现一个新的消息推送和应用性能优化。

通过PI Planning活动,所有团队能够清晰地了解ART的目标和计划,以及各自的贡献和任务分配。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_73764.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LVGL】学习笔记--(1)Keil中嵌入式系统移植LVGL

一 LVGL简介最近emwin用的比较烦躁,同时被LVGL酷炫的界面吸引到了,所以准备换用LVGL试试水。LVGL(轻量级和通用图形库)是一个免费和开源的图形库,它提供了创建嵌入式GUI所需的一切,具有易于使用的图形元素,美丽的视觉效…

Unable to connect to Redis无法连接到Redis

文章目录项目场景:问题描述原因分析:解决方案:项目场景: 提示:这里简述项目相关背景: 在某个项目中的提交按钮不好用 org.springframework.data.redis.RedisConnectionFailureException: Unable to con…

程序员必备的软技能-金字塔原理拆解(上)

原书 290千字,本文预计 14千字,拆解比 20:1,预计阅读时长 15分钟序言日常工作中,常常因为思维、表达方式不对产生不想要的结果:写了一个小时的周报,领导却不满意?跟团队讲了半天自己…

go module构建项目

在go 1.11版本中引入了Go Module内置的包管理模块,是GOPATH的替代品,集成了版本控制和软件包分发支持的功能。即go使用modules管理依赖,项目依赖构建时不需要再依赖GOPATH环境变量。 要使用go module首先要激活modules .升级go到1.11版本 .这…

Mac电脑_GitHub提交项目至仓库

第一步(准备工作): Mac 电脑自带 git , 无需安装 1. 创建一个项目 demo1 在 github 上 2. 创建 ssh 密钥 打开终端: ssh-keygen -t rsa -C "your_emailyouremail.com" 此处输入两次密码, 直接…

MyBatis-常用SQL操作

一、动态SQL 1.概述】 1.1动态SQL: 是 MyBatis 的强大特性之一,解决拼接动态SQL时候的难题,提高开发效 1.2分类: if choose(when,otherwise) trim(where,set) foreach 2.if 2.1 做 where 语句后面条件查询的,if 语句是可以…

【Java基础 下】 027 -- 异常、File、综合案例

目录 一、异常 1、异常的分类 ①、Error ②、Exception ③、小结 2、编译时异常和运行时异常 ①、编译时异常 ②、运行时异常 ③、为什么异常要分成编译时异常和运行时异常? ④、小结(运行时异常和编译时异常的区别) 3、异常的作用 ①、查看b…

WindowsPowerShell 停止、启动、暂停和重启服务、卸载服务

PowerShell 停止、启动、暂停和重启服务、卸载服务 PowerShell 停止、启动、暂停和重启服务 官文 powershell卸载服务 官文 目录PowerShell 停止、启动、暂停和重启服务、卸载服务停止、启动、暂停和重启停止服务启动服务暂停服务重启服务卸载移除服务停止、启动、暂停、重启…

4EVERLAND:ERC-721 Token的存储选择

4EVERLAND:一个 Web3 基础设施,可促进项目更轻松、更快速地托管前端、存储数据/NFT/文件,并在 IPFS、Arweave 和 Dfinity 之上访问它们。 NFT , 数字所有权 使用以太坊标准的 NFT 创新ERC-721解决了互联网内容的主要问题之一:所…

想成为一名专业黑客,但不知道从哪里学起?我来教你。

成为一名黑客需要学什么? 想成为一名专业黑客,但不知道从哪里学起”很多人在后台问过这个问题,今天就为你介绍成为专业黑客必须学习的十个方面的知识,希望能为迷惘中的你指明方向。 想要成为网络hacker黑客?先来学习…

测试员拿到新项目怎么着手测试?不要慌,照做准没错

一、目标 结合公司现有的项目情况制定合理规范的测试流程,提高测试效率和产品质量,尽可能减少客户对产品的问题反馈, 核心还是要加强项目组成员之间的工作交流和沟通,保证整个项目的高效率的按质按量的交付。 二、测试流程说明…

【Unity VR开发】结合VRTK4.0:创建物理按钮

语录: 如今我努力奔跑,不过是为了追上那个曾经被寄予厚望的自己 前言: 使用线性关节驱动器和碰撞体从动器可以轻松创建基于物理的按钮,以使交互者能够在物理上按下按钮控件,然后挂钩到驱动器事件中以了解按钮何时被按…

【PyQt5图形界面编程(2)】:创建工程

创建工程 一、创建工程二、开始开发1、运行Qt5Designer,创建QT窗口2、运行pyUIC,转换xx.ui成xx.py3、main.py中引用xx.py中的类4、打包main.py成main.exe来发布5、执行终端报警处理方法三、其他(如果涉及)1、配置环境变量一、创建工程 采用虚拟环境来创建工程 相关的paka…

MyBatis学习笔记(五) —— MyBatis获取参数值的两种方式

5、MyBatis获取参数值的两种方式 MyBatis获取参数值的两种方式:${} 和 #{} ${} 的本质就是字符串拼接, #{} 的本质就是占位符赋值 ${} 使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号&a…

SpringBoot整合阿里云OSS文件上传、下载、查看、删除

SpringBoot整合阿里云OSS文件上传、下载、查看、删除1、开发准备1.1 前置知识1.2 环境参数1.3 你能学到什么2. 使用阿里云OSS2.1 创建Bucket2.2 管理文件2.3 阿里云OSS文档3. 项目初始化3.1 创建SpringBoot项目3.2 Maven依赖3.3 安装lombok插件4. 后端服务编写4.1 阿里云OSS配置…

4面美团软件测试工程师,却忽略了这一点,直接让我前功尽弃

说一下我面试别人时候的思路 反过来理解,就是面试时候应该注意哪些东西;用加粗部分标注了 一般面试分为这么几个部分: 一、自我介绍 这部分一般人喜欢讲很多,其实没必要。大约5分钟内说清楚自己的职业经历,自己的核…

自动驾驶仿真测试介绍

作者 | 楼泽如 上海控安可信软件创新研究院研发工程师 来源 | 鉴源实验室 01 引 言 自动驾驶汽车的兴起,正在重新定义汽车行业。随着自动驾驶技术的发展,自动驾驶汽车将会大大提升交通安全、减少事故发生、减少交通拥堵、提高公路容量等等&#xff0…

Java学习笔记 --- 正则表达式

一、体验正则表达式 package com.javase.regexp;import java.util.regex.Matcher; import java.util.regex.Pattern;/*** 体验正则表达式,给文本处理带来哪些便利*/ public class Regexp_ {public static void main(String[] args) {//假设,编写了爬虫&…

Linux——UDP协议与相关套接字编程

一.概念在网络通信中,传输层中最常用的通信协议有两个:TCP协议与UDP协议。这两种协议虽然都可以用于网络通信,但是通信方式不同决定了应用场景的不同。与TCP协议相比,UDP协议最具特色的不同点有两个:无连接与面向数据报…

码住!新手容易上手的5个tiktok数据分析网站

当下短视频已经称霸了各大内容平台,越来越多的创作者进入到短视频赛道,为了更好地运营自己的内容平台,数据分析是必不可少的。很多人都入局了tiktok,对于商家或者博主红人来说,这是比较新平台,希望能在这个…