您对“完成”的定义是什么?
组织实现的实际敏捷性取决于如何使用复杂的Scrum。 除了仅采用Scrum之外,如果组织重新围绕Scrum重组其结构,则企业敏捷性将大大提高。 通过重新验证,我提醒人们,通常在重新构想Scrum时,需要重新构想结构,而不是预测或复制结构。
通过Scrum,团队和组织可以创建,交付,维护和发展出色的产品和服务。 通过Scrum,团队和组织创造了不迟于每个Sprint结束发布产品版本的机会,Sprint花费的时间不超过4周,并且通常更少。 这为组织提供了基本的敏捷性,在市场上market壮成长的潜力,同时创造了激励性的工作环境。
到Sprint结束时产品增量的状态在Scrum中称为“完成”。
为了使每个人都了解“完成”的含义,团队对“完成”进行了定义 。 “完成”的定义对完成工作意味着什么有着共同的理解,并确保工作完整性的透明度。
在几个时间点上,这提供了至关重要的清晰度:
- 在预测工作时认为对Sprint可行。
- 评估产品积压项目和产品增量的工作是否完成。
- 整个Sprint的开发进度。
- 考虑增量中提供的产品功能的机会价值时(不必将检查变成质量询问)。
理想情况下, 专业组织定义要纳入产品的质量要求 。 无论如何,Scrum专业人员都遵循“完成”的适当定义。 总是。 增量工作不包含任何未完成的工作。 没有未完成的工作投入生产。 曾经 同时,敬业的专业团队不断寻求改善产品质量的方法,这体现在“完成”的定义中。
世界各地的许多团队似乎无法创建实际上可发布的产品增量。 在团队中输入了代码,并可能对其进行了测试。 但是实际的增量仍然分散并隐藏在长期存在的分支中。 或者,在Sprint结束时交付的工作仍需要与其他产品团队集成。 或者,甚至更糟的是,将其运送到不同的部门。 在这些情况下,Scrum会揭示有关关键组织障碍的重要信息,这些障碍会阻止团队创建实际发布的产品版本。 从未完成的工作到完成的增量需要大量的“未完成时间”。 这一次阻碍了组织迫切需要的敏捷性。 它杀死了机会释放的选择。
在Scrum中进行Sprint的目的不仅仅是为了完成一件可以交付给另一个团队,职能部门或部门的工作。 预期增量处于可用状态,可以投入生产。 释放后,没有任何损坏。 系统中没有不可预测的大量工作积累,等待在某个未知的时间点进行处理,同时破坏了每个人对进度和质量的理解。 实际的发布决策取决于产品的实用性,这取决于产品所有者,开发团队的用户和利益相关者的唯一代表。
至少在团队和系统之间集成了一个增量,以使其处于可生产部署状态。 大多数情况下,团队将要执行的所有开发活动(通常需要进行大量测试)定义为“完成”,以将增量视为“可发布”。
想象一下任何非软件行业。 您能想象要使用的机器,工具和实践来表达“质量”吗? 这不是创造质量的“方法”,而是质量的定义吗?
质量是通过产品的特性定义的。
质量是产品应展示的品质。 Scrum中的“完成”产品不仅仅是应用了严格正确的开发标准的产品,因此可以发布。 “完成”产品是展示您组织对产品质量的定义的产品。
正如我在《 Scrum –一个袖珍指南 》(2013) 一书中已经指出的那样, 宝贵的增量是Scrum的核心。
将平衡转移到创造有价值的增量上,就是真正地制定了Scrum,并遵循最高敏捷原则:
- 敏捷宣言 :我们的首要任务是通过尽早并持续交付有价值的软件来满足客户( 我的粗体表示 )。
- Scrum指南 :一个框架,人们可以在其中解决复杂的适应性问题,同时以富有创造力的方式交付可能价值最高的产品 ( 我的粗体表示 )。
那么,您是否有“完成”的定义? 如果是这样,您将其定义为“完成”? 是“可释放”还是“有价值”? 您创造的每一个增量都有价值吗? 为什么不? 您的Scrum Master知道吗? 您的管理? 那你在做什么呢?
翻译自: https://www.javacodegeeks.com/2017/06/what-are-you-defining-as-done.html
您对“完成”的定义是什么?相关推荐
- 非本地类型不能定义方法 cannot define new methods on non-local type time.Duration
能够随意地为各种类型起名字,是否意味着可以在自己包里为这些类型任意添加方法 ? 参见下面的代码演示 : package mainimport "time"type MyDurati ...
- etcd 笔记(06)— Client 结构定义、客户端(初始化、KV存储Get、Put、事务 Txn、压缩 Compact、Watch、Lease
1. Client 定义 Client 定义如下: type Client struct {ClusterKVLeaseWatcherAuthMaintenance// 认证的用户名Username ...
- Go 知识点(05)— 类型别名与类型定义
1. 类型别名 类型别名需要在别名和原类型之间加上赋值符号 = ,使用类型别名定义的类型与原类型等价,Go 语言内建的基本类型中就存在两个别名类型. byte 是 uint8 的别名类型: rune ...
- Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)
1. 接口的定义 接口是和调用方的一种约定,它是一个高度抽象的类型,不用和具体的实现细节绑定在一起.接口要做的是定义好约定,告诉调用方自己可以做什么,但不用知道它的内部实现,这和我们见到的具体的类型如 ...
- 浅显易懂 Makefile 入门 (02)— 普通变量和自动变量定义、使用($@、$^、$< 作用)、变量覆盖 override、变量的来源 origin
1. 变量的定义 Makefile 文件中定义变量的基本语法如下: 变量的名称=值列表 变量的名称可以由大小写字母.阿拉伯数字和下划线构成.等号左右的空白符没有明确的要求,因为在执行 make 的时候 ...
- OpenCV 笔记(08)— 二维点、三维点、基于 Mat 的 std::vector 等常用数据结构的定义和输出
1. 定义和输出二维点 Point2f p2(3, 4);cout << "[二维点] is "<< endl << p2 << e ...
- 条件随机场(CRF) - 2 - 定义和形式
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xueyingxue001/article/details/51498968 声明: 1,本篇为个人对 ...
- 合肥工业大学—SQL Server数据库实验九:视图的定义与使用
视图的定义与使用 1. 定义视图 2. 使用视图 1. 定义视图 在EDUC数据库中,已Student.Course 和SC表为基础完成一下视图定义: 1) 定义视图V_SC_G:该视图包含Stude ...
- MLIR: 编译器基础架构重定义
MLIR: 编译器基础架构重定义 MLIR(多级中间表示)是语言(如 C)或库(如 TensorFlow)与编译器后端(如 LLVM)之间的中间表示 (IR) 系统.允许不同语言的不同编译器堆栈之间的 ...
- 作业函数的定义与调用
作业函数的定义与调用 在 OneFlow 中,将训练.预测任务封装在一个函数中,统称为作业函数(job function),作业函数联系用户的业务逻辑与 OneFlow 管理的计算资源. 在 OneF ...
最新文章
- 微信小程序实现滑动翻页效果源码附效果图
- JDBC:使用连接池管理连接
- imx6 uboot lvds clock
- js ajax上传文件到服务器,使用ajax上传并预览图片后传到服务器上
- PLSQL developer 连接64位oracle 11.2G
- 基于Spring+SpringMVC+Mybatis架构的开源博客
- Datamill 一个开源的框架
- 20190910每日一句 你有勇气直面自己的恐惧吗?
- SQL Server使用
- 英特尔显卡驱动 Intel Graphics Driver for Windows 10 v30.0.101.1069 官方正式安装版 64位
- C语言学生信息管理系统详细设计
- 有限元计算计算机配置,关于有限元分析的电脑配置问题
- WIN10为什么手机连接电脑开启热点后,电脑不能上网?
- MySQL Enterprise Backup使用简介
- execl2010数据有效性验证,保存后丢失问题
- 2022年劳务员-通用基础(劳务员)考试题库及答案
- android动态壁纸2.2.1,动态壁纸选择器
- 丁林松老师的QT视频及教程源码
- 【QT网络编程】实现UDP协议通信
- 35岁前成功的黄金法则(12)-十二分努力