我喜歡塞繆爾?阿貝斯曼(Samuel Arbesman)的第一本書——《事實的半衰期》,這本書討論了變化的步伐之快,其中一個例證就是摩爾定律。看到他新書的書名《過度復雜》(Overcomplicated)時,我以為他是在警告我們這些技術專家:你們設計的系統太過復雜了。我以為這本書會倡議向更簡化的系統過渡,就像醫生可能建議超重患者通過節食減肥一樣。我已經做好了反對這種論調的準備。可讀過本書之后我發現,阿貝斯曼并沒有說復雜化絕對不可取,也沒有說我們應該追求簡單化。相反,他認同如今系統的復雜度已經超出了我們認知范圍,而隨著復雜程度的加深,我們要做的就只是……克服這個難題。
這本書的大部分內容都在討論復雜度為什么會不可避免地增加。阿貝斯曼寫道:“我們在技術領域的一切所作所為幾乎都會導致我們偏離簡練和易懂,走向令人費解的復雜和意外。”他提出了會導致這個問題的3個主要因素,即“疊加”、“互聯”和“極端事件”。疊加是將大型系統構筑在較小、較舊系統上的結果,通常通過摻雜遺留代碼來實現,形成的也就是我們所說的組裝機。這些子系統互通后會相互牽連在一起,把簡單的交錯變成真正復雜的糾纏。最后,復雜性會因為不可避免的極端事件而進一步惡化——無數單個看來微不足道的異常和小概率事件組合在一起,就會形成系統設計中必須全盤考慮的長尾事件。這些因素所導致的復雜度已經跨過了臨界點,沒有哪個人能獨自完全理解一個完整的系統。
讀到此處,我想,這些都是我們工程師耳熟能詳的情況。問題在于,我們該怎么處理呢?阿貝斯曼很快放棄了我們處理復雜度時通常采取的策略——抽離子系統,隱藏低等級的復雜度,并給編碼做一次“保健”。他認為這些方法看上去不錯,但無法解決根本問題。那么還有什么辦法嗎?
阿貝斯曼提出了兩個建議。第一種是,我們需要培養更多“全才”,他們不僅專業功底深厚,還涉獵廣泛,是擁有T型知識基礎的理想型人才。在大部分系統都涉及多個專業領域的當下,這一點顯得尤為重要。但阿貝斯曼也承認,除非是與專攻某領域的專家合作,否則這類技術人員的作用便難以凸顯。而且,在目前的市場情況下,想培養一個全才是很難的。在文藝復興時期做一個博學家說不定更容易些!
另一種方法需要一段時間,那就是我們的思考方式要更像生物學家,而不是物理學家。物理學家傾向于對系統進行數學分析,希望用一種優雅的方法來解釋并預測行為。而野外生物學家已經對演化所帶來的無與倫比的復雜性習以為常了,他們會自下而上進行求索,對所發現體系的表象和行為進行分類,希望可以通過這種手段發現新物種或是新的生態系統。
我一直在思考這種生物學方法,但不確定它能帶來多少啟示。這個行業的一些漏洞就像是一種獨特的新物種,像是編程過程中的“Goto”陷阱,但絕大部分漏洞好像都是一次性的,幾乎沒有一般相關性。
但我還是同意阿貝斯曼最后的結論,即我們應該贊美我們一手締造的功能和繁復。我們的成就必然將超越個人的認識。畢竟,進化創造了人類這種脆弱卻又無比復雜、擁有超強適應能力的神秘生物。或許技術也能如此呢。
作者:RobertW. Lucky
往期推薦