控制名,露出道

名可以無限增加。

比如拿起筷子就可以夾菜。但如果你要增加名,你可以無限增加判斷邏輯,比如:

1. 用哪只手拿筷子呢?怎麼拿才是最優的?

2. 如果這種筷子我也用,會不會有失身份?用筷子而不用刀叉,會不會不夠逼格?

3. 吃之前要不要做個禱告?禱告真主還是上帝?

4. 要不要給桌子上每個人都先夾上一塊我再夾?

……

我們不知道這些名哪個是必須的,哪個不是必須的,如果我們在這些名上打轉,我們就永遠都接近不了道了。所以我們的方法是食母,不敢為主而為客。

食母是說,我們首先定位我們要解決的問題是什麼。我要吃飯,這是原始目的,用哪只手拿筷子這個不是要解決的原始問題。所以,對我來說,吃飯是硬的(條件),用哪只手拿筷子是軟的(條件)。

我們當然想直接解決我們的硬問題,但環境不允許。比如你和一群很傳統的人吃飯,你敢不讓長輩先吃,可能手都給你打斷了。對他們本來是名的東西,對你可是「道」,是硬限制。

要「前識」「道」非常困難,特別是做長遠的戰略的時候,所以才這麼強調在判斷上盡量「不敢為主而為客」,為客就是被動解決問題。被動解決問題就是不「產生問題」,而僅僅解決已經明確是問題的問題。這是強行要求自己不用名和學作為解決問題的要求,這樣我們就可以避免解決那些(因為名和學)「自行製造」出來的問題。

這個道理很簡單,但如果你沒有經常去做一些事情,沒有現實結果對你的反饋,你會在名上給自己一個解釋,你就不會注意到這個重要性。你寫一個程序,本來應該返回3的,你返回了4。如果這個程序不用上線運行,你的感覺可能只是:「哦,少寫了一句a+1而已,不要緊,程序大體還是對的」。但如果你的程序被用於銀行存款計算,有3千個用戶的存款從3萬被你算成了4萬,這筆錢你來賠,這你的感覺就完全不同了。

名讓你舒服,道會讓你痛!因為讓你痛了,你才不得不尊道而貴德。

所以,如果我們活在名上,我們永遠都能給自己一個「解釋」,我們就會在名製造的萬花筒中失去了對道的認識。因為道也是用「名」來展現的,你只看到一堆的「名」,但你不知道哪個名標識著道,更何況,反者道之動,你去拿那個標識著道的名的時候,道已經跑到另一個名後面去了。

理解這一點,無論在設計還是在做其他戰略上都非常重要。我看到很多工程師或者其他做計劃的人,上來就是「設計」,從來不描述自己解決的原始需求是什麼的。比如接到一個需求:「支持RAS」(RAS是計算中實現自動發現和報告硬體異常的一種需求)。他們馬上就可以開始「內存錯誤怎麼被Cache控制器檢測」啦,「匯流排錯誤怎麼被IOMMU單元檢測」啦,但他們就不會考慮兩個問題:

1. 系統總共會發生哪些錯誤?我們分別如何發現它?

2. 這些錯誤呈現給最終的計算機用戶是什麼樣子的?我們如何在這台機器已經被「污染」的情況下,保證這種「呈現」還是正確的?

這裡考慮的兩個問題,就是食母。說到底就是把問題向上提高一兩個層次,先從原始問題上看看哪些名是不能不用的,哪些是人為製造出來的,其實是有可能不需要的。

很多時候,工程師不肯做這種分析,開始的時候不是不知道應該這樣做,而是一種「小聰明」——做這種全局的分析,消耗很多時間也看不見成果,因為只是用於確定方向,不產生任何「輸出」。最好是別人把方向確定了,我負責實施,這樣最後談成績的時候。實施者的成績是看得見的,定方向的人——「他們夸夸其談而已」——何況大方向本來也是有一定搖擺的,誰知道那個定方向的傢伙對整件事情幫助有多大?

在這種「小聰明」的思考模型下,工程師會開始在名上給自己製造一個舒適區,解釋自己必須這樣做的理由,這些理由有虛有實,最後他會把自己和周圍的輿論一起騙了,但這個組織(至少是這部分事情)也就失道了。

我說這是「小聰明」,因為你以為這是聰明,但如果我們回到問題的本源:你在一個失道的組織中混,混得再好,你不是一樣面對越來越多的困難嗎?這說到底不還是求名?求名最終還不是一樣產生白蓮花?無論是大是小,無論是「真正的」,「假裝」的白蓮花,不都是種在污泥中?你不追著本質的問題去,而是用名給自己的目標製造負擔,你明明是浪費了達成目標的精力啊,你解釋得再好,對達成目標(你的目標哦)有什麼幫助呢?

所以,你的心不放在做成一個大設計上,你就沒有得到做成這個大設計的能力,就算這次被你求名成功,讓你上了位,你還是沒有能力做成一個大設計啊,德不配位,你怎麼在立在那上面呢?你被小聰明拖著走,不斷要彌補原來的空洞,一堆的負擔,怎麼向上走呢?

