企业级敏捷框架:业务驱动型敏捷与产品需求团队

news2024/12/23 13:01:16

本文介绍了一种新的企业级敏捷框架——业务驱动型敏捷(Business-driven Agile)与 PRT(Product Requirement Team),旨在解决传统敏捷方法中需求定义的瓶颈,从而提升产品价值并提高开发效率。原文: A new enterprise Agile framework: Business-driven Agile with PRT (Product Requirement Team)[1]

在作为 Scrum Master 改造了几个敏捷项目之后,我意识到所有项目都面临着相同的瓶颈,那就是“需求应该由谁定义?”以及“如何高效定义需求?”尽管官方 Scrum 指南明确指出,产品负责人(Product Owner)负责产品 Backlog 的管理,但并没有明确谁应该定义需求以及如何定义需求。通常情况下,由于频繁的会议和沟通,产品负责人无暇定义所有详细需求,而由开发人员定义则会减少开发时间,降低开发速度。值得注意的是,当项目规模扩大时,这个问题会变得更加突出。因此,本文将创建一个新的企业级敏捷框架,名为“业务驱动型敏捷与 PRT(产品需求团队)”(简而言之,业务驱动敏捷),以解决这一问题。

什么是采用 PRT 的业务驱动型敏捷框架?

业务驱动型敏捷框架是一种新的企业级敏捷框架,它设置了 PRT(Product Requirement Team,产品需求团队),明确了如何有效定义需求,以提高效率并最大化产品价值。如前所述,业务驱动型敏捷的主要目的是简化需求定义过程,而这往往是开发的瓶颈,据我所知目前还没有相关框架。

业务驱动型敏捷基于 Scrum,因此继承了 Scrum 的价值观、角色和实践。业务驱动型敏捷可用于单个 Scrum 团队,但在大规模团队中效果更好,因为需求定义过程往往是瓶颈。要了解业务驱动型敏捷如何运作,需要了解如何定义需求和附加角色,下面将对此进行解释。

需求的 3 个基本组成部分

在不同软件项目中,定义需求的方法大相径庭,很多人都有自己的方法。然而,除非有令人信服的理由,否则应避免使用独创的方法,因为这些方法通常无效,会造成重复劳动,应该尽量遵循最佳实践。

业务驱动型敏捷定义了定义需求的三个基本组成部分:用户故事(User Story)、验收标准(Acceptance Criteria)和视觉图像(Visual Image)。长期以来,用户故事和验收标准一直作为敏捷最佳实践被广泛应用,而视觉图像则是软件项目中普遍需要的。

用户故事

用户故事(User Story)是一个简单的单行句子,概括的描述了用户想用产品做什么以及为什么。它最初是作为 XP(极限编程)的实践之一而产生,并被用于各种敏捷框架中,这是一种涵盖所有重要方面(谁、做什么、为什么)的强大描述。首先创建用户故事,然后根据用户故事进行讨论。用户故事有标准格式,如下面的登录示例。

[结构] 作为……,我希望……,以便……。

[示例] 作为用户,我想用电子邮件和密码登录平台,以便安全的使用平台。

验收标准

验收标准是支持用户故事的详细要求,将用于验收测试。这意味着验收标准扮演了两种角色:详细需求和验收测试。这种方法非常有效,因为在瀑布式项目中,它们通常是分开编写的,这会造成工作和文档的重复。首先编写验收标准被称为 BDD(Behaviour-Driven Development,行为驱动开发),其概念源于 TDD(Test-Driven Development,测试驱动开发),明确了产品应如何满足用户的期望。

编写有效的验收标准是业务驱动型敏捷的关键,因为这是最具挑战性的过程,需要技巧和时间。说到由谁来写,总是会引起争议。虽然产品负责人是合适的人选,但他往往忙于工作,无暇编写验收标准。由开发人员编写则会减少编码时间,降低开发速度。因此,以业务为导向的敏捷技术设置了一个新角色:需求定义者(Requirement Definers),稍后将对此进行解释。

