结果【outcome】大于产出【output】

2024-02-04 15:20
文章标签 output 大于 产出 outcome

本文主要是介绍结果【outcome】大于产出【output】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

结果大于产出

著者 Martin Fowler

译者 尘世间一个迷途小码农

想象一下一个团队在编写购物网站的技术团队。如果我们在看这个团队的产出的时候,我们或许会考虑上个季度产出了多少个功能,或者一个跨功能模块的度量(如页面加载时间)。然而,一个对于结果的度量将应该考虑度量所增加的营收,或者所减少的产品支持电话数量。聚焦于结果而不是产出,将会使得团队倾向于构建那些有助于提升软件用户和客户效率的功能特性。

就好像任何专业活动一样,我们这些从事软件开发的人想要了解是什么使得我们更有效。事实上确实如此,正如一个开发人员尝试改善他的个人表现,或一个希望改进组织内团队的管理人员,或者像我这样试图提高整个行业水平的专家亦是如此。但是,使这变得困难的事情之一是没有明确的方法来度量软件团队的生产力。这个度量问题变得更加复杂的原因取决于我们将有效性测量建立在产出还是结果的基础上。

我总是认为结果应该是我们所关注的。如果一个团队交付了很多功能,不管我们是用代码行数、功能点数还是故事数来度量它,如果这些功能无法帮助用户改进他们的活动,那么这些功能就无关紧要了,许多未使用的特性都是浪费精力。实际上,更糟糕的是它们会使代码库膨胀,从而使将来添加新特性变得愈发困难。这样的软件开发团队需要关注新功能的有用性,这样它们就可以在交付更少但是更实用的功能的这个事情上得到改善(这里指的就是团队的结果【outcome】更高)。

我听到一个关于反对基于结果的观察的论点是,为结果而提出的可重复的度量要比为产出而提的要更困难。我发现这个观点挺难理解。度量软件的“纯”产出是出名的困难,代码行数是一个无用的度量,即使它们不那么容易被用于在产出多少方面进行造假。另外,功能点或者故事点的可复制性是很差的,不同的人会给同样的东西打不同的分数。与此相比,我们非常善于度量财务产出。诚然,考虑到客户满意度的话,许多的观察结果是更加棘手,但是我不认为它们任何一个比软件功能的评估更难。

当然,仅仅称某件事为“结果”并不能让你把注意力集中在正确的事情上,而选择观察正确的结果肯定是有方法技巧的。Seiden提出了一个很有用的观点,他认为结果应该是对组织有益的一些用户、员工或客户行为的改变。他区分了“结果”和“影响”,前者是更容易观察到的行为变化,后者则是对组织有着更广泛的影响。在《发展边缘》一书中,HighSmith、Luu和Robinson建议,基于客户价值的结果应该比基于业务价值的结果应该得到更多的重视(书中举例指一台洗碗机的可靠性要比保修维护成本更应该被重视)。

使用结果观察的一个重要问题是,很难将它们分摊给软件开发团队。考虑一个客户团队,他们使用软件来帮助他们跟踪供应链中的商品质量。如果我们通过最终消费者退回的不良品的多少评估它们的话,有多少是由软件引起的,有多少是由质量分析人员开发的质量控制程序引起的,有多少是由提高原材料质量的行动引起的?如果我们想要比较不同的软件团队,这种(责任)分摊的困难是一个巨大的障碍,也许如果是为了判断使用Clojure是否帮助团队会来得更有效一点。同样的情况是,开发人员工作得很好,并交付了优秀且有价值的软件来跟踪质量,但是质量控制流程并不好。因此,尽管开发人员在他们这方面做得很好,但不良品还是因此没有下降的话,整体项目(包含开发人员的软件交付也作为整体项目的一部分)还是被认为是失败的。

但是,这个分摊的问题不应该被当作观察错误事物的理由。俗话说“you get what you measure”,在这种情况下更应该是“you get what you try to measure”。如果你把成功的评价集中在产出上,那么每个人都在思考如何提高产出。因此,即使很难确定团队的工作如何影响结果,但人们转而考虑结果以及如何改善结果的事实,这个要比在团队中去比较谁在生产产品方面(不考虑结果,即不考虑客户价值的这种产品生产的方向是错误的)更加熟练的这一个方面上的努力来得更加有价值。

 

