我們必須讓軟體開發在經濟上更有價值:花錢更慢、賺錢更快、拉長專案可能的生產壽命。但最重要的是——增加業務決策的選擇權(options)

三個因素、四種策略#

把專案的現金流入與流出加總起來,就能簡單分析出什麼讓一個軟體專案有價值。考慮利率的影響,可以算出現金流的淨現值(net present value, NPV);再把折現後的現金流乘上「專案能存活到收付這些現金流」的機率,分析就更精確。

有了這三個因素——

  • 現金流入與流出
  • 利率
  • 專案死亡率(project mortality)

——我們就能訂出最大化專案經濟價值的策略,途徑有四條:

  • 花更少——很難,因為大家一開始拿到的工具與技能都差不多。
  • 賺更多——只有靠更優秀的行銷與業務組織才辦得到,不在本書討論範圍(謝天謝地)。
  • 晚點花、早點賺——花出去的錢付較少利息,收到的錢賺較多利息。
  • 提高專案存活機率——這樣才更有機會拿到專案後期的大筆回報。

把專案看成一系列選擇權#

還有另一種看待軟體專案經濟學的方式:把它看成一系列選擇權。軟體專案管理有四種選擇權:

  • 放棄的選擇權(option to abandon)——就算取消專案,你也能從中得到些什麼。在不必以原始構想的形式交付的前提下,你能從專案中取走的價值越多越好。
  • 轉向的選擇權(option to switch)——你可以改變專案方向。如果客戶能在專案進行到一半時改變需求,這個專案管理策略就更有價值;需求能改得越頻繁、越劇烈,越好
  • 延遲的選擇權(option to defer)——你可以等到情況明朗再投資。如果你能延後花錢、又不至於完全失去投資機會,這個策略就更有價值;能延越久、能延的金額越大,越好
  • 成長的選擇權(option to grow)——如果市場看起來要起飛,你能快速擴張以掌握機會。如果策略能在追加投資時優雅地放大產能,它就更有價值;專案能長得越快、越久,越好

不確定性才是主宰#

計算選擇權價值涉及五個因素:

  1. 取得這個選擇權所需的投資額
  2. 行使選擇權時買下標的的價格
  3. 標的的當前價值
  4. 你能行使選擇權的時間長度
  5. 標的最終價值的不確定性

這五者之中,選擇權的價值通常由最後一項——不確定性——所主宰。

由此可以做出一個具體預測。假設我們設計一套專案管理策略,用以下四點來最大化「以選擇權觀點分析」的專案價值:

  • 準確且頻繁的進度回饋
  • 大量能戲劇性改變需求的機會
  • 較小的初始投資
  • 加速前進的機會

那麼——不確定性越大,這套策略就越有價值。 無論不確定性來自技術風險、變動的商業環境,或快速演化的需求,皆然。

這給了「我什麼時候該用 XP?」一個理論上的答案:當需求模糊或不斷變動時,就用 XP。

延伸案例:一個 10 美元功能的選擇權定價

假設你正愉快地寫著程式,看到可以加上一個功能,成本 10 美元。你估計這個功能的回報(淨現值)大約是 15 美元,所以加上它的淨現值是 5 美元

但假設你心裡很清楚,這個新功能到底值多少其實完全不明朗——15 美元只是你的猜測,不是你真的知道它對客戶值這麼多。事實上,你認為它對客戶的價值,可能與你的估算相差達 100%

再假設(見〈變更成本〉)一年後再加這個功能,成本大約仍是 10 美元。

那麼「單純等待、現在不實作」這個策略值多少?在約 5% 的一般利率下,選擇權理論的計算給出 7.87 美元

等待的選擇權,比現在就投資實作(NPV = 5 美元)更有價值。

為什麼?因為在這麼大的不確定性下,這個功能對客戶說不定價值高得多——那種情況下,你等待並不比現在實作吃虧;也可能它一文不值——那你就省下了一場毫無價值的白工。

用交易術語說,選擇權「消除了下檔風險(downside risk)」。

以選擇權定價分析 XP 的觀點,作者歸功於 John Favaro。