强烈推荐使用 Cucumber 创始人 Aslak Hellesøy 创建的 “小黄瓜语法(Gherkin Syntax” 来编写验收标准,它涵盖了所有必要的方面:Given(条件)、When(操作)、Then(结果)。

[描述] “情景(Scenario)”描述测试(需求)的内容。“给定(Given)”描述用户采取任何行动前的初始情境或状态。“当(When)”描述用户采取的行动。“然后(Then)”描述用户行动的预期结果或后果。

[示例] 场景:成功登录。给定:用户拥有平台账户。当:用户输入电子邮件地址和密码。然后:按下登录按钮。 然后:成功登录平台。

视觉图像

视觉图像能让团队成员对需求有共同的理解。它可以采取任何形式,如草图、线框或复杂的设计,只要能帮助团队成员直观理解产品的外观和工作方式即可。由于“用户故事”和“验收标准”是基于文本的表达方式,其效果有限,而视觉图像则可以弥补这一不足。人类是高度视觉导向的动物,因此呈现视觉图像有助于我们加深理解。

PRT(产品需求小组)

PRT 负责需求定义并将其正确传达给开发人员。PRT 由产品负责人、需求定义者和设计者组成。下图展示了 PRT 与 Scrum 团队的组成。

alt
产品负责人

产品负责人(Product Owner)的角色与标准 Scrum 相同,负责明确需求并做出决策。虽然设计人员和需求定义人员会帮助产品负责人定义需求,但产品负责人是唯一的决策点,从而避免决策过程的混乱。

产品负责人与设计师、需求定义者、Scrum 团队和利益相关者密切沟通,因此他的主要工作就是与人沟通。

要求定义者

需求定义者(Requirement Definer)是业务驱动型敏捷中新定义的职位,其职责是通过与产品负责人(Product Owner)和设计师密切沟通来定义详细需求。如上所述,详细需求被定义为验收标准,而需求定义者的主要任务就是编写验收标准。

虽然理想情况下需求定义者是专职职位,尤其是在大规模项目中,但当项目无法聘请专职人员时,需求定义者也可以兼任其他职位,如测试人员、设计人员、Scrum Master 等。例如,如果项目预算太紧,无法雇用专职的需求定义者,那么设计人员或测试人员就可以兼任需求定义者,应根据具体业务环境来定义和分配实际职责。

设计师

设计师负责绘制草图、插图或设计图等视觉图像,供整个团队共同理解。人类是高度视觉导向的动物,视觉图像有助于我们理解应该做什么。关键一点是,只要有助于共同的理解,视觉图像可以采取任何形式,其目的是让每个人的理解都保持一致。

整体流程

需求定义的整体流程如下图所示。通常,产品负责人首先根据利益相关者的想法创建用户故事。然后,设计师和需求定义者制作视觉图像和验收标准。尽管图中是顺序排列,但通常需要反复来回多次。

alt
何时定义需求

需求定义应在 Sprint 之前进行,所需时间与 Sprint 相同。例如,如果项目 Sprint 为期一周,那么需求定义应该在前一周完成。这是因为需求定义所需时间通常比我们预期的要多,而且精确的需求定义对估算、优先级排序和范围管理都很重要。

Sprint 计划是团队确定 Sprint Backlog 的地方,Sprint Backlog 是选定的 PBI(Product Backlog Items,产品待办事项),预计在即将到来的 Sprint 中完成。换句话说,在敏捷中,范围是根据 Sprint 来控制,而 Sprint Backlog 就是 Sprint 的实际范围。需求、估算和优先级应被定义为确定 Sprint Backlog 的输入。这意味着团队不仅要确定需求,还要在前一周确定估算和优先级。由于这些要素相互交织,因此通常需要来回讨论。下图说明了 Sprint 计划的整体流程。

alt
大规模模式

业务驱动型敏捷的设计是为了扩展,因为当项目规模变大时,需求定义过程往往会成为瓶颈,不过可以应用于单个团队。虽然 PRT 的架构不会改变,但需求定义者和设计者的数量会根据 Scrum 团队的规模和数量进行调整。下图描述了大规模团队架构。

alt

即使项目规模扩大,产品负责人仍然是一个人,而不是委员会,以明确谁应该做出决策,防止决策过程中出现混乱。

采用 PRT 的业务驱动型敏捷实践

业务驱动型敏捷项目设置了多种实践,以最大限度提高产品价值和管理效率,这些实践包括 BDD、看板和路线图、无故事点估算和长期决策。

BDD(Behaviour-Driven Development,行为驱动开发)

BDD 是敏捷最佳实践之一,即在编码前编写带有验收标准的验收测试。BDD 明确了产品的行为方式,以满足用户期望以及业务人员和软件工程师之间的共同理解。BDD 是业务驱动型敏捷的核心,是需求的关键要素,能带来准确的估算、决策并防止产生 bug。如前所述,Gherkin Syntax 被强烈推荐用于实践 BDD 和编写验收标准,它是广泛使用的最佳实践。

看板和路线图

业务驱动型敏捷同时使用看板和路线图来管理开发状态和长期业务战略。看板是一种显示开发流程和任务状态的可视化板,在敏捷中被广泛使用。看板适合短期管理,能显示细粒度信息。另一方面,路线图适合中长期管理,能显示详细信息和总体进度,适用于与企业管理层等利益相关者进行讨论。业务驱动型敏捷在有效管理的背景下利用了两者的优势。

无故事点估算

业务驱动型敏捷从不使用故事点进行估算,因为故事点有几个缺陷。最关键的原因是,故事点无法支持产品负责人的决策。虽然估算的最终目的是支持业务决策,但业务人员无法根据故事点做出决定,因为它并不是标准的度量单位。业务驱动型敏捷的目的是加强业务人员与软件工程师之间的协作,最大限度提高产品价值,而故事点并不能帮助实现这两点。

相反,业务驱动型敏捷采用简单、标准的计量单位,如小时、天或周,以便于理解。只要能支持业务决策并让团队成员理解,可以采用任何单位。

长期决策

20 世纪 60 年代末和 70 年代初,人们做了一个著名的实验,叫做“棉花糖试验”,这个实验一直被人们讨论和铭记。一位教授把孩子们一个个放在小房间里,桌子上放着一个棉花糖,并告诉他们:“如果你们能等上 15 分钟,就能得到两个棉花糖。如果等不及,就只能得到一个”。有些孩子能等上 15 分钟,有些孩子却等不了。教授对这些孩子进行了长达数十年的跟踪调查,结果发现,与不能等待的孩子相比,能等待的孩子在经济稳定、学业成绩和事业成功方面都更胜一筹。实验证明,“延迟满足”和“耐心”有助于取得长期成功。

业务驱动型敏捷采用“延迟满足”和“耐心”,从长远角度思考和决策,因为软件项目通常是长期的,而长远思考会带来成功。例如,人们往往会被拖着开发新功能,认为这是“即时满足”,而拖延重构、重新设计数据库和基础设施,或教育下一任领导者。虽然后者不能立竿见影,但从长远看,它们会产生巨大影响。下图是“影响力矩阵(Impact Effort Matrix)”,描述了在短期和长期内哪些是重要的,哪些是不重要的。

alt

结论

采用 PRT(产品需求团队)的业务驱动型敏捷框架是一种新的企业级敏捷框架,可简化需求定义流程(该流程往往成为软件开发的瓶颈),并最大限度的提高产品价值。由谁来定义需求一直是个有争议的问题,因为没有一个敏捷框架能明确这一点。业务驱动型敏捷通过设置 PRT 和描述如何定义需求来解决这个问题。

PRT 由产品负责人、需求定义者和设计者组成。产品负责人的角色与标准 Scrum 并无不同,其主要职责是做出决策,最大限度提高产品价值。需求定义者是新设立的角色,他们通过与产品负责人密切沟通,定义带有验收标准的详细需求。设计人员制作视觉图像,以便共同理解产品的外观和性能。

业务驱动型敏捷还建立了一些实践:BDD、看板和路线图、无故事点估算和长期决策。BDD 是源于 TDD(测试驱动开发)的一种软件开发实践,在编码前定义了产品应如何满足用户期望。看板有助于将开发过程和任务状态可视化,以管理短期开发,而路线图则通过消除细粒度信息来描述长期计划的概况。避免使用故事点,因为它们对业务不友好,不能支持业务决策,而这正是估算的最终目的。最后,团队应决定长期计划,因为软件开发不是短跑,而是马拉松,延迟满足将对长期发展产生巨大影响。


你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。为了方便大家以后能第一时间看到文章,请朋友们关注公众号"DeepNoMind",并设个星标吧,如果能一键三连(转发、点赞、在看),则能给我带来更多的支持和动力,激励我持续写下去,和大家共同成长进步!

参考资料
[1]

A new enterprise Agile framework: Business-driven Agile with PRT (Product Requirement Team): https://medium.com/@eiki1212/a-new-enterprise-agile-framework-business-driven-agile-with-prt-product-requirement-team-ac879d02b0b1

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dynamic-datasource+Mybatis多数据源使用

Gitee地址:dynamic-datasource: 基于 SpringBoot 多数据源 动态数据源 主从分离 快速启动器 支持分布式事务 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency&…

腾讯云AI代码助手:智驭Python,编织代码的诗篇 —— 深度测评体验

文章目录 引言&#x1f496;1. 开发环境介绍&#x1f4bb;vscode安装插件方法一&#xff1a;链接访问下载安装方法二&#xff1a;vscode直接安装 2. 使用实例✨1. &#x1f6e1;️代码补全&#xff0c;分秒必争2. &#x1f4a1; 技术对话&#xff0c;智慧碰撞3. &#x1f527; …

【分享】洁净室环境检测必测项目详细解读

环境监测&#xff08;Environmental monitoring&#xff09;在实现此目标中起着重要的作用——它提供了有关制造环境的关键信息&#xff0c;避免放行可能受污染的产品。 由于环境监测在制造过程中的重要性&#xff0c;相关机构围绕市场活动推出了许多法规要求和指南。这些标准随…

el-table自动滚动到最底部

我的需求是这样的&#xff0c;因为我的表格是动态的&#xff0c;可以手动新增行&#xff0c;固定表头&#xff0c;而且需要一屏显示&#xff0c;为了方便用户就需要再新增的时候表格自动向上滚动。 差了官方文档后发现有一个属性可以支持 这个属性正是自己需要的&#xff0c;所…

朵拉朵尚:坚持深耕护肤领域 荣获2023年度影响力品牌奖

朵拉朵尚&#xff1a;坚持深耕护肤领域 荣获2023年度影响力品牌奖 伴随着经济全球化的浪潮&#xff0c;新产业、新业态、新动能不断涌现&#xff0c;我国化妆品消费也迅速崛起&#xff0c;成为近年来化妆品行业发展增长速度最快的国家。1月30日&#xff0c;朵拉朵尚受邀参加快…

使用 Plotly 创建专业可视化时你应该知道的七个关键功能

欢迎来到雲闪世界。我们习惯于在在线报纸上看到交互式可视化&#xff0c;并且我们经常想知道数据记者使用什么工具来创建这些看起来专业的可视化。事实是&#xff0c;创建这种类型的可视化不需要任何特殊软件&#xff1b;Python 中的大多数交互式可视化库都是高度可定制的&…

Stable Diffusion史诗级更新! WebUI 1.10.0时代来了!

前言 大家好&#xff0c;我是每天分享AI应用的萤火君&#xff01; 前几天 AUTOMATIC1111 发布了Stable Diffusion WebUI 1.10&#xff0c;我也在第一时间将云环境的镜像升级到了最新版本&#xff0c;有兴趣的同学可以去体验下&#xff0c;目前已经发布到了AutoDL&#xff0c;…

博客趣二维码生成器网站源码

这款二维码生成源码可以把电子名片、文本、wifi网络、电子邮件、短信、电话号码、网址等信息生成对应的二维码图片。地图位置二维码生成使用是谷歌地图的api地址&#xff0c;懂程序的可以改成国内地图http://www.bokequ.com/588.html

CST软件如何添加和管理自定义的材料?

经常有用户想手动添加材料到CST软件的材料库&#xff0c;或让CST软件指向自定义的材料库&#xff0c;由于CST软件没有自动追踪用户材料数据的功能&#xff0c;这里就需要用户知道一些小技巧&#xff0c;不然看不到这些材料哦 1. 材料库的路径&#xff1a; 首先解释材料库…

Django中事务的基本使用

1. Django事务处理 事务(Transaction): 是一种将多个数据库操作组合成一个单一工作单元的机制. 如果事务中的所有操作都成功完成, 则这些更改将永久保存到数据库中. 如果事务中的某个操作失败, 则整个事务将回滚到事务开始前的状态, 所有的更改都不会被保存到数据库中. 这对于…

流媒体服务器XMedia插件服务安装使用

XMedia是AMS流媒体服务器的一个插件服务&#xff0c;可以扩展支持 FLV 、GB28181上传、WEBRTC、SRT协议上传&#xff0c;增强了服务器的功能 一、服务插件安装 资源下载 XMedia-CentOS7-x86-64-20240710-212007 把安装包放入LINUX服务器&#xff0c;执行如下命令,如果未安装u…

因子分析和非负矩阵分解

因子分析 (Factor Analysis, FA) 因子分析是一种统计方法&#xff0c;用于通过少量潜在变量&#xff08;因子&#xff09;解释观测数据中的相关结构。它在数据降维、特征提取和变量选择中广泛应用。 原理 因子分析假设观测变量是由少数潜在因子线性组合并加上噪声得到的。通…

Stable Diffusion 使用详解(6)---人物风格及背景变换

目录 背景 ControlNet lineart IP-Adapter 实例 生成场景模特 操作 生成效果 生成背景 操作 生成效果 融合 ip-adaptor contrlNet lineart controlNet 生成效果 背景 很多场景下&#xff0c;需要完成人物风格变换&#xff0c;比如现在是写真集&#xff0c;想转…

『 Linux 』网络基础

文章目录 协议分层OSI 七层模型TCP/IP 四层(五层)模型网络协议栈与操作系统的联系报文TCP/IP 通讯过程以太网通信的过程以太网的数据碰撞 协议分层 协议分层是计算机网络中奖网络协议进行组织和管理的方法; 通过将网络通信过程分成多个层次,每个层次负责特定的功能从而简化网络…

打破视频生成难题,腾讯提出 MimicMotion引领AI模仿人体动作新纪元

该论文提出了一种可控的视频生成框架MimicMotion&#xff0c;能够生成高质量且任意长度的视频&#xff0c;模仿特定的运动指导。该研究引入信心感知姿势指导&#xff0c;确保视频帧的高质量和时间平滑性。同时&#xff0c;还引入了基于姿势信心的区域性损失放大策略&#xff0c…

hashmap底层原理(数据结构 put原理 get原理 remove原理)

目录 一、数据结构 二、put原理 进入put方法 第一步&#xff1a;通过 HashMap 自己提供的hash 算法算出当前 key 的hash 值 第二步&#xff1a; 进入putVal(hash(key), key, value, false, true) 第三步&#xff1a; resize 完整源码 putval resize 流程图​ 三、get原…

如何不需要通过试单(多单未成功)来关闭被禁用的PayPal账号

轮询自检系统 可以最大程度不浪费订单&#xff0c;当你的PayPal被禁止收单时&#xff0c;无需通过试单(多单不成功)功能来关闭你的账号&#xff0c;极大的保证订单的成功率。 除了在接单时候系统自检&#xff0c;我们还提供一个批量检测PayPal账号系统&#xff0c;可大批量的检…

【运维自动化-配置平台】平台管理功能如何使用

蓝鲸智云配置平台&#xff0c;以下简称配置平台 配置平台里的平台管理功能是管理员的一些操作&#xff0c;比如一些全局纬度的设置1、全局配置-业务通用 业务快照名称&#xff1a;通常不需要修改&#xff0c;保持平台搭建好默认业务&#xff08;蓝鲸&#xff09;即可 拓扑最大…

主从备份及安装准备

主从复制 学习内容 1. 备份的三种类型 1. 热备份 2. 逻辑备份 3. 物理备份 2. 情景 ⼊职企业&#xff0c;发现企业架构为⼀主多从&#xff0c;但是两台从服务器和主库不同 步&#xff0c;但是每天会全库北⽅主服务器上的数据到从服务器&#xff0c;由于数据量 不是很⼤&a…

C++校园线上点餐系统-计算机毕业设计源码82032

摘要 本论文旨在设计并实现一种基于C语言的校园线上点餐系统&#xff0c;以解决校园内学生和教职员工点餐的便利性问题。该系统采用C语言作为主要开发语言&#xff0c;结合文件操作、数据结构和用户界面设计等技术&#xff0c;实现了一个功能完善的点餐系统。 论文介绍了校园线…