技術債務(母雞的遭遇)

fmms 12年前發布 | 4K 次閱讀 技術

技術債務, 是指匆忙的實現一個功能,卻對現有的程序庫造成了破壞(在實現的過程中污染了代碼庫的設計),這對于一些項目經理/客戶來說就像是天書奇談。也許他們是明 白的,只是不愿意承認罷了,我估計是這樣的。不管怎樣,我想起來一個小故事,當下次遇到這種情況,需要向他們解釋增加某些新功能的代價時,也可用講這個故 事給他們聽。

一個農夫有3只母雞。每只母雞每天下一個蛋。農夫跟當地的一個食品店老板做生意。食品店老板每天從農夫那里買2給雞蛋放在店里出售。一切都很好,直到有一天,食品店老板出現在農夫家里:

食品店老板: 哎呀,今天我需要一些雞肉。

農夫: 雞肉?你和我的生意里可不包括這些。

食品店老板: 我知道。但我真的需要一些雞肉。我計劃要做一個B2S(S是胃的縮寫)模式的PaaS(P是肉禽的縮寫)平臺。

農夫: 什么?

食品店老板: 非常重要的東西。你可以提供我一些雞肉嗎?

農夫: 這樣呀,事情不是那么容易辦到 — 我要孵化雞蛋,等小雞長大了才能給你…少說也要一個月吧。

食品店老板: 一個月?太久了…我以為你現在就能給我呢。

農夫: 時間有自己的腳步,你必須耐心一點等。

食品店老板: 可是,為什么你不能在現有的母雞中殺一個呢?這樣一來,我有了雞肉,你每天還能產兩個蛋。這就夠了,不是嗎?

農夫: 可是,我不覺得這是一個好主意。這會把我推向一個沒有回旋余地的境況,萬一剩下的雞中有一只突然出了什么意外怎么辦。

食品店老板: 放心啦,不會發生那樣的事的…我真的非常非常需要雞肉!殺一只雞吧!

農夫: 那好吧,我想我可以…

于是,農夫拿起一把刀,把他的一只母雞送入了天堂。食品店老板得到了他的雞肉,返回了食品店。

一周后,食品店老板又一次來到了農夫家里:

食品店老板: 你好,我來了!

農夫: 你好,有什么事?

食品店老板: 你聽我說 — 你的雞肉好極了。事實上,它是如此的鮮美,賣的如此的好,你必須要再給我一只雞。最遲明天早上。

農夫: 這是不可能的事。如果我要再殺一只雞給你,我就沒法每天提供你兩個雞蛋了。

食品店老板: 哦,別那么緊張!客戶需要雞肉,我已經答應客戶明天早上提供給他們了…

農夫: 不行,絕對不能這么干。如果我這么做,我就履行不了我和你的協議了,你知道嗎?如果我這么做,我就沒法提供你足夠的雞蛋了。

食品店老板: 可是我真的真的需要雞肉!明天早上之前!否則客戶會發飆的,地球將會塌陷,世界末日將會到來!給我一只雞吧,現在!

農夫: 那好吧,如果你非要這么不顧后果的想要,那就拿去吧!但是,從現在開始,雞蛋我是沒法提供你了,明白?

食品店老板: 當然,當然。但我相信是個很聰明的人,我猜你能找到方法解決這個問題。再見!

食品店老板離開回到了店里。

第二天:

食品店老板: 嗨,雞蛋呢?

農夫: 你什么意思?

食品店老板: 雞蛋。你只給了我一個雞蛋。發生了什么事?

農夫: 發生了什么事?我有3只雞,你拿走了兩只。現在就剩下一只。一只雞,一個雞蛋。我認為我解釋的已經很清楚了。

食品店老板: 但是合同里并沒有這些!合同里說的很清楚 — 你每天提供我2給雞蛋!你現在讓我向客戶怎么交代?

農夫: 哦,情況我很明白。我無能為力。

食品店老板: 好吧,好吧,不談這事了。咱們聊點其它事情…要是能再能點雞肉就好了。你再給我一些吧?

所以,千萬別學農夫 — 堅決拒絕為了當前利益而長久的破壞你的代碼庫的無理要求,如果你被強迫這樣做,拒絕承擔這樣的任務 — 也不要做食品店老板 — 不要做提出這樣不合理的要求,你要為自己的決定承擔后果。

[本文英文原文鏈接:On technical debt (now with chickens!) ]

本文轉載自: 外刊IT評論 http://www.aqee.net/

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!