沙漏與大鐘
在一個被河流環抱的小鎮,鎮中央有一片空曠的廣場。廣場上什麼都沒有,只有一塊被歲月磨得發亮的石基。
鎮長找來一位遠方的鐘錶大師。
鎮長大師,我們想要一座大鐘。一座能替整個小鎮記時的大鐘。
大師環顧四周,看了看石基,又看了看自己的雙手。他從行囊裡取出一個小小的沙漏,放在石基上。
大師一年。一年之後,這座鐘會開始走。
鎮民們歡呼起來。一年,他們想,不過是四個春天。
大師的工作坊在廣場邊上。清晨的光照進窗戶,他開始切第一組齒輪。
他切得很慢,很細。齒輪的牙要切得比髮絲還齊,否則鐘走到一半就會卡住。他切了一整年,齒輪卻只切到了一半。
他沒有慌。他只是在心裡把「一年」改成了「兩年」。
他以為,把時間改長一點,事情就會照新的時間表走。
第二年,風暴來了。
風暴掀翻了工作坊的屋頂,雨水浸濕了那些切了一半的齒輪。大師花了三個月修屋頂,又花了兩個月重新切被水浸壞的齒輪。
他再次改時間表。這次,他寫得比從前更仔細:「三年,加上緩衝。」
他以為,這次他已經把「會拖」這件事算進去了。
第三年,第四年。
齒輪切好了,卻發現擒縱器怎麼都鎖不住。擒縱器是鐘的心臟,它要一下一下地「嗒、嗒」,把時間切成均勻的節拍。大師試了又試,拆了又裝,裝了又拆。
一個年輕的學徒,跟隨大師已經兩年。有一天,他忍不住問:
學徒師父,您已經把「會拖」算進去了,為什麼還是拖?
大師停下手裡的活。
他看著那個沙漏。沙漏裡的沙,從上漏到下,再翻過來,又從上漏到下。
大師因為我算進去的「會拖」,本身也會拖。
學徒不懂。
大師我以為「多出來的一年」是固定的。可是當我真的開始過那「多出來的一年」,裡面又長出了新的問題。我為延誤做的準備,本身也需要時間。而那個準備,也會延誤。
他抬起頭,望向窗外。廣場上,石基還空著。
延誤不是一個要修正的錯誤,而是一面對著另一面的鏡子。
很多年以後。
大師老了。他的背彎了,手也不再穩。但那天清晨,他終於把最後一顆齒輪放進擒縱器。
「嗒。」
「嗒、嗒。」
大鐘開始走了。
廣場上圍滿了人。他們看著鐘,看著那個彎著背的老人。學徒已經長大了,站在人群裡。
學徒師父,值得嗎?您說的一年,走了十幾年。
大師沒有回答。他坐在鐘下,把手放在膝蓋上,看著鐘擺一下、一下。
大師鐘從來不是重點。
學徒愣住了。
大師重點是,沙漏一直在漏,而我一直在做。我沒有贏過時間,我只是沒有離開。
揭曉 — 霍夫斯塔特法則(Hofstadter's Law)
概念揭曉:霍夫斯塔特法則(Hofstadter's Law)
這個故事讲的是霍夫斯塔特法則,由認知科學家道格拉斯·霍夫斯塔特(Douglas Hofstadter)提出:
「事情總是比你預期的花更久——即使你已經把霍夫斯塔特法則考慮在內。」
(It always takes longer than you expect, even if you take into account Hofstadter's Law.)
這是一條關於時間估計的遞迴定律。它說的不只是「你會低估時間」,而是更狠的一層:你對「低估」的修正,本身也會被低估。
- 第一層:你估計一年,結果要兩年。
- 第二層:你估計兩年(含緩衝),結果要三年。
- 第三層:你估計三年(含「會拖」的緩衝),結果要四年。
每一層「多出來的時間」都不是固定的常數,而是會隨著工作本身繼續生長。你為延誤做的準備,本身也需要時間,而那個準備,也會延誤。
這就是為什麼專案管理裡有「緩衝」(buffer)的概念,而緩衝本身又需要緩衝——一條永遠追不上的尾巴。
比喻對應表
故事解碼
| 故事元素 |
霍夫斯塔特法則 |
| 大師承諾「一年」 |
最初的樂觀估計 |
| 齒輪切到一半 |
工作比想像中複雜 |
| 風暴浸壞齒輪 |
未預期的中斷 |
| 「加上緩衝」的新時間表 |
把「會拖」算進去 |
| 學徒的提問 |
對遞迴性的覺察 |
| 「我算進去的會拖,本身也會拖」 |
修正本身也被低估 |
| 沙漏一直在漏 |
時間的持續流逝 |
| 大鐘終於走 |
最終完成,但已遠超原估 |
| 「我沒有贏過時間,只是沒有離開」 |
與遞迴共處,而非戰勝它 |
常見誤讀