Skip to Content
先整理?
book

先整理?

by Kent Beck
May 2025
Intermediate to advanced
124 pages
1h 7m
Chinese
O'Reilly Media, Inc.
Content preview from 先整理?

第 26 章 选项 选项

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

上一章将软件系统的经济价值模拟为未来现金流的折现总和。当我们改变这些现金流时,我们就创造了价值:

  • 赚钱更多、更快、更有可能

  • 花钱少、时间晚、可能性小

作为一名软件设计师,在这种模式下工作已经很不容易了。我们生活在一个 "金发姑娘 "的世界里:设计不能太多或太早,设计不能太少或太晚。但等等,还有更多。(如果这很容易,每个人都已经在做了,也就没有理由写这本书了)。还有一个有时相互冲突的价值来源:可选择性。

几十年前,我在华尔街使用交易软件。我按照自己的喜好进行了背景阅读,发现了期权定价。我就这样钻进了兔子洞。我最近发明了测试驱动开发(TDD),并在寻找实践课题。期权定价似乎是一个很好的例子:已知答案的复杂算法。

我首先实施了现存的期权定价公式测试(在此过程中发现在比较浮点数时需要ε)。在这个过程中,我对期权有了一种直觉,这种直觉开始渗透到我对软件设计的总体思考中。

我无法为你实现所有这些算法,但我可以报告我学到的经验如果你真的想 "理解",我鼓励你尝试一下):

  • "下一步我可以实施什么行为?"甚至在我实施之前,它本身就有价值。这让我大吃一惊。我以为我所做的一切都会得到回报(如上一章所述)。其实不然。我得到的报酬主要是我下一步能做什么。

  • "我下一步可以实施什么行为?"行为组合越多,价值就越大。如果我能增加行为组合的数量,我就创造了价值。

  • "我下一步可以实施什么行为?"组合中的行为越有价值,就越有价值。我无法预测哪种行为最有价值,也无法预测它的价值有多大,但...

  • 我不必在意哪个项目最有价值,只要我继续选择实施它。

  • (我对价值的预测不确定,选择的价值就越大(相对于直接实施)。如果我接受变革,我就能在传统软件开发最失败的情况下最大限度地创造价值。

如果您以前没有接触过金融选项,我在这里为您简单介绍一下。

从有价格的东西开始。一个土豆一块钱。我有一块钱你有一个土豆我给你一块钱你给我土豆现在我有一个土豆,但我没有一美元。你有一块钱 但你没有土豆了

也许我现在不想要土豆,但我明天就想要。我肯定明天就要。我可以今天给你一块钱,换取你明天给我一个土豆的承诺。明天你把土豆送过来,我们就皆大欢喜了。今天我会给你比一美元少一点的钱,因为金钱有时间价值。

如果我不确定明天是否要吃土豆怎么办?如果天气好,我可能会去野餐,在这种情况下,我会做土豆沙拉。但如果天气不好,我可不想买来的土豆白白浪费掉。在这种情况下,我可以用一美元买下你明天给我一个马铃薯的承诺,但我可能不会让你兑现这个承诺。

我应该为这个 "一诺千金 "付你多少钱?你明天就能拿到这一块钱,但前提是我必须让你履行承诺,把土豆卖给我。你需要知道,如果明天你不能把土豆卖给我,你还能用它做什么。如果明天你有其他好的用途,那么你可以把这个选择卖给我,只要几分钱。你不会太在意我明天买不买。但如果我明天不买,马铃薯就会浪费掉,那么你今天就必须向我收取几乎全价的费用。

我刚才介绍的是看涨期权--在未来以固定价格购买某物的权利,但不是义务。金融期权有这些参数:

  • 我们能买到的基本东西

  • 标的物的价格,包括该价格的波动性

  • 期权,即我们今天支付的价格

  • 期权的期限,或者说我们决定是否购买标的物的时间(有些期权允许你在从现在到期限结束的任何时候购买标的物,这就是软件的样子)。

这对软件设计意味着什么?软件设计是为改变做准备;改变行为。我们接下来可能 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

超越Vibe编程

超越Vibe编程

Addy Osmani
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9798341656949