自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

完美軟件的經(jīng)濟學(xué)分析

開發(fā) 開發(fā)工具 后端
如果問100個軟件公司的CEO,問他們是否愿意發(fā)布含有bug的軟件。他們會說什么?50個根本不愿意回答,會說一些軟件bug是這個行業(yè)中一個需要解決的大問題等不著邊的話;40個會說“當(dāng)然不會!”,并立即給他們的投資者打電話說這是誣陷,會追究法律責(zé)任。

[[105133]]

如果問100個軟件公司的CEO,問他們是否愿意發(fā)布含有bug的軟件。他們會說什么?50個根本不愿意回答,會說一些軟件bug是這個行業(yè)中一個需要解決的大問題等不著邊的話;40個會說“當(dāng)然不會!”,并立即給他們的投資者打電話說這是誣陷,會追究法律責(zé)任。9位會低著頭說“無能為力”。而這***一位會直盯著你的眼睛說“當(dāng)然會。”

我不知道這***一位是如何領(lǐng)導(dǎo)一個軟件公司的,因為他明顯學(xué)過經(jīng)濟學(xué)。

軟件不可能沒有bug,如果你希望發(fā)布一個***的軟件,你必須解決藏在代碼里的所有bug。(想把它們擋在門外?不可能,單元測試,敏捷方法,scrum,以及任何當(dāng)今你能想到的方法論,都不能防止bug進入你的代碼庫。如果我錯了,我相信你會在評論里告訴我。)

正如你期望的,你在修補bug中投入越多的時間和資金,你就能解決越多的bug。但是,不幸的是,我們的來自經(jīng)濟學(xué)的死對頭,受益遞減法則,同樣適用于這個過程。專業(yè)的講,這個法則指在投入生產(chǎn)要素后,每單位生產(chǎn)要素所能提供的產(chǎn)量增加發(fā)生遞減的現(xiàn)象。用通俗的話講,這就是說,你能從這個過程中得到的并不等同于你所有投入的。相反,你的產(chǎn)出會隨著投入到增加形成一條迅速下降的曲線,曲線的末端、投入到軸線上,最終成為一條長尾。

舉個例子,假如一個程序有100個bug,我們知道這需要投入100分的努力來找到并修復(fù)這所有100個bug。受益遞減法則告訴我們,頭40分努力將會找到70個bug,而接下來的30分努力能找到20個bug,剩下的30分努力能找到***的10個bug。這就是說,頭70個bug(很簡單的 bug)很便宜,容易找到,算起來每個bug只消耗40 / 70 = 0.571分努力。接下來的20個bug(藏的較深的bug)要昂貴的多,每個消耗30 / 20 = 1.5分努力,而***的10個bug(真正難發(fā)現(xiàn)的bug)驚人的昂貴,每個消耗30 / 10 = 3分努力。消滅這***的10個bug要比消滅起初的70個bug,每個bug需要投入的時間或資金要多出5倍。從付出的努力看,消滅大多數(shù)bug(70%-90%)和消滅所有bug,它們的成本有巨大差別,從數(shù)字上看相差兩倍之多。

而在現(xiàn)實中,實際情況比這更糟糕。因為你不知道何時能干掉這***一個bug——沒有一個像上面例子那樣的倒計數(shù)——你不得不不斷的去尋找更多的bug,即使是它們已經(jīng)全部被干掉了,你也要去證明它們確是全部被干掉了。如果你想消滅所有的bug,你還要計算你的成本。

所以,消滅一個程序中所有的bug是一件代價很大的事。不妨讓我們花一分鐘這樣思考一下:一個軟件公司最終決定要這么做。軟件公司并沒有設(shè)定像“發(fā)布沒有bug的軟件”的目標——他們設(shè)定的目標是“11月19號發(fā)布”——于是,這個目標改變了公司的測試計劃和開發(fā)計劃(不論有沒有計劃),這必然意味著的預(yù)算的增加?,F(xiàn)在,你想象一下,誰會為這多出的預(yù)算買單?公司?(嗨!)如果你沒有在軟件公司工作過,讓我來給你一點提示:非也。軟件公司會把成本轉(zhuǎn)嫁到客戶身上。因此可以得出,你喜歡的軟件都是你支付的起的軟件。我得到的消息是:你喜歡有bug的軟件。(開源軟件也是如此。除非你愿意花更多的錢或等更長的時間。很有可能你會接受去忍受次等的軟件事實。)

