当前位置: 首页 > news >正文

一文说通用户故事点数是什么?

一文说通用户故事点数是什么?
 

 第26期:一文说通用户故事点数是什么?

用户故事点数是一种采用相对估算法进行估算的一种工具,一般采用斐波那契数列表征用户故事里说的大小,采用0 1 2 3 5 8 13这样的一些数字来表征用户故事的大小,那么用户故事点说到底是什么?

 我们在实现过程当中看到很多人理解的都是错的。为了能够澄清什么是用户故事点数特编写本文,以澄清视听。

01

用户故事点数和绝对工时没有关系

用户故事点数是一种相对估算的单位,它表征了一个用户故事和另一个用户故事之间的开发规模的相对关系,而并不表示它的绝对规模。

用户故事点数和实际的工时没有任何的比例关系。

以镶地砖为例,镶两块地砖的工作量是镶一块地砖的工作量的两倍,这个和是张师傅来镶还是李师傅来镶是没有任何关系的。

图片

图片

在一些开发团队当中,会把用户故事点数和工时进行一个比例设定,这个设定是错的。

这个设定会导致了工作量失去了比例关系,而依赖于个人的生产能力。

同一个功能,不同水平的师傅来干,工时需要的不同,如果绑定这个关系则失去了相对估算的意义。

02

用户故事点数表示了团队的效率提升

每个迭代可以交付的用户故事点数合计表示了团队的速率。 

   

图片

如果按照绝对工时作为度量单位,那么一个人一周只有40小时的工作时间,这是一个无法通过个人努力或者团队努力而改变的客观约束。

那么,在绑定故事点数和绝对工时的前提条件下,就无法表征出团队的持续改进情况。

而采用和绝对工时无关的故事点数是可以表征出来团队的改进情况的。

比如说,一个团队,每周原来可以生产100个故事点数,而经过改进之后,在原来的同样的估算体系下,已经可以每周交付120个故事点数的任务。那么这表示,团队提升了20%。

图片

但是如果采用了故事点数和绝对工时绑定的情况下。

原来一个团队,一周可以交付200个工时(5人x40小时)的任务,现在一周可以交付240个小时的任务,那么反而表明这个团队通过加班来完成任务,实际效率下降。

这是一种错误的估算方式。

所以,采用这种把用户故事点数和绝对工时绑定比例关系的团队,有这么几种原因:

  1. 不懂什么是用户故事点数

  2. 对持续改进没有追求

这样的团队,趁早放弃敏捷比较好。

【特殊情况】

如果遇到特殊情况,上述速率公式仍然可以表征团队的实际效率。比如,工程师小张这个迭代休假了,团队从5个人变成4个人,交付的总故事点数从100变成了80。

但是速率没有变化,以两周迭代,每人80小时为例。

图片

速率没有变化

【不同的工程师速率就是不同的】

的确,不同的工程师开发速率是不同的,很多人对此有疑惑。

不同的工程师开发同一个功能效率可能差上几倍乃至几十倍。相对估算是不是表征不了这个特点。

不是的。

假设小张的速率是,每天可以交付8个故事点数,而小李可以交付12个。

那么

  

图片

可以很客观的反应二者的效率差,也能够表明改进的着力点。

之后小张的速率提升了,那么整个团队就提升了。

03

杂项要不要纳入工时统计

团队除了开发,还有很多杂项,那么统计工时作为分母的时候,要不要把这些杂项纳入工时统计。

和加班一样,所有团队花费的工时都要纳入统计。

同样的,如果遇到节假日,工时缩短也一样处理,这样才知道应该怎么进行改进,比如杂项占用时间太多,那就应该想办法减少杂项所耗费的时间。

相关文章:

一文说通用户故事点数是什么?

一文说通用户故事点数是什么? 第26期:一文说通用户故事点数是什么? 用户故事点数是一种采用相对估算法进行估算的一种工具,一般采用斐波那契数列表征用户故事里说的大小,采用0 1 2 3 5 8 13这样的一些数字来表征用户…...

GAME101-Lecture07学习

前言 今天主要讲shading(着色)。在讲着色前,要先讲图形中三角形出现遮挡问题的方法(深度缓存或缓冲)。 先采样再模糊错误:对信号的频谱进行翻译(在这期间会有频谱的混叠)&#xff…...

【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”

看到这句话的时候证明:此刻你我都在努力~ 加油陌生人~ 个人主页: Gu Gu Study ​​ 专栏:一步一步了解Java 喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努…...

ICSE docker related research

ICSE 2024 Empirical Study of the Docker Smells Impact on the Image Size Docker 气味对镜像大小影响的实证研究 Docker 是一种广泛采用的打包和部署应用程序的工具,它利用 Dockerfile 来构建镜像。然而,创建最佳的 Dockerfile 可能具有挑战性&…...

【C++】学习笔记——多态_1

