首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >你如何确保你总是有一个可发布的构建?

你如何确保你总是有一个可发布的构建?
EN

Stack Overflow用户
提问于 2010-11-16 04:51:28
回答 5查看 916关注 0票数 3

你如何确保你总是有一个可发布的构建?

我所在的Scrum团队遇到了以下问题:在Sprint的末尾,团队将其完成的用户故事展示给产品负责人。PO通常会接受几个用户故事,但拒绝一个或两个。在这一点上,团队不再有可发布的构建,因为构建由可发布的故事和不可发布的故事组成,并且没有简单的方法来撕下不可发布的故事。此外,我们不想只删除与不可发布的故事相关的代码,因为通常我们只需要添加一些错误修复。

我们该如何解决这个问题呢?我的猜测是,有一些方法可以分支构建,使得(a)每个用户故事都在其自己的分支上,并且用户故事分支可以合并,或者(b)有一种方法可以注释与每个用户故事相关联的代码,并创建一个只具有工作用户故事的构建。但我不知道怎么做(a)或(b)。我也对有更简单的解决方案的可能性持开放态度。

我想强调的是,问题不是构建被破坏了。构建并没有被破坏--只是构建中的一些用户故事不能发布。

我们目前正在使用svn,但如果这可以解决问题,我们愿意切换到另一个源代码控制系统。

除了答案之外,我还对任何涉及这个问题的书籍或参考资料感兴趣。

EN

回答 5

Stack Overflow用户

发布于 2010-11-17 16:53:49

我认为你想退出不完整代码的愿望是解决真正问题的创可贴。真正要解决的问题是,你做错了什么,让你以不可接受的故事结束了冲刺。

在我看来,你有3个问题中的一个(或全部)。

  1. 不完整的接受条件,你显然不理解PO希望你的故事被他完成和接受。您需要在sprint计划(或之前)中做更多的工作,以了解为每个故事所做的工作。
  2. 在sprint期间没有足够多地涉及PO。演示不应该是他第一次看到故事完成。这只是一个结束冲刺的最后仪式。PO应该已经在整个sprint.
  3. Overcommitment;中接受了所有的故事,如果你编码到最后一分钟,那么你就没有时间完全集成和测试。我不确定您的意思是“错误”,就像在未测试的代码或didn't-work-like-PO-wanted-code.

中那样。

每个特性的分支对于小团队来说是一件昂贵的事情,当构建大型系统时更合适,因为有许多scrum团队构建组件部分。这就像买汽车保险一样,因为你经常撞车;它不会让你更快地到达那里,它只会让你在路上支付更多。

尝试这个冲刺或2:在PO批准当前的故事之前,不要开始另一个故事。

票数 3
EN

Stack Overflow用户

发布于 2010-11-16 05:11:42

正如你所建议的,解决这个问题的一种方法是从一开始就考虑拒绝。要求每个用户故事都可以通过配置指令启用或禁用,这保证了没有被拒绝的故事的可发布构建。

如果你真的想排除被拒绝的故事,那么配置指令是不够的,因为它可以被客户端编辑。在这种情况下,您可以考虑编译常量。

这种方法需要一些额外的代码和测试,但省去了分支和合并的麻烦。您还可以保持修订控制环境不变。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2010-12-02 05:10:52

我同意@DancesWith竹子--你问的是症状,而不是真正的问题。问题是:

为什么PO拒绝这些报道?

  • 这些故事是不是不完整?如果是这样,那么他们就不应该致力于发布,团队需要被提醒,不应该有“部分完成”的故事-完成是/否。
  • 这些故事没有达到PO的预期吗?然后,你需要花更多的时间在pre-sprint会议上,在团队承诺之前,变得非常清楚故事的含义。也可以考虑使用自动化的验收测试,比如FitNesse。如果PO帮助编写验收标准,那么当故事完成时,他/她将知道预期会发生什么。另请参阅"Card, Conversation, Confirmation".
  • Did在冲刺过程中业务需求的变化?那么也许你应该缩短你的冲刺时间,这样PO就可以让团队放弃不再需要的故事。*

