【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

折叠有价值吗?

  • 2011-03-15
  • 本文字数:926 字

    阅读完需:约 3 分钟

Mike Burrows写道:

我突然想到,我们经常把较大的功能展开(分解)成规模较小的功能,但事后我们往往不会再把它们折叠回去。 这种做法:

  1. 常见吗?
  2. 好吗?(我能想到一些好的理由)
  3. 不好吗?(同样的,我能想到一些不好的理由)
  4. 视情况而定?(在哪些情况下好,哪些情况下不好?)

Kanbandev 讨论组里的一些人认为,将较小的功能折叠回较大的功能并不能增添多少价值。Kurt Häusler说道

我不喜欢展开和折叠。我的确喜欢将较大的需求展开成许多小的故事,就在刚开始的时候,甚至是在那些需求进入系统前,并且在整个过程中让它们保持较小的规模。我想有时候这可能是做不到的,但是我想,相比简单地利用较大的最小化市场功能(Minimum Market Features)或者微型项目,坚持那么做会更好,因为降低交易成本是很难的,因为客户无法测试“未完成的”功能,因为人们思考问题的时候总是会把问题“想得太大又复杂”。 对功能进行简单轻薄的垂直切分,贯穿整个价值流,就一定会成功(For The Win)

Ron Jeffries认为

极限编程过去常常建议大家把故事分解成任务。我们中有很多人不再推荐大家那么做:我们建议大家将它们切割成更小的故事。 在极限编程中,没有明确的“折叠”概念,因为没必要那么做。

Siddharta Govindaraj认为折叠有一些价值,但是:

如果这种观点只是围绕开发团队,那么这能行。你切分好故事并一个个展开它们,没有必要折叠。但是,在开发团队以外,许多端对端的流确实是操作大功能的。所以,尽管你在开发团队中使用的可能是较小的故事,当较大的功能要移动到下一个阶段时,仍然有必要将它们折叠回去。

Ron Jeffries回复道

为什么你会有下一个阶段的想法?举例来说,在 Scrum 和 XP 中,每个迭代团队都会生产可交付的软件增量(包括所有必要的文档)。 从 kanban 的观点来看,我们只对需要的东西进行建模。但如果它是一个很大的展开或折叠,那么几乎可以确定,这种建模意味着浪费、缓冲和延期,可以移除掉。

Paul Beckford说道

这里的关键部分是较小的增量、反馈和迭代。当你这样做时,那么折叠这种想法,在最小的增量中就是没有意义的(比如,一个切分,对我而言可能是一组小的验收条件,只需要半天时间),而在其他任何级别的抽象上也都是没有意义的。

查看英文原文 The Value of Collapse?

2011-03-15 09:071565
用户头像

发布了 38 篇内容, 共 81901 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

Python进阶(三)函数式编程之reduce()

No Silver Bullet

Python reduce 10月月更

Surpass Day——Java 多态、final关键字、常量、package、import、访问控制权限修饰符

胖虎不秃头

Java 10月月更 se

【一Go到底】第八天---用户输入

指剑

Go golang 10月月更

Sentinel Go-毫秒级统计数据结构揭秘

柠檬汁Code(binbin0325)

数据结构 源码分析 限流 Sentine 10月月更

线下活动 | 龙智Atlassian ITSM 解决方案即将亮相2022全球运维大会上海站

龙智—DevSecOps解决方案

gops GOPS全球运维大会

LinkedList源码分析(一)

知识浅谈

linkedlist 10月月更

leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal 从中序与后序遍历序列构造二叉树(中等)

okokabcd

LeetCode 算法与数据结构

Docker远程连接设置

程序员欣宸

Docker 容器 10月月更

【LeetCode】字符串解码Java题解

Albert

LeetCode 10月月更

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

小哈区块

静态代码分析 | 数字驾驶舱时代,如何确保车载信息娱乐系统的网络安全?

龙智—DevSecOps解决方案

网络安全 车载信息娱乐系统 IVI

golang反向代理实现中的坑位

有态度的马甲

Python进阶(四)浅谈Python闭包

No Silver Bullet

Python 闭包 10月月更

直呼内行!阿里大佬离职带出内网专属“Redis设计应用实践”学习笔记

Geek_0c76c3

Java 数据库 开源 程序员 架构

Surpass Day——Java this关键字

胖虎不秃头

Java 10月月更 se

议题征集|Flink Forward Asia 2022 正式启动

Apache Flink

大数据 flink 流计算 实时计算

深入浅出MatrixOne Parser

MatrixOrigin

矩阵起源 MatirxOrigin MatirxOne

爬虫练习题(三)

张立梵

Python. 10月月更 爬虫案例

Qt | 按钮控件的使用 QCheckBox

YOLO.

qt 10月月更 C++

关于 Angular view Query 的 id 选择器问题的单步调试

Jerry Wang

typescript 前端开发 angular web开发 10月月更

Windows开发工具安装

青柚1943

dapr

七天杀上GitHub榜首!Java并发编程深度解析实战,JUC底层原理揭秘

Geek_0c76c3

Java 数据库 开源 程序员 架构

Qt | 实现网页历史记录和查找功能 QWebEngineView

YOLO.

qt 10月月更 C++

版本控制 | 一文了解VR内容创作的步骤与关键技术

龙智—DevSecOps解决方案

vr VR/AR

Surpass Day——Java static关键字、继承、方法覆盖

胖虎不秃头

Java 10月月更 se

从SpringBoot启动,阅读源码设计

Java 架构

低代码将干掉65%软件开发工作,留给码农的时间不多了!

雨果

低代码

攻击面分析及应对实践

vivo互联网技术

安全 风险管理 互联网安全

文盘Rust -- struct 中的生命周期

京东科技开发者

redis rust 生命周期 Trait Trait Objects

代码质量与安全 | 清洁代码(Clean Code)比您认为的更重要

龙智—DevSecOps解决方案

clean code 清洁代码

数据库基础

说故事的五公子

MySQL 数据库 sql

折叠有价值吗?_研发效能_Dan Puckett_InfoQ精选文章