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

本文介绍了一种新的企业级敏捷框架——业务驱动型敏捷(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.rhkb.cn/news/394684.html

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

相关文章

2024年史上最好用的10款项目管理软件有哪些?

项目管理行业发展趋势 随着信息技术的不断进步,项目管理也呈现出愈加智能化、自动化的发展趋势。无论是大型企业还是中小型公司,都亟需借助先进的项目管理工具,来实现对项目进度、资源、风险等各个环节的精细化管控。 然而在实际应用中&…

Git合并多笔提交为一笔

Git合并多笔提交为一笔 1. 背景 在实际项目开发中,我们会基于生产分支拉出很多需求分支,在需求分支开发完成后再将代码合到生产分支,但随着提交次数越来越多,我们在合到生产分支的时候就得一笔一笔的入库,特别麻烦&a…

Nacos-配置中心

1.为什么要使用配置中心&#xff1f; 2.常用的配置中心组件&#xff1f; 3.如何使用&#xff1f; 在配置中心创建配置文件 启动一个单列的nacos服务 点击发布 在微服务中使用 添加依赖 <!--nacso配置中心的依赖--><dependency><groupId>com.alibaba.cloud&l…

安卓Termux系统设备安装内网穿透工具实现远程使用SFTP传输文件

文章目录 前言1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 前言 本教程主要介绍如何在安卓 Termux 系统中使用 SFTP 文件传输&#xff0c;并结合cpolar内网穿透工具生成公网地址&#xff0c;轻松实现无公网IP环境远程传输&#xf…

SQLiteStudio 连接sqlite3数据库(真机数据库可视化调试)

SQLiteStudio安装 官网链接&#xff1a;https://sqlitestudio.pl/ 下载后&#xff0c;直接按部就班&#xff0c;打开即可使用 用户手册&#xff08;工具如何使用直接看这份就可以了&#xff09;&#xff1a;https://github.com/pawelsalawa/sqlitestudio/wiki/User_Manual 其…

网安新声 | 微软蓝屏事件安全启示录

网安加社区【网安新声】栏目&#xff0c;汇聚网络安全领域的权威专家与资深学者&#xff0c;紧跟当下热点安全事件、剖析前沿技术动态及政策导向&#xff0c;以专业视野和前瞻洞察&#xff0c;引领行业共同探讨并应对新挑战的策略与可行路径。 2024年7月19日&#xff0c;微软发…

node中path模块处理路径以及path模块的方法的使用

1.案例代码 // 1.导入fs模块&#xff0c;来操作文件 const fs require(fs) const path require(path)// 2.path.join():拼接文件路径 console.log(path.join(F:,/kanno,临时文件/7.31,/image,../,成绩.txt)); const filePath path.join(/files,成绩.txt) console.log("…

Unity Addressables bundle依赖查看和资源重复查看工具

在开发的过程有时候想要知道addressables 打包出来bundles的依赖关系&#xff0c;以及资源的重复情况。直接通过自带的addressables工具查看有点困难。这里分享一个github上的开源工具。名称为UnityAddressablesBuildLayoutExplorer。该工具可以帮助查看所有文件的依赖情况&…

AI在医学领域:使用眼底图像和基线屈光数据来定量预测近视

关键词&#xff1a;深度学习、近视预测、早期干预、屈光数据 儿童近视已经成为一个全球性的重大健康议题。其发病率持续攀升&#xff0c;且有可能演变成严重且不可逆转的状况&#xff0c;这不仅对家庭幸福构成威胁&#xff0c;还带来巨大的经济负担。当前的研究着重指出&#x…

LeetCode Hard|【460. LFU 缓存】

力扣题目链接 LFU全称是最不经常使用算法&#xff08;Least Frequently Used&#xff09;&#xff0c;LFU算法的基本思想和所有的缓存算法一样&#xff0c;一定时期内被访问次数最少的页&#xff0c;在将来被访问到的几率也是最小的。 相较于 LRU 算法&#xff0c;LFU 更加注重…

什么是云原生?(一)

1. 前言 停下手头的工作&#xff0c;让你的同事定义“云原生”一词。你很可能会得到几个不同的答案。 1.1 让我们从一个简单的定义开始&#xff1a; 云原生架构和技术是一种设计、构建和操作在云中构建并充分利用云计算模型的工作负载的方法。 1.2 云原生计算基金会给出了官方…

简单的 CompletableFuture学习笔记

简单的 CompletableFuture学习笔记 这里记录一下自己学习的内容&#xff0c;简单记录一下方便后续学习&#xff0c;内容部分参考 CompletableFuture学习博客 1. CompletableFuture简介 在api接口调用时间过长&#xff0c;调用过多外围接口时&#xff0c;为了提升性能&#x…

Android 12系统源码_多屏幕(一)多屏幕设备显示Activity

前言 分屏&#xff1a;是指一个屏幕分出多个窗口&#xff0c;分别显示不同应用的界面&#xff0c;这在当前的手机设备中很常见。多屏&#xff1a;是指一个设备存在多个屏幕&#xff0c;这些可能是虚拟屏幕或者实体硬件屏幕&#xff0c;不同的应用同时显示在不同的屏幕中&#…

SpringBoot多数据源事务处理

多数据源时,一般会配置多个事务管理器 Spring编程式 第二种方式 不可能去同一个方法上写两个事务注解 不允许 SpringBoot 2.6.0之后禁止自己注入自己 本来可以自己注入自己去调用 (为什么要自己注入自己调用,AOP代理,类不是自己写的类) 最简单方式 引入 <dependency&…

【极速前进】20240706-24240714:用于Agent的树搜、理解LLM的语种困惑、事实知识抽取微调、Quiet-STaR

相关博客 【极速前进】20240706-24240714&#xff1a;用于Agent的树搜、理解LLM的语种困惑、事实知识抽取微调、Quiet-STaR 【极速前进】20240615-20240623&#xff1a;Zipper融合模态、VideoLLM视频理解、WebAgent可以自我改善、Nemotron-4、AnyGPT统一模态 【极速前进】20240…

【秋招突围】2024届校招-拼多多笔试题-第一套

🍭 大家好这里是 大厂笔试突围,一起备战秋招笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🌻 听说本周PDD的笔…

与用户有关的接口

1.获取用户详细信息 跟着黑马程序员继续学习SpringBoot3Vue3 用户登录成功之后跳转到首页&#xff0c;需要获取用户的详细信息 打开接口文档 使用Token令牌解析得到用户名 我们需要根据用户名查询用户&#xff0c;获取详细信息 但是请求参数是无&#xff0c;由于都需要携…

基于微信小程序的小学生口算练习系统

摘 要 随着当今网络的发展&#xff0c;时代的进步&#xff0c;各行各业也在发生着变化&#xff0c;小程序也逐步进入人们的生活&#xff0c;给我们生活或者工作提供了新的方向新的可能。 本毕业设计的内容是设计实现一个小学生口算练习的小程序。微信开发者是以java语言进行…

2023 江苏省第一届数据安全技术应用职业技能竞赛 决赛 部分wp

文章目录 一、前言比赛平台全貌题目附件及工具下载&#xff08;123网盘&#xff09; 二、参考文章三、题目&#xff08;解析&#xff09;一、内存取证-MemoryLife1、请给出内存镜像中黑客使用工具对外连接的IP地址及端口号是___________。&#xff08;格式为IP_PORT&#xff09…

app抓包 burp配置

证书导出 模拟器安装证书 点击安装证书 将证书直接拖进来就行 配置代理 打开浏览器抓包