求名的結果就是這個,最後就是自己打自己。

所以,前面的博文中有人還來教導我,說我應該接受現實,「很多人不懂道,你為什麼非要說服他們呢?應該接受他們啊……」云云。不只在道德經的討論中有人會這樣想,其實平時大部分考慮戰略的問題,很多人都是這樣想的——即使他們不說出來。其實這樣想問題就已經屬於小聰明了。你要明白,我說的「道」(無論是這裡談道德經還是在家裡談各種設計和戰略設計),是說給自己聽的,是用來分析名和道的距離的,不是用來說服你的,你怎麼樣,我什麼都接受。我說你這是對的,是告訴自己這是對的,我說你這是錯的,是告訴自己這是錯的,我不給自己玩小聰明,免得把自己給騙了。至於你怎麼樣,那是你自己的能力決定的,不關我的事。而我把這種對錯呈現出來,最後就是讓自己滑動到一個適合我生存的環境中,落到合適的「勢」上面,這就叫虛心實腹。我們不玩小聰明,你覺得你「聰明」,我們不攔著。祝你幸福(但在我眼中,那個幾率被你自己大幅降低了)。

所以,我們不聰明,才會讓道自己展現出來,我們太聰明,反而讓自己陷入到名的陷阱中,平白對多餘的「名」做功。我們要想把精力放在事情上,想做成一件事情,就不能太聰明。

我說你對,說你錯,I mean to。我只是確認我mean to ,不是非要說服你贊成。

道不能靠「發現」,「道」需要自己「露」出來,因為道和非道的「名」,本質上都是「名」,也都是「道」,因為名本身存在了,就是道了。當我們說某個東西是「道」,另一個東西僅僅是「名」,是針對一個目標來說的。如果我們不確認我們的目標,我們是說不清楚哪個是名,哪個是道的。比如你挖了一袋沙子做沙袋,這些沙粒都是「沙子」,這樣歸類是沒有問題的。但如果你要篩鑽石,「沙子」和「沙子」就不同了,那些透明亮閃閃的「沙子」必須被挑出來,它們就不是「沙子」了,它們是「鑽石原晶」。在篩鑽石這個問題上,沙子和鑽石這兩個名就是有意義的,而在「做沙袋」這個問題上,這兩個名就沒有意義。沙子還是那樣的沙子,但針對不同主題,名和道的定義也不一樣。

這個道理同樣很簡單,但常常讓我們陷入思維誤區。張三研究問題也是格物,李四研究問題也是格物,愛因斯坦研究問題也是格物。說明愛因斯坦也沒有什麼了不起的。這有錯嗎?這有沒有錯根本不重要,只有我們研究「誰的理論能支持發明原子彈」這個問題我們才知道有沒有錯。

所以,我們解決問題的時候不希望製造問題,但反過里說,我們想發現道,只有把問題提出來了,道才會露出來。

在食母和不為天下先這個問題上,還有兩個明顯的小陷阱是值得注意的。

它們分別是:

追求「道理」

強行「反應」。

這個世界上的行為,大部分時候都被微小的原始需求所驅動,大部分都是你看不見的,所以,這個世界大部分東西都是「沒有道理」的,不要嘗試給出很多解釋。

「有個河南人偷井蓋了」——>河南人天生都是賊。

「有個男人偷井蓋了」——>男人天生都是賊

「有個人偷井蓋了」——>人天生都是賊

「肚子痛了」——>肯定是昨晚喝了涼水

這種邏輯很奇葩吧?但實際上我們有多少邏輯是這樣判斷的呢?(恕我不舉例子了,想了幾個,估計每個都得罪人)

這就是追求道理,這個世界上有很多事實,但並沒有那麼多道理,強行總結就是誤判的開始,是強行引入名,名多失道,這是個概率問題。

所以你不要在拿信息的時候動不動抽象,有個人偷了井蓋就是這個人偷了井蓋,兩個也就是兩個,不要動不動就抽象成哪裡人,哪類人。領導不同意你的設計方案,也就是不同意你的設計方案,不是認為你人品不好,不要「要不承認我的方案,要不就是懷疑我的人品」。讓你全職投入項目,沒說這個項目的項目經理要求你的話你都要聽。你老這樣腦補,還怎麼溝通啊?這就是死之徒。

這是「追求道理,偏離事實」的陷阱。

第二個陷阱是「什麼都要有反應」。「韓國部署薩德了,我要干點什麼?」,「印度人越境了,我還要干點什麼?」,「隔壁老王生了個小孩了,我要干點什麼?」……你它瑪草履蟲嗎?來個刺激就要有點反應才行的?

渾身躁動,就不可能做成什麼事。孰能濁以靜之徐清?孰能安以久動之徐生?守穩一點,你才有積累的。

邏輯有點亂,先整理出來再說吧。

推薦閱讀:

微服務的架構模式中,資料庫如何規劃?如果採用獨享資料庫,如何解決事務處理和聯合查詢?
為什麼有些大公司技術弱爆了?
有data binding之後,早先的Android應用架構還有用處嗎?

TAG:软件架构 | 软件架构师 |