2023/05/29

0-90法則 ninety-ninety rule

貝爾實驗室 Tom Cargill 提出 90-90 法則,後來因為 Jon Bentley 寫在 ACM 的 programming Pearls 專欄的 Rule of Credibility 文章中而流行。

The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.

開發軟體時,前90%的代碼要花費90%的開發時間,剩餘的10%的代碼要再花費90%的開發時間。

90-90 法則跟侯世達定律 Hofstadter's Law 都是說明同一件事,一個專案,會花上比預期還要多的時間才能完成。

軟體業的本質,其實某個程度來說,不是高科技產業,而像是一種手工業,也就是軟體手工業,因為軟體是程式設計師,用一行一行的程式碼,將程式邏輯組合而成的一種工藝品。這種耗費智力的工藝品,不同於其他工業產品,生產效率跟品質很難被評估,也可以說軟體工程師像是一種智能的純手工工人,要把程式碼一行一行打出來,才能完成作品。

References

90-90法則_百度百科

90-90法則 - MBA智库百科

90-90法則:簡介,軟體項目管理,風險策劃,有關因素,_中文百科全書

2023/05/22

侯世達定律 Hofstadter's Law

Hofstadter 在「哥德爾、艾舍爾、巴赫書:集異璧之大成」這本書中,提到了一條 Hofstadter's Law:做事所花費的時間總是比你預期的要長,即使你的預期中考慮了侯世達定律。

在工作規劃時,總是需要做評估,在軟體工程中,評估卻是最困難的問題,永遠都會估算失準,即使開發過程中,沒有特殊的技術問題,或只是修改已經做過的事情,但還是有可能會有其他人為因素,改變了原本的時程。

這時候就變成另一種做法,在原本樂觀的估算結果後,乘上一定程度的風險值,這些增加出來的時間,就成為 buffer。但這也可能會發生另一種問題,時程只要經過一個人的加總與估算,就會多膨脹一點點,誤差也會變得更大。

如果單純只考慮開發的時程,或許還能接受,時程不準確的問題,但專案總是會有 stakeholders,也有預算成本的問題,牽涉到金錢跟最後交付的時程,還有專案誠品的成熟度,在管理階層、業務單位、客戶之間,這些問題就會不斷地放大,近一步影響到所有人。

即使大家都知道「花費的時間總是比你預期的要長」,身處不同的角色,就有不同的應對方式,也會用各種不同的手段想要達到預期的結果,但最終還是只能讓最底層的開發人員,花上足夠的時間,去完成該做的事情。

References

侯世達定律:做事所花費的時間總是比你預期的要長 - 頭條匯

每個人都應該了解的定律——侯世達定律 - 壹讀

侯世達定律 - 台部落

GitHub - nusr/hacker-laws-zh: 💻📖对开发人员有用的定律、理论、原则和模式。(Laws, Theories, Principles and Patterns that developers will find useful.)

2023/05/15

古德哈特定律 Goodhart's Law

Goodhart's Law 是以 Charles Goodhart 命名的,在 1975 年,由於英國貨幣政策,他提出了:當壓力施加於某個統計指標,進行控制時,將會失去任何觀測得到的統計恆性。

在一個獎懲系統中,為了得到最後的結果,將會作出獲得最多獎勵的行為。也就是在有已知量化標準的表現衡量體系中,員工會嘗試最初獲得最多獎勵的行為,但該行為不一定會實現利潤最大化。

Jón Danı́elsson 用另一句話描述:當用於決策之上,任何的統計關係都會分崩離析。當用於管制之上時,任何的風險模型都會分崩離析。

古德哈特定律:「當一項指標被設定為要達成的目標時,這項指標就無法成為一個好的指標。」"When a measure becomes a target, it ceases to be a good measure.)"

這個規則是在警告,一個量度的評估標準或指標,最後將會被濫用,而失去原本的功能。

如果單以「送貨量」衡量配送員的工作績效,會讓到貨時間縮短,但也可能會發生客戶滿意度下降,或是車禍,配送員代簽等等問題。

為提升治安情況,指標訂立是觀察每月、每年每一個分局的破案率,如分局的破案率不佳,則分局長就調離現職。各分局為追求破案率,就可能會發生吃案的情況。用各種方式引導減少報案數量,自然就能提升破案率。

