覆盤的核心:記錄每一步#
前面講到,失敗後要找出所有原因,才能避免習慣性失敗。
- 在電腦科學領域,這稱為「排錯(debug)」
- 在案例分析中,則稱為「覆盤」
那麼如何排錯或覆盤呢?
要想盡可能一次性把各種問題都找到,就要在做事時,每做一步都記錄下結果,不能等到最後出了問題一次性總賬。
作者記得父母的單位會定期發筆記本,就是鼓勵他們記錄每一個步驟的細節結果。這種做法在美國的大學和大公司裡非常普遍,他也一直這麼做。
為什麼要每步記錄:作者的親身經驗#
作者後來在 Google 指導中國年輕工程師時發現:
- 很多人做事失敗後半天都找不到原因
- 就指望著有經驗的工程師幫他們發現問題
- 由於他們在中國、作者在美國,電話裡也講不清
- 於是作者讓他們到美國出差,坐在辦公室旁邊工作,仔細觀察他們是如何做事的
作者發現他們的做事方法完全不對:
- 做一件事,不論多複雜,只有一個結果——要麼成功要麼失敗
- 一旦失敗,就不知道是哪一步或哪幾步做錯了
- 下一次再做還是失敗
作者的建議:
假如從重複前人的工作出發,將那項工作作為基點,然後在此基礎上做我們的事情——前人完成的工作和我們的任務之間可能有十個步驟或十個要考慮的因素,不要一步一起做或者十個因素一起考慮,必須一步一步來,每做一步都要記錄結果,最後出了錯就容易回溯,找到問題所在。
案例:中國半導體產業的覆盤缺陷#
作者指出,中國最好的半導體公司無論設計還是製造上都達不到世界一流水平,很多地方投入了很多錢,但似乎沒有產生什麼明顯效果。作者透過他的弟弟(半導體行業老兵)認識中美兩國該領域的許多專家,了解了行業內部的一些細節操作。
問題所在:測試部分(DST)被忽略#
根據作者研究發現:
- 中國公司設計的半導體晶片中,用於測試的部分(DST)非常少
- 這些部分不產生任何功能,多了不僅使設計工作量大增,還增加製造成本
- 工程師不重視這個部分,公司為了節省成本也不強求工程師把這部分做好
- 美國公司卻非常重視測試部分——晶片中一半的電路都是為測試準備的
為什麼測試部分這麼重要#
- 今天複雜的晶片裡有 10 億以上的晶體管
- 壞掉幾個或某些部分的設計有錯,是很難排查的
- 今天半導體設計,做一個樣片和生產 100 萬片沒多少差別
- 如果第一個樣片失敗,不能把所有問題找出來,就要靠不斷做樣片來試錯——不僅成本高,最終設計是好是壞也說不準
- 測試部分的作用:晶片裡無論哪部分功能模塊壞了,它都可以幫助設計者測試出來——可能只要做兩次樣片就能定型
- 前一種做法是習慣性失敗,後一種是一次失敗導致後面的成功
為什麼設計成功後也不能拿掉測試部分#
- 製造半導體晶片時有成品率的問題,可能一半的晶片都有問題
- 即便是全世界最擅長生產晶片的台積電,成品率也只有 70% 左右,二流企業成品率還不到一半
- 晶片出廠前,必須要把有問題的晶片挑出來,總不能等晶片焊接到手機中發現問題再更換吧
- 測試部分的功能,就是幫助測試每一個晶片
失敗案例#
國內曾有一家頗為知名的半導體企業,做的晶片質量很不穩定:
- 原因是為了追求成本,設計的晶片中幾乎沒有測試部分的電路
- 當客戶反映其晶片有很多廢品後,它表示可以免費更換
- 可是那些晶片已經做進電子設備中,根本無法更換
- 這家企業後來因經營不善被迫退市出售
覆盤的關鍵心法#
任何肯動腦思考的人,都應該明白失敗是一個大概率事件,很多小問題都可能導致失敗。失敗不可能完全避免,但關鍵是失敗之後要有辦法很快找出所有原因。為了做到這一點,我們需要假定每一步都有失敗的可能性,記錄下每一步的結果。