你在做Sprint Retrospectives吗?

敏捷实践者谈论“检查和适应”或“计划-做-检查-行动”。在冲刺结束时,让团队和Scrum Master讨论什么是有效的,什么是无效的,什么是你想要添加的。回顾有不同的风格--重要的是,回顾应该产生可操作的项目,旨在改进您的流程。敏捷并不意味着保持流程不变--总是有改进的空间。

(*有些人建议,一旦sprint开始,就不应该改变故事的内容。对我来说,这太死板地坚持流程了。如果PO已经合法地确定它不再提供业务价值,我认为完成一个故事的团队没有任何意义。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4191324

复制
相关文章
在没有 Mimikatz 的情况下操作用户密码
通过利用Mimikatz的 lsadump::setntlm和lsadump::changentlm函数,过去已经涵盖了这两个用例。虽然Mimikatz是最好的攻击工具之一,但我会尽量避免使用它,因为它是反病毒和 EDR 工具的高度目标。在这篇文章中,我将专门讨论用例 #2 — 为横向移动或权限提升重置密码。
Khan安全团队
2022/03/21
2.1K0
OpenCV 利用滚动条在不缩小的情况下显示大型图片
最近由于项目需要,要在不缩小的情况下显示一张2500*2000大小的图片,找到了一篇博客写的非常好,是邹老师写于2011年的: http://blog.csdn.net/chenyusiyuan/article/details/6565424
chaibubble
2022/05/07
7240
OpenCV 利用滚动条在不缩小的情况下显示大型图片
Sharded:在相同显存的情况下使pytorch模型的参数大小加倍
深度学习模型已被证明可以通过增加数据和参数来改善。即使使用175B参数的Open AI最新GPT-3模型,随着参数数量的增加,我们仍未看到模型达到平稳状态。
deephub
2020/12/24
1.6K0
V-3-3 在没有vCenter的情况下
在使用vSphere客户端登陆到ESXi服务器的时候,由于没有安装vCenter,而发现无法克隆虚拟机。而如果要安装vCenter的Windows版,有时候需要创建多台Windows Server主机,这种时候可以通过复制ESXi datastore里的虚拟机文件来创建多台相同的Windows Server虚拟机。
py3study
2020/01/07
1.1K0
理解JavaScript的临时包装对象
Javascript语言中的对象和基础类型string、number、boolean都可以使用“.”符号访问属性和方法,但是本质上只有对象才可以使用“.”,那么基础类型在使用“.”时的内部机制是什么呢? 这里要引入一个概念:包装对象。 Javascript对象是一个复合值,他是一组属性和方法的集合,使用“.”符号可以直接访问其属性和方法,但是基础类型数据在使用“.”符号时,*Javascript解析器首先调用基础类型对应的构造函数构建一个临时包装对象,然后再访问包装对象的属性。比如以下代码: let str
寒月十八
2018/01/30
9870
JavaScript-包装对象
(2)这7种数据类型中,对象为“引用类型”,其他六种为“原始类型”(或叫“基本类型”)。
WEBING
2019/03/13
6460
JavaScript-包装对象
在没有外链情况下,如何提高PR值?
外链是提高PR值的有利方式,但现在外链建设愈发困难,各家都对自己的网站进行链接屏蔽,即使你的外链建设成功,在代码状态下依然是Nofollow状态,所以seoer对外链格外关注。
蝙蝠侠IT
2021/03/22
5490
在没有外链情况下,如何提高PR值?
C++核心准则​Con.1:默认情况下使对象不可修改
Immutable objects are easier to reason about, so make objects non-const only when there is a need to change their value. Prevents accidental or hard-to-notice change of value.
面向对象思考
2020/08/14
4460
c语言:C语言清空输入缓冲区在标准输入(stdin)情况下的使用
分析:并没有输入字符,直接就输出了“hello bit”,因为在点击回车(‘\n’)时,相当于输入了一个字符,那么我们需要进行清空缓冲区处理
用户7886150
2021/02/14
3.1K0
JavaScript 原始值与包装对象
随着 JavaScript 越来越流行,越来越多地开发者开始接触并使用 JavaScript。
陈皮皮
2021/08/04
9600
vscode 使水平滚动条固定持续显示
1、在编辑器窗口中键盘 ctrl/command + shift + p 2、输入 setting,打开设置(json) 3、在 JSON 文件中加入以下代码:
Leophen
2022/05/07
2.5K0
在没有数据的情况下使用贝叶斯定理设计知识驱动模型
数据是模型的基础,但是没有数据只有领域专家也可以很好地描述或甚至预测给定环境的“情况”。我将根据贝叶斯概率来总结知识驱动模型的概念,然后是一个实际教程,以演示将专家的知识转换为贝叶斯模型以进行推理的步骤。我将使用 Sprinkler 系统从概念上解释过程中的步骤:从知识到模型。最后我将讨论复杂的知识驱动模型的挑战,以及由于质疑和提取知识而可能发生的系统错误。所有示例都是使用 python 的 bnlearn 库创建的。
deephub
2021/10/09
2.2K0
在没有数据的情况下使用贝叶斯定理设计知识驱动模型
用户输入括号是否匹配
public class brackets { /*算法*/ public static boolean isMatch(String str) { int i = 0; char e, x; SqStackClass<Character> st = new SqStackClass<Character>(); //建立一个顺序栈 while (i < str.length()) {
楠羽
2022/11/18
1K0
Harris角点提取后怎么匹配?
对于角点匹配算法的研究本文主要采用Harris算法提取图像中的角点,通过相似测度得到粗匹配点集,然后简单分析了两种提纯匹配点的简单聚类法和视差梯度约束法。 1. Harris算法角点检测 人眼对角点的识别通常是在一个局部的小区域或小窗口完成的。如果在各个方向上移动这个特征的小窗口,窗口内区域的灰度发生了较大的变化,那么就认为在窗口内遇到了角点。如果这个特定的窗口在图像各个方向上移动时,窗口内图像的灰度没有发生变化,那么窗口内就不存在角点;如果窗口在某一个方向移动时,窗口内图像的灰度发生了较大的变化,而在另一
智能算法
2018/04/03
2.5K0
Harris角点提取后怎么匹配?
JavaScript 原始值与包装对象
随着 JavaScript 越来越流行,越来越多地开发者开始接触并使用 JavaScript。
陈皮皮
2022/03/29
9200
在没有 'try-with-resources' 语句的情况下使用 'xxx' 是什么意思
在没有使用 try-with-resources 语句的情况下使用 xxx,意味着在代码中没有显式地关闭 xxx对象资源,如果没有使用 try-with-resources,那么在使用xxx对象后,需要手动调用 close() 方法关闭xxx对象以释放资源,防止资源泄露。
高久峰
2023/09/30
4.4K0
html滚动条使用,以及页面有多个div块,如何让body页面不使用滚动条,只在某个div内使用滚动条
2,页面有多个div块,如何让body页面不使用滚动条,只在某个div内使用滚动条
全栈程序员站长
2022/08/05
4.8K0
html滚动条使用,以及页面有多个div块,如何让body页面不使用滚动条,只在某个div内使用滚动条
多个Promise对象的处理
如果某件事情需要依照多个对象完成后才能执行,那么我们可以使用Promise.all来管理,将这些状态全部执行完毕后才执行下一个!
十月梦想
2018/10/09
1.1K0
神兵利器 - 在没有任何权限的情况下破解任何 Microsoft Windows 用户密码
项目地址:https://github.com/DarkCoderSc/win-brute-logon
Khan安全团队
2022/04/02
1.7K0
神兵利器 - 在没有任何权限的情况下破解任何 Microsoft Windows 用户密码
点击加载更多

相似问题

TypeError:无法读取未定义的属性(读取“长度”)- Blockchain

11

如何使用Rust SDK在Aptos上执行移动脚本?

113

如何使用Aptos CLI执行移动脚本?

18

如何读取Blockchain数据( .dat和.ldb文件)?

10

如何在Spark Structured Streaming中读取Kafka和查询外部存储,如Cassandra?

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文