為提升客服人員效率,薪資由固定制改為績效制,以接電話處理案件的數量作為發新標準。客服人員會為了績效,對客戶更不耐煩,或是快速地掛斷電話,雖然案件處理量增加,但服務品質卻下降了。

量化的量測指標是不可避免的,以科學的角度來看,事件需要客觀的量測指標,才能依照這個標準,得到真正的事件發生指數。像新冠肺炎,統一以 CT 值,來作為傳染力(確診)的標準,但在精確度要求不高的情況下,一般以快篩作為量測的標準。不同的量測方式,因為誤差出錯的比例也不同。

Goodhart's Law 在討論的就是量測指標,跟最後的誤差結果。每一種量測指標,會有不同的誤差,在牽涉的量測人類的行為標準上,誤差不同於科學量測的誤差不大會改變,會因為人類的行為改變,而讓原本的量測標準誤差改變而失準。

解決的方式,就是不要使用單一量測指標,要採用多重指標。在多重觀測指標的交互影響下,讓偏差值降到最低。

References

古德哈特定律 - MBA智库百科

單一指標對決策的影響-淺談 古德哈特定律 - Growing Thinker 警惕网络安全的“古德哈特定律” - 安全内参 | 决策者的网络安全知识库

古德哈特定律 - 維基百科,自由的百科全書

2023/05/08

坎寧漢姆定律 Cunningham's Law

根據 Steven McGeady 的說法,在 1980 年代,Ward Cunningham 曾經給他一個建議:「在 Internet 得到正確答案的做法,並不是提問,而是先貼出一個錯誤答案。」McGeady 引述為 Cunningham's Law,這個規則正好是 Wikipedia 的運作法則,Cunningham 本人則否認了這個說法,認為這是錯誤的引用。

Ward Cunningham 在 1995 年於The Portland Pattern Repository's Wiki建立了第一個 wiki site,他也是 "The Wiki Way" 這本書的作者,該書討論 wiki 協作編輯系統。

像這樣的提問,都是 Cunningham's Law 的實踐

  • 「5000元左右根本買不到好的遊戲本,全是水貨」

  • 「根本找不到一個形容詞可以形容現時的政府」你同意嗎?

  • 問小孩問題時

    • 今天在學校做了什麼事情?

    • 沒什麼

    • 你今天翹課了喔

    • 沒有啊,我們都在學校上課

用這個方法雖然可以快速得到答案,但也會有這樣的缺點:發言的人被認為是笨蛋。因此不要在正式場合使用,可在無聊時講垃圾話使用。

跟這個法則相反的狀況,有這樣的成語:眾口鑠金、積非成是、三人成虎、人云亦云

因此,這個法則並不能用在所有的問題上,只能用在可以確定,被提問的那些人,一定會有正確答案的狀況。當有人是用「聽說」來回答問題時,就可能會被錯誤的答案誤導。

2022年底也發生過這樣的事情:遭爆假街訪!哈哈台沉默5天回應 網破盲點狠酸:避重就輕│影片│造假│路人│TVBS新聞網

我自己也常看哈哈台,哈哈台的提問方式,就是用很多網路上的說法,來詢問當地民眾,如果把它當作綜藝,博君一笑,應該是沒什麼問題,但畢竟不可能每一次拍攝,都能找到一些當地奇人來回答,為了追求收視率,找臨演來拍影片,對當地人來說,被抓到也會覺得情何以堪。

不同的講者跟受眾,也會有不同的感受。看事情的角度不同,難免就會產生不同的觀點及感受。

難怪有很多專業的喜劇演員,私底下會是沈默寡言,常常會有憂鬱症的狀況。在很多衝突下,還要盡全力搞笑真難。

公視在 2022 也有討論這樣的議題:「你敢開身障者玩笑嗎?」

@hahaping XLeo @chairman1227 X王榮璋 X 雪莉@sherry0813 |「你敢開身障者玩笑嗎?」X 《禁忌不禁忌》|〈公視主題之夜SHOW〉 - YouTube

References

【坎寧漢姆定律(Cunninghams Law)】到底是什麼?怎麼理解? ? - GetIt01

【沃爾得英語】坎寧漢姆定律 :“擡槓式提問” 、“茬架式求助”, battle啊! - 雪花新闻

坎寧安定律 - Meta

沃德·坎寧安 - 維基百科,自由的百科全書

Cunningham's Law: The sun is flat, isn’t it?

眾口鑠金 [正文] - 成語檢視 - 教育部《成語典》2020 [基礎版]