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的目标和计划,以及各自的贡献和任务分配。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