英文版本的「弱者道之用」

今天在Linaro BUD17上聽Lwn Jonathan Corbet的演講的時候看到的。真是個活靈活現的「弱者道之用」的構架師表述:

I have decided to fall back on the mechanism by which I ended up being maintainer in the first place. I will create a vacuum and hope somebody fills it. (Neil Brown)

某些標準組織真的有必要好好聽聽這個表述,你們真的是不懂。

2017-3-13補充:

這兩天交流,發現還真有不少人一點感覺沒有,我再解釋兩句。什麼叫「製造真空」?你用30人維護一個開源項目,每天開發900行代碼,開發一年也不過270KLoc,何況這是個極端數量,你根本不可能達到這樣的開發能力,特別是在組織鬆散的開源組織。

所以,開源項目要發展,真正有效的方法是借力。讓一同干這行的人主動把代碼或者支持工作量送進來,這就是「製造真空」。成功的開源項目(的動力來源)一定不是基於「有興趣,有志向」者的,而是基於「必須生存者」的。兩者的動力根本不一樣。我們企業僅僅一個硬體標準測試的團隊就有上千人,這上千人是靠產品銷售的毛利活著的,你一個開源項目想和這個比嗎?沒有這樣的投資,你的開源項目代碼靠什麼來贏得客戶實際使用時的舒適?實現隨便插什麼硬體板卡,內存都能正常工作?這種東西就是工作量,不是你有情懷,有能力就可以搞定的。

那麼怎麼製造真空呢?比如我維護一個針對專業市場A的發行版A,有5家設備提供商工作在市場A上:a,b,c,d,e。我如何維護A呢?第一種策略(一般人會選擇的蠢策略,也就是我正在批評的某組織現在用的策略),強力聯合[a,e]開發,從[a,e]中要人和資源,開發A和A對[a,e]的適配。這種開發需要大量的資源,需要團結,[a,e]之間還是競爭對手,這個聯合組織一定程度上還是[a,e]內部團隊的競爭對手,這樣的組織怎麼可能有力量?

第二種方法是首先聯合A,a,b,開發一個平台,不用花時間在c,d,e上,用全部力量去保證平台A能解決行業A的特定關鍵問題。這樣一來,平台A渾身毛病,但它對[a,e]有價值,有吸引力。同時A裡面有「真空」,如果[c,e]加入開發,不會和A有任何競爭,因為本來就是互相幫助。

這就是真空,也就是「弱者道之用」中的「弱」。你強,牛逼哄哄的,想把別人的事情都幹了,別人幹什麼?你何必「團結」呢?自己弄不就好了?你要團結,就要讓別人有用,別人有用,你也有用,才會成為一個互補的,團結的整體,從而發揮力量。天天想著「我們的工程師是業界最牛的,我們的人越來越多」,你咋不上天呢?

推薦閱讀:

詳解Serverless服務,它會顛覆你對雲的理解 | 硬創公開課
架構設計的0層邏輯
微服務的架構模式中,資料庫如何規劃?如果採用獨享資料庫,如何解決事務處理和聯合查詢?

TAG:软件架构 | 开源 |