現(xiàn)在澄清一下,我并不是說軟件公司應(yīng)該發(fā)布有大量嚴重bug的軟件。我是說他們的軟件里可以有少量的小bug。

如何知道一個bug是大還是小?你應(yīng)該思考誰會遇到它,當(dāng)遇到時會發(fā)生什么樣的壞情況。如果一個用戶,進入第三層菜單,打開一個高級配置窗口,選中三個復(fù)選框,在敲擊“A”鍵時得到了一個奇怪的錯誤信息,這是小bug。它埋的很深,當(dāng)碰到它時人們會說“靠”,然后改為點擊按鈕,然后就會愉快的做其它事情去了。如果在使用你的程序中一個常用的操作時崩潰,那這就是個大bug。大部分人遇到這樣的bug時都會憤怒不已。

所以,我要提出一個判斷你的軟件何時滿足發(fā)布條件的黃金法則。這個黃金法則內(nèi)容是,你應(yīng)該不斷的測試并修復(fù)軟件中的bug,直到發(fā)現(xiàn)這些bug是:

  1. 不會讓你的公司蒙羞。
  2. 不會激怒你的客戶。

相比起讓一些用戶遇到這些并不在于的bug的代價,你的要找出程序中所有bug并確保全部糾正的做法代價實在太高。前提條件是,不要讓用戶做你的測試員——如果你這樣做,必定會跟黃金法則沖突——寧愿相信所有的bug并非生來平等,有些能影響一個產(chǎn)品的發(fā)布,而另一些則不然。不要害怕發(fā)布的產(chǎn)品中有 bug。如果你開發(fā)的是人們想要的好軟件,一些bug的存在并不會打攪他們,尤其是當(dāng)軟件升級操作簡便時,比如通過SaaS或Web應(yīng)用。

如果你的軟件測試符合黃金法則,那么,你的客戶最迫切得到的是你的軟件,而不是希望你去修改那些小bug。所以,準備發(fā)布吧!

哦,別忘了去問那***一個CEO關(guān)于炒股的技巧。經(jīng)濟學(xué)家的公文包里總有***的數(shù)據(jù)。

原文鏈接:http://www.aqee.net/the-economics-of-perfect-software/

責(zé)任編輯:林師授 來源: 外刊IT評論
相關(guān)推薦

2020-04-14 09:01:19

人工智能勞動力經(jīng)濟

2012-08-23 15:56:30

IBM敏捷軟件交付

2009-08-20 09:10:38

IBM軟件經(jīng)濟學(xué)

2013-08-30 11:23:41

軟件專利

2010-05-07 13:42:20

云計算成本

2015-01-07 21:36:58

2017-06-13 16:09:49

2018-09-19 11:55:02

2011-06-07 09:30:12

2016-11-29 16:46:17

存儲閃存經(jīng)濟學(xué)

2017-09-06 15:54:14

2021-05-16 15:36:35

大數(shù)據(jù)經(jīng)濟數(shù)據(jù)分析

2022-04-06 07:14:29

區(qū)塊鏈網(wǎng)絡(luò)生態(tài)系統(tǒng)

2013-07-12 09:39:44

SDK經(jīng)濟學(xué)移動開發(fā)者B2D

2020-03-02 09:56:48

大數(shù)據(jù)農(nóng)業(yè)技術(shù)

2012-05-14 13:34:27

IBM毛新生云計算

2016-11-30 14:18:30

互聯(lián)網(wǎng)

2018-08-15 15:05:45

2011-06-08 17:51:17

軟件開發(fā)平臺Rational協(xié)作

2012-03-14 09:26:07

點贊
收藏

51CTO技術(shù)棧公眾號