文章目录 十二、继承8. 继承和组合 十三、多态1. 多态的概念2. 多态的定义和实现虚函数重写的两个特殊情况override 和 final 3. 多态的原理1. 虚函数表 未完待续 十二、继承 8. 继承和组合 我们已经知道了什么是继承,那组合又是什么?下面这种情况就是…...

C++map容器关联式容器

Cmap 1. 关联式容器 vector、list、deque、forward_list(C11)等STL容器,其底层为线性序列的数据结构,里面存储的是元素本身,这样的容器被统称为序列式容器。而map、set是一种关联式容器,关联式容器也是用来存储数据的&#xff0…...

TS-抽象类和静态成员

目录 1,抽象类1,为什么需要抽象类2,抽象成员3,设计模式-模板模式 2,静态成员1,什么是静态成员2,设计模式-单例模式 1,抽象类 1,为什么需要抽象类 有时,某个…...

SharePoint 使用renderListDataAsStream方法查询list超过5000时的数据

问题: 当SharePoint List里的数据超过5000时,如果使用常用的rest api去获取数据,例如 await this.sp.web.lists.getByTitle(Document Library).rootFolder.files.select(*, listItemAllFields).expand(listItemAllFields).filter(listItemA…...

2024042001-计算机网络 - 物理层

计算机网络 - 物理层 计算机网络 - 物理层 通信方式带通调制 通信方式 根据信息在传输线上的传送方向,分为以下三种通信方式: 单工通信:单向传输半双工通信:双向交替传输全双工通信:双向同时传输 带通调制 模拟信号…...

通过java将数据导出为PDF,包扣合并单元格操作

最近项目中需要将查询出来的表格数据以PDF形式导出&#xff0c;并且表格的形式包含横向行与纵向列的单元格合并操作&#xff0c;导出的最终效果如图所示&#xff1a; 首先引入操作依赖 <!--导出pdf所需包--><dependency><groupId>com.itextpdf</groupId&…...

Java内存模式以及volatile关键字的使用

1.Java内存模型 &#xff08;1&#xff09;Java 内存模型&#xff08;Java Memory Model&#xff0c;简称 JMM&#xff09;&#xff0c;它是一个抽象的概念&#xff0c;JMM是和多线程相关的&#xff0c;它是一组规范&#xff0c;描述了一组规则&#xff0c;定义了多线程对共享…...

每日5题Day3 - LeetCode 11 - 15

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int maxArea(int[] height) {//这道题比较特殊&#xff0c;因为两边是任意…...

路由器、交换机和网卡

大家使用VMware安装镜像之后&#xff0c;是不是都会考虑虚拟机的镜像系统怎么连上网的&#xff0c;它的连接方式是什么&#xff0c;它ip是什么&#xff1f; 路由器、交换机和网卡 1.路由器 一般有几个功能&#xff0c;第一个是网关、第二个是扩展有线网络端口、第三个是WiFi功…...

腾讯开源混元DiT文生图模型,消费级单卡可推理

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…...

shell脚本基础(if/else结构)

命令是双向选择语句&#xff0c;当用户执行脚本时如果不满足if后的表达式也会执行else后的命令&#xff0c;所以有很好的交互性。其结构为&#xff1a; if expression1 then command … command else command … command fi vim ifelse_exam.sh #ifelse_exam.sh #!/bin/bashec…...

万字长文破解 AI 图片生成算法-Stable diffusion (第一篇)

想象一下&#xff1a;你闭上眼睛&#xff0c;脑海中构思一个场景&#xff0c;用简短的语言描述出来&#xff0c;然后“啪”的一声&#xff0c;一张栩栩如生的图片就出现在你眼前。这不再是科幻小说里才有的情节&#xff0c;而是Stable Diffusion——一种前沿的AI图片生成算法—…...

Linux---编辑器vim的认识与简单配置

前言 我们在自己的电脑上所用的编译软件&#xff0c;就拿vs2022来说&#xff0c;我们可以在上面写C/C语言、python、甚至java也可以在上面进行编译&#xff0c;这种既可以用来编辑、运行编译&#xff0c;又可以支持很多种语言的编译器是一种集成式开发环境&#xff0c;集众多于…...

lucene中Collector类、CollectorManager类区分和用法

我的lucene版本是9.10.0&#xff0c;请说明Collector类、CollectorManager类区分和用法&#xff0c;尽量详细点 在 Lucene 9.10.0 中&#xff0c;Collector 类和 CollectorManager 类都是用于搜索结果的收集和处理 Collector 类 Collector 类是一个接口&#xff0c;用于收集…...

Android之给Button上添加按压效果

一、配置stateListAnimator参数实现按压效果 1、按钮控件 <Buttonandroid:id"id/mBtnLogin"android:layout_width"match_parent"android:layout_height"48dp"android:background"drawable/shape_jfrb_login_button"android:state…...

python EEL + vue3.js 项目中如何把组件中的函数提升为全局函数

eel官方示例中暴露的js函数是全局函数&#xff0c;vue中的自定义函数作用域通常都是组件范围内。要让eel.js调用&#xff0c;需要将其升为全局可用。 一般方法有 app.config.globalProperties 或 mixin等。 main.js //main.jsimport { createApp } from vue import App from…...

手把手教你为YOLOv8 TensorRT推理写一个C++接口:从DLL封装到QT界面调用

深度解析&#xff1a;构建高效YOLOv8 TensorRT推理C接口的工程实践 在工业视觉和边缘计算领域&#xff0c;将深度学习模型封装为可复用的软件组件已成为提升开发效率的关键。本文将以YOLOv8模型为例&#xff0c;深入探讨如何设计一个专业级的TensorRT推理C接口&#xff0c;重点…...

别再手动改文献了!手把手教你定制Mendeley的GB/T 7714-2005引用格式(附常见问题修复)

深度定制Mendeley文献引用格式&#xff1a;GB/T 7714-2005实战指南 科研写作中&#xff0c;文献引用格式的规范性直接影响论文的专业程度。许多研究者在使用Mendeley内置的GB/T 7714-2005格式时&#xff0c;常遇到作者名全大写、et al.显示异常等问题。本文将提供一套完整的解…...

开源AI工作流框架:模块化设计、低代码实践与自动化场景构建

1. 项目概述&#xff1a;当AI工作流遇上开源协作最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫“kiki-ai-workflow”。光看这个名字&#xff0c;你可能会有点懵&#xff0c;“kiki”是谁&#xff1f;“AI工作流”又具体指什么&#xff1f;作为一个在自…...

convoai-cli:命令行集成AI对话,提升开发效率的自动化利器

1. 项目概述&#xff1a;一个面向对话式AI的命令行利器如果你和我一样&#xff0c;经常需要和各类大语言模型&#xff08;LLM&#xff09;打交道&#xff0c;无论是调试一个提示词&#xff08;Prompt&#xff09;&#xff0c;还是批量处理一堆文档&#xff0c;又或者只是想快速…...

7B秒杀70B!大模型微调秘籍全解:从理论到实战,玩转高效适配!

本文系统介绍了大模型微调的理论框架与实践流程。阐述了微调的必要性&#xff0c;即弥补通用大模型在领域知识、输出格式及行为对齐上的不足&#xff0c;并说明微调效果可超越更大参数的未微调模型。文章深入解析了微调原理&#xff0c;对比了全参数微调与高效微调&#xff08;…...

ARM SVE2饱和运算指令SQSHRNB与SQSHRUNB详解

1. ARM SVE2指令集概述ARM的可伸缩向量扩展第二版(SVE2)是NEON指令集的下一代演进&#xff0c;为高性能计算和机器学习工作负载提供了更强大的向量处理能力。与传统的SIMD指令集不同&#xff0c;SVE2引入了多项创新特性&#xff1a;可变向量长度(VLA)&#xff1a;程序员无需针对…...

ClassiCube多平台适配技术:从桌面到移动再到游戏主机的实现细节

ClassiCube多平台适配技术&#xff1a;从桌面到移动再到游戏主机的实现细节 【免费下载链接】ClassiCube Custom Minecraft Classic / ClassiCube client written in C from scratch (formerly ClassicalSharp in C#) 项目地址: https://gitcode.com/gh_mirrors/cla/ClassiCu…...

Google:让鼠标学会「看见」这件事意味着什么#Magic Pointer

Google DeepMind发布的Magic Pointer&#xff08;AI Pointer&#xff09;让鼠标指针获得了视觉理解和语义推理能力。用户只需要指向画面中的某个对象并说出简短指令&#xff0c;AI就能理解意图并执行复杂操作&#xff1a;订餐、查路线、比价。这个看似简单的能力跃迁&#xff0…...

AltSnap:重新定义Windows窗口管理效率的革命性工具

AltSnap&#xff1a;重新定义Windows窗口管理效率的革命性工具 【免费下载链接】AltSnap Maintained continuation of Stefan Sundins AltDrag 项目地址: https://gitcode.com/gh_mirrors/al/AltSnap 你是否曾经在Windows系统中为繁琐的窗口操作而烦恼&#xff1f;当需要…...

私域流量红利见顶?那是你没解锁企业微信 API 的隐藏玩法!

在公域流量成本居高不下的今天&#xff0c;“私域流量”成了每个品牌的标配。然而&#xff0c;许多企业在把客户拉进企业微信后&#xff0c;却发现运营陷入了瓶颈&#xff1a;每天机械地群发广告&#xff0c;客户互动率低&#xff0c;退群率却居高不下。很多人惊呼&#xff1a;…...