原文链接:

https://martinfowler.com/bliki/OutcomeOverOutput.html

这篇关于结果【outcome】大于产出【output】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677940

相关文章

产出文件乱码问题

产出到文件的部分繁体字字符串出现乱码 主要原因是从数据库读取的字符是GBK,产出的字符串编码设置成立GB2312,字符集部分不匹配,产出字符串的编码改成GBK后问题解决。

18053 大于平均分

### 思路 1. 输入10个整数并存储在数组中。 2. 计算这10个整数的总和。 3. 计算平均值。 4. 统计有多少个数比平均值大。 5. 输出统计结果。 ### 伪代码 1. 初始化一个数组 `arr` 用于存储10个整数。 2. 初始化变量 `sum` 为0,用于存储总和。 3. 初始化变量 `count` 为0,用于统计比平均值大的数的个数。 4. 循环读取10个整数并存储在数组

Android Studio解决Build Output乱码问题

解决方案:双击Shift键,在Actions中选择Edit Custom VM Options,然后输入-Dfile.encoding=UTF-8,重启Android Studio即可。

数据结构-非线性结构-树形结构:有序树 ->二叉树 -> 平衡二叉树(任何节点的左右子树的高度差不大于1)-> 完全二叉树(除最底层外的其他层都被填满,且最底层左到右填入) -> 堆(优先队列)

完全二叉树:即除了最底层,其他层的节点都被元素填满,且最底层左到右填入。 完全二叉树属于平衡二叉树。 堆是一种完全二叉树,且满足以下条件: 最大堆:每个节点都比其子树所有节点大的完全二叉树;最小堆:每个节点都比其子树所有节点小的完全二叉树; 我们对堆中的结点按层进行编号,可以将堆逻辑结构映射到数组中 大顶堆:arr[i] >= arr[2i+1] && arr[i] >= arr[2i

从数据集中挑选红色区域大于某一阈值的图片

算法训练时需要对图片进行过滤,改脚本用来从数据集中挑选中图片中红色区域大于某一阈值的图片。 #!usr/bin/env python#-*- coding:utf-8 _*-import osimport shutilimport numpy as npimport cv2lower_red = np.array([0, 127, 128]) # 红色阈值下界higher_red =

ZCC4105 48V 1MHz Synchronous Buck With 3.3V LDO Output

1 Features 。输入电压范围7V to 48 V 。输出电压可调节2.5V to 24 V 。1.2 A逐周期峰值限流                      。  内部环路补偿 。1MHz工作频率,支持小型L、C器件                                                    。内部集成同步管,无需外部肖特基二极管自适应恒压/恒流工

OWASP: how to use Cppcheck output 如何閱讀cppcheck output 以改進代碼安全性

文章目录 How to install cppcheckHow to read output xmlas .XMLopen in excelDescription Relationship between CWE and OWASPInjection (OWASP A1)Broken Authentication (OWASP A2)Sensitive Data Exposure (OWAS

微信大于1G文件转输不了的解决方案

前言:今天要传输大文件 大于1GB 微信传输不了,提示大于1G 想到了使用网盘传输,结果显示需要15小时下载时间, 于是选择在线下载,没想到各种套路和广告,把卸载很久的QQ又重新安装上了,结果显示版本太低了,重新安装的最新片,发现密码不记得了,经过好几次尝试终于成功了。 使用工具:QQ最新版 文件离线上传 方法:通过QQ离线上传功能将大于1G的文件上传到QQ,然后通过另一个QQ号登录到其它电脑

CF——Game Outcome

Game Outcome Description Sherlock Holmes and Dr. Watson played some game on a checke

C语言实现获得文件大小,大于某个值,删除该文件

C语言实现获得文件大小,大于某个值,删除该文件 #include <stdio.h>#define ONE_MB 1024*1024long get_file_size(char* file_name);int main(int argc, char *argv[]){long length = get_file_size("aaa.txt");if (length > ONE_MB){u