書籍「Tidy First?」を読んで正味現在価値（NPV）や金融オプションがサッパリだったので勉強してみた


# 書籍「Tidy First?」を読んで正味現在価値（NPV）や金融オプションがサッパリだったので勉強してみた

最近、Kent Beckさんの「Tidy First?」を読みました。

![Tidy First? 表紙](https://m.media-amazon.com/images/I/81HY3rbdOBL._SY522_.jpg)
[Tidy First? ―個人で実践する経験主義的ソフトウェア設計 - Kent Beck（Amazon）](https://www.amazon.co.jp/Tidy-First-%E2%80%95%E5%80%8B%E4%BA%BA%E3%81%A7%E5%AE%9F%E8%B7%B5%E3%81%99%E3%82%8B%E7%B5%8C%E9%A8%93%E4%B8%BB%E7%BE%A9%E7%9A%84%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E8%A8%AD%E8%A8%88-Kent-Beck/dp/4814400918?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=8DH1HLDF23TT&dib=eyJ2IjoiMSJ9.O7-RUkK6TWLmGTu5ihqKF8wB1LIxQAf5kYOKCKlhQRc6ZKyhP7TYEJouct5TjCLsd4YMuPvpzLPGoo67fgLL1WsYtCYd9CHizapKYCUg9uD7x8wMpMipbTeHRhmPT1CZBNcpWPNAzRULMdM55TlJg6DWMS6Duh6GmW3_tjFx8AV914i2_Ko3W07kLSw-NFKVVF-qZZJvYxBzRDn0lNakJCI79Rjc-a2liD94wbUTctk.mtvex1sS2dlBj997vfN30ZCNoosBb4wyREsy2GMaVxc&dib_tag=se&keywords=tidy+first%3F&qid=1740839061&sprefix=tidy+first+%2Caps%2C193&sr=8-1&linkCode=ll1&tag=shin21sk-22&linkId=68730457d0c05cba6db57d8ea9460781&language=ja_JP&ref_=as_li_ss_tl)


Kent Beckさんは、エクストリームプログラミング（XP）の考案者であり、ソフトウェアパターンの先駆者としても知られています。当時は自分もXPをやるぞ！と意気込んでペアプログラミングをやろうとして、上司から「そんな工数、どっから捻出するねん！」と怒られたことしか覚えていません。。。

さて、話を「Tidy First?」に戻しましょう。この本はKent Beckさんの数十年ぶりの書籍で、三部作の第一弾だそうです。ざっくり言うと、コードのリファクタリングやクリーンコードの整理をいつするのか？という問いかけを私たちにしています。ページ数は少ないものの、結構難しい内容です。特に「第Ⅲ部 理論」では、正味現在価値や金融のオプションなどを例に説明されており、正直なところ全く理解できなかったので、勉強した内容をまとめました。

> ソフトウェア設計は「すぐに稼ぐ／あとで使う」と「モノではなくオプションを作る」という要求を調和させなければいけない。
>
> – 24章　経済性：時間価値とオプショナリティ

> 私が学んだ本質は、2つの驚くべき性質から成り立っていた。
> 
> - 今日の1ドルは明日の1ドルよりも価値があるので、早く稼ぎ、あとで使う。
> - カオスな状況では、モノよりオプションのほうが優れているので、不確実性に対してオプションを作る。
>
> – 24章　経済性：時間価値とオプショナリティ

「今日の1ドルは明日の1ドルよりも価値がある」というのが正味現在価値の考え方です。「不確実性に対してオプションを作る」というのが金融のオプションの考え方ということですね。まずは、正味現在価値から考えてみましょう。

## 正味現在価値 (Net Present Value, NPV)

Tidy First?では正味現在価値の説明に次のような文章が載っています。

> 多いことは多いことであり、少ないことは少ないことである。そう思うだろう？ 実は場合による。ことお金に関しては、以下の条件次第だ。
> 
> - いつなのか
> - どれくらい確実か
> 
> 私が今日あなたに1ドルあげれば、あなたは好きなことに使えるし、あとでもっと大金になるように投資もできる。私が明日あなたに1ドルあげると約束しても、それは今日渡す1ドルより価値が低い。なぜか？
> 
> - 使えない。つまり価値が低くなる。
> - 投資できない。つまりもらっても今日もらうよりは価値が低くなる。
> - 実際には私があげない可能性がある。まあ私はそんなことはしない。私のことは完全に信頼してほしい。だが、他の人であればその1ドルを渡さない可能性に備えなければいけない。つまり「明日の1ドル」は価値が低くなる。
>
> – 25章　明日の1ドルより今日の1ドル

洋書の善し悪しになりますが、途中でジョークを挟むのは和訳された書籍では読みづらいなぁ・・・と思ってしまいます。例えば、「実際には私があげない可能性がある。まあ私はそんなことはしない。私のことは完全に信頼してほしい。」とかですね。

自分なりに咀嚼して、言い換えてみました。 「今日1000円あげる」と言ったら、もらった人はすぐにお菓子を買ったり、貯金したり、いろいろなことができます。でも、「明日1000円あげる」と言われたら？少し違った感じがしませんか？

**正味現在価値とは、この「今日もらうお金の価値」と「未来にもらうお金の価値」を比べる方法**です。難しく言うと、将来のキャッシュフローを現在価値に割り引いた合計のことです。

**いつもらえるか：**
今日1000円もらえれば、すぐに使えるので価値が高いです。明日1000円もらう約束だと、ちょっと待たないといけないので、今日の1000円より価値が低くなります。

**どれくらい確実か：**
今日の1000円は確実に手に入るお金です。明日もらえる1000円は、もしかしたらもらえないかもしれないので、価値が低くなります。

つまり、正味現在価値は「いつもらえるか」と「どれくらい確実か」を考えることで、今日の価値に換算する方法です。
未来にもらうお金は、今日の同じ額よりも少し価値が低くなるので、先に稼いで後でゆっくり使う方が良いという理論です。

> より早く確実にお金を稼ぎ、あとでお金を使う。先に整頓するのはやめよう。それはすぐにお金を使いあとでお金を稼ぐことだ。もしかすると、あとに整頓するのも、改めて整頓するのも、しないほうがよいかもしれない。
>
> – 27章　オプション vs キャッシュフロー

Tidy First?の観点では、**「まず動くものを作って、要件を満たし、その後ゆっくりソースを綺麗にしたり整理したりする方がいいんじゃない？」** という内容です。

## 金融のオプション

Tidy First?では「じゃがいも1個で1ドル」という例を使って説明されていますが、少し分かりづらいと感じました…。

そこで、私なりに言い換えてみます。 例えば、チョコレートが大好きなあなたがいるとします。今、スーパーではチョコが1枚100円ですが、来月には値上がりするかもしれないと考えています。そこでスーパーに「来月、このチョコを100円で買う権利」を100円で購入する契約をします。この「権利」こそが金融のオプションです。

もし来月、チョコが150円に値上がりしていたら、この権利を使うことでお得に買えます（50円の利益になりますね）。一方で、もしチョコが80円に値下がりしていた場合は、この権利を使わず、普通に安く買うこともできます。

金融の世界では、この「買う権利」をコールオプション、「売る権利」をプットオプションと呼びます。これらのオプションは、リスクを抑えたり利益を狙うために、投資家たちによく利用されています。

> 今お金を使って、あとでお金を稼ぐ（たとえ現時点でその方法を確実には知らなくても）。絶対に先に整頓しよう（整頓がオプションを作るときに）。あとに整頓しても、改めて整頓してもよい
> – 27章 オプション vs キャッシュフロー

Tidy First?の観点では、**「まずソースを綺麗に整理整頓すること」** が推奨されています。その理由は、将来の変更作業がスムーズになるからです。振る舞いを変更することで逆にややこしくなる場合は、その選択をしないこともできるということになります。

## まとめ

いかがでしょうか。未だ理解仕切れていないので、まだまだ読み込みが浅いなぁ・・・と。投資とかやっていればピンっとくるんでしょうが。。。

- Tidy First? はコードの整理整頓の重要性を説く書籍である
- 正味現在価値 (NPV)は「今日のお金は未来のお金より価値が高い」という考え方である
- 金融のオプションは「不確実性に備え、選択肢（買う権利/売る権利）のこと」である
- 先に整頓するのは、後に整頓するのかはかかるコストにより判断する