反杰文斯悖论
Reverse Jevons Paradox

原始链接: https://mht.wtf/post/jevons/

杰文斯悖论(Jevons Paradox)描述了一种反直觉的经济现象:当某种资源的成本下降时,其总消耗量往往反而会增加。这是因为价格降低使得原本“净收益为负”的活动变得可行,从而导致了更广泛的使用模式。例如,软件构建时间的缩短使得开发人员能够在每次提交时都运行测试,而不仅仅是按天执行,这反而导致了更高的整体持续集成(CI)成本。 反之,作者提出了“反杰文斯悖论”,即增加资源的成本会减少其消耗,有时甚至会降至零。在软件开发中,实施过度的官僚流程(例如复杂的审批链和工单要求),会使得重构等细微任务对开发人员而言变得“净收益为负”。这不仅减缓了代码改进的速度,更导致其完全停滞,从而严重损害代码库的长期健康。如果说杰文斯悖论展示了效率如何促成扩张,那么反杰文斯悖论则阐明了阻力如何导致全面停滞。

这篇 Hacker News 的讨论围绕一篇名为“反杰文斯悖论”(Reverse Jevons Paradox)的博文展开,该文声称如果某种资源的成本增加,那么在该资源上的总支出可能会减少。 大多数评论者认为作者误解了这个概念。他们指出,最初的“杰文斯悖论”指的是效率提高反而导致资源总消耗量增加这一反直觉现象。许多人认为作者只是重新发现了经济学中的“需求定律”或基本的“价格弹性”,并指出当成本上升时消费下降是符合直觉的,而非悖论。 讨论随后演变为一场关于组织效率和“繁文缛节”的更广泛争论。参与者讨论了过度的官僚主义(例如强制性的 Jira 工单或复杂的审批流程)如何增加了“小型”但有益的变革成本,从而扼杀了生产力。虽然一些发帖者将原文视为对基础经济学的误解,但另一些人则将其视为对官僚主义如何使大型组织僵化的实践观察。最终,大家达成共识,认为作者所谓的“反向”概念仅仅是一种标准的经济效应——即高成本如何抑制活动——而非什么新奇或神秘的悖论。
相关文章

原文

Jevons paradox happens when the cost of a resource goes down, but the total spend on that resource goes up. It sounds like the total spend should go down since the price went down, but the decreased cost allows for more use within the same budget, and opens up for new families of usage: things that were previously net-negative because of the resource cost are all of a sudden net-positive1.

A typical example is old cars and gas price. If gas is expensive, you'll take public transport to your work, you'll bike to your friends and family, and you'll walk to the grocery store every day so that each time it's not so heavy. If gas prices drop, it suddenly makes sense to drive to places to save time. You can bulk-shop, visit more remote friends and family, and you can even get a new job with a longer commute, since it is now economically viable to do so.

Jevons paradox is often cited in programming, both when the cost is monetary but also when it's time. If your build- and test suite is very slow, you might run it over night when you build the nightly build. If it's really fast, there's no need to limit it to once per day, and you can do a full build and a full run of the test suite on every commit. You can even do it locally before you commit, which means even more use. This is not just speeding up the build and test suite, it is fundamentally different from building nightly builds. Your CI bill, of course, increases.

This is all well known, but I've realized this effect also works in reverse: if the cost of a resource goes up, the total spend on that resource can go down. It can even go all the way to zero! I don't know if this has a name, so I'm calling it the Reverse Jevons paradox, even if it is less paradoxical sounding than the regular Jevons.

Say you're in charge of a big software effort. If you make it hard to change code by requiring multiple levels of reviews, a web of Jira tickets, a horde of people needing to sign off, and other red tape, you might effectively kill a whole class of changes, like "small refactor" PRs. The cost of making small changes to the codebase is so high that it becomes net-negative for a single developer to make the change. It is no longer worth the effort, and so they won't do it anymore. This is, of course, disasterous for the health of a codebase. This too is a fundamental difference, not a marginal change of rate. The codebase doesn't get the same stream of incremental improvements but at a slower rate, the improvements stop coming altogether.

Thanks for reading.

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

联系我们 contact @ memedata.com