专栏首页ThoughtWorks关注成效而非产出

关注成效而非产出

我一直认为成效是我们应该关注的重点。试想一个团队提供了很多功能(无论我们是用代码量、功能点、还是用户故事来度量),只要这些功能没有帮助用户改善生产活动,其实都是无用功。

假设有一个开发在线电商的团队,如果我们关注团队的产出,可能会考虑他们在上个季度中开发了多少新功能,或者考虑跨功能的提升,例如页面加载时间减少了多少。但是,如果考虑成效,增加销售收入或减少产品支持电话数量才是真正有价值的度量。关注成效而不是产出,就会更加倾向于构建那些可以提高软件用户和客户效率的功能。

(评估软件开发团队的效能)

与任何专业活动一样,从事软件开发的我们也希望学习如何能够更加高效。这对于希望改善自身绩效的个体开发者,希望改善组织内团队的管理者,亦或是像我这样试图提高整个行业游戏水平的专业人士来说,都是如此。造成这方面学习困难的原因之一是没有明确的方法来衡量软件团队的生产力。在此之上,考虑基于产出还是成效评价有效性,让这个问题变得更加复杂。

我一直认为成效是我们应该关注的重点。试想一个团队提供了很多功能(无论我们是用代码量、功能点、还是用户故事来度量),只要这些功能没有帮助用户改善生产活动,其实都是无用功。许多未使用的功能被浪费,更糟糕的是未使用的代码会使代码库膨胀,从而使将来添加新功能变得越来越困难。身处这样境地的软件开发团队需要关心新功能的实用性,减少新功能的开发,从而能够聚焦功能实用性。

我听说过一个反对使用基于成效作为观察点的论点 —— 要想针对成效提出可重复的度量,要比针对产出难很多。我个人很难理解此观点:众所周知,度量软件开发的纯产出是困难的,即使不玩复杂的游戏,代码行也是无用的度量;功能点或故事点的可复制性更差,不同的开发者针对同一事项会做出不同的评估。与此相比,我们是非常擅长衡量财务结果的。当然,确实有很多成效的度量是比较棘手的,比如客户满意度,但我认为其中任何一个都不会比软件功能开发困难。

仅将某事项称为“成效”并不能使其成为正确的关注点,并且选择正确的成效进行观察确实是一项技能。 Seiden提出过一个简单判断,他说成效应该展现在对组织有利的用户、雇员或客户的行为变化之上。他进一步区分了“成效”和“影响”,前者是易于观察的行为变化,后者是对组织更广泛的效果。在开发EDGE框架时,Highsmith,Luu和Robinson建议,针对客户价值(洗碗机可靠性)的成效度量要比关于业务价值(保修维修成本)的成效度量更为重要。

使用成效作为度量的一个结果是指标分解到软件开发团队相对困难。假设有一个使用软件来帮助他们跟踪供应链中商品质量的客户团队,如果我们根据最终消费者的拒单数来度量,那么到底有多少是由于软件本身造成的呢?有多少是由于质量分析师制定的质量管理过程产生的呢?还有多少是由于另外一项旨在提高原料质量的举措而产生的呢?

指标分解的困难是比较不同软件团队效能的巨大障碍,比如希望判断使用Clojure是否有助于提高团队开发效率这样的场景。类似也有典型案例,开发人员可以很好地工作并提供出色且有价值的软件来跟踪质量,但是质量管理过程却拖了后腿。最后的结果是尽管开发人员有出色的贡献,但拒单率并没有下降,该改进举措被视为失败。

但是,分解面临的挑战不应作为观察错误事项的理由。我们常说“度量什么,得到什么”,在这种情况下,更像是“尝试什么,得到什么”。如果你将成功的评估重点放在产出上,那么每个人都会考虑如何增加自己的产出,即使和最后的成功毫无关系。因此,即使很难确定团队的工作如何影响最终成功,促使大家思考成效,以及如何改善成效,比任何对比团队无真正实效产出的努力都值得。


进一步阅读

Seiden为成效的思考提供了一个不错的框架,该框架是从非营利组织的经验中提炼出的,这些非营利组织在评估其工作的影响力方面也面临非常棘手的挑战。

我的同事们将EDGE设计为一种帮助企业在数字化时代生存的运营模式。注重成效是其哲学的核心部分。

专注于成效度量自然会驱动出以成效导向的团队。

| 原文:Martin Fowler

| 译者:肖然

本文分享自微信公众号 - ThoughtWorks洞见(TW-Insights),作者:肖然(译)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 敏捷度量的Why、What、Who、When

    敏捷不仅有度量,度量还是敏捷项目非常重要的一部分,但敏捷度量和传统的度量存在很大的区别,敏捷度量不是以评估和考核为目的的,它是为了帮助团队拉通目标和行动、指导指...

    ThoughtWorks
  • 在技术洪流中看到我们的态度,第21期技术雷达正式发布!

    技术雷达是ThoughtWorks每半年发布一期的技术趋势报告,它不仅是一份持续的技术成熟度评估,其产生还源于ThoughtWorks另一个更大宏大的使命—IT...

    ThoughtWorks
  • 都100%代码覆盖了,还会有什么问题?

    (图片来自:http://t.cn/R06rQHi) 引言 很多人看到这个标题时,都会想“你都100%代码覆盖了,怎么还会有问题呢?” 让我们看一下代码例子:...

    ThoughtWorks
  • Mybatis(1)——HelloWorld

    ORM:对象关系映射(Object Relation Mapping),数据库表和实体类以及实体类的属性对应起来,让我们可以操作实体类就实现了操作数据库表。

    羊羽shine
  • 年末盘点 | 2018年文旅行业大事迹

    ? ? 腾讯×云南“一部手机游云南 ” 10月1日上线运营 “一部手机游云南”由云南省政府和腾讯主导发起,腾讯在云南省昆明市设立控股子公司腾云公司,负责“...

    腾讯文旅
  • 数据库PostrageSQL-高级特性

    在之前的章节里我们已经涉及了使用SQL在PostgreSQL中存储和访问数据的基础知识。现在我们将要讨论SQL中一些更高级的特性,这些特性有助于简化管理和防止数...

    cwl_java
  • 作为一个coder,要想玩好Leetcode并非难事!

    什么要刷LeetCode 大家都知道,很多对算法要求高一点的软件公司,比如美国的FLAGM (Facebook、LinkedIn、Amazon/Apple、Go...

    架构师修行之路
  • 程序员跳槽刷题必备神器!不用打开浏览器,就能刷LeetCode

    LeetCode上面收集了各大公司的经典算法面试题,面试前刷一波最好不过了,今天要和大家分享的这个项目就是一个帮助大家快速刷LeetCode题目的VS Code...

    帅地
  • 一段生成无限级别分类的代码思考

    我们可以看到,原本比较复杂无限级别的分类树状结构的类目被轻易实现了,我想很多小伙伴还不知道是原理是几何,下面我们对上面的代码片段进行分析。

    猿哥
  • Vue项目结构

    一般都会自己弹出来浏览器,没有的话自己手动访问 localhost:8000 即可。

    乐心湖

扫码关注云+社区

领取腾讯云代金券