盜誇

盜誇

來自專欄 軟體架構設計

講五個故事。

第一件,這幾天公司內部在討論批評與自我批評的問題,有人提到要講真話,說到怎麼才能讓大家講真話。有人就提出來了,比如領導要主動自我批評,領導帶個好頭,其他人就會跟進。又比如說,批評和自我批評要到酒桌上做,大家都喝High了,就真的能把真話說出來了……

情深了就會說真話?

喝高了就會說真話?

情深了只會說情話,喝高了只會說酒話。

「領導,我對你有意見,你平時加班太晚了,對不起嫂子,我們兄弟不答應……」,這會是真話?

「同志們,我這個人沒有別的追求,就是想幫兄弟們實現理想,你們今天知無不言,言無不盡,說說我這個人的毛病……」這你信是真話?

「領導,我說句真心話,我們大家就是想升工資,您看……」,這你就認為是真話?(也許你會簡單認為這也許是真話,但其實這這是用一種不太痛的角度來滿足領導的「講真話」的要求而已,這同樣是在示好。你試試改為說「領導,其實XXX的設計沒有做完……」看看?)

喝高的,深情的,個人利益的,換個角度來示好而已,就是真話了?

信不足焉,有不信焉。信不信,是做出來的,不是說出來的。

尼瑪我把真心想法說出來,換來的只是別人對我的鄙視,不信,批評,降工資,減績效……我會把真心話說出來?

用各種技巧讓別人說「真心話」,到頭來不過是玩心思,於事何補?

真正讓人說真話的技巧,不是「讓人說真話的技巧」,而是讓人聚焦解決問題的技巧,你自己不能作為「真話」的代理「Agent」(代理這個概念,參考這裡:階段小結:食母)。現在這個業務方向做下去沒有前途,A知道了,說出來,得罪一堆躍躍欲試的同事,不說出來,他自己的收入受損,這時他就有可能說真話了。人說什麼話,都是利益平衡而已。用點小技巧,不付出利益,就讓人說真話?你不要把別人當傻逼行不行?

作為領導,在這個問題上,如果要主動做點什麼,那就是露怯,示弱。領導給人形成的印象是每天清晨6點上班,晚上12點下班,兢兢業業,一點錯誤不犯,能談判,能陪客戶,能寫代碼,能算投資產出比,決策從未失誤……這樣你的下屬敢「說真話」?團隊里沒有人露過怯,你敢露怯?事情總有漏洞,不露怯就是用「無」(不說)去掩蓋,到頭來不就是「朝甚除,田甚蕪,倉甚虛,服文采,帶利劍,厭飲食,財貨有餘……一片祥和景象,這是什麼?這叫「盜誇」,盜誇非道也。

只有你的團隊呈現出毛病,而毛病不會被報復,你才會為團隊的目的說真話,否則,玩心思而已,如果你的目標在「事成」上,玩心思不過是浪費你的時間。

這是第一個故事,第二個故事就和「架構設計」這個主題有關了。最近評審了一個解決方案的架構設計文檔(我說的這個事情根據「更好說明這個主題,引入了一些其他事情來參合」,所以已經不代表任何事實了,請有類似經驗的朋友不要對號入座,我們只是為了更好討論這個問題),這個架構設計又是Use Case圖,又是Class Diagram的,好多概念……我就給了這麼一個評價:這個設計連基本問題都沒有回答:如果這個方案部署在雲上,那麼,它是哪個平台的哪層上?對這一層介面的依賴是什麼?在這層依賴之上(以IaaS層為例),創建幾個VM,幾個Docker?分別是什麼名字?好了,有了這層概念空間,我想問,在這上面,有哪些模塊,這些模塊哪些是第三方的,有哪些是自己寫的,有哪些是第三方加上自己改的?……

我提的是個邏輯鏈的問題,這個架構設計缺乏邏輯鏈。

這個解決方案的架構師根據我的意見,修改了一下,幾天後,又來和我討論,但其實沒有什麼改觀。

我說,算了,讓我看看代碼吧,就憑你們這幾條槍,代碼量大不到哪裡去,肯定大部分是集成的東西,我應該很快就看完了。

看了幾天,我有結論了:這個東西根本就還沒有「可進行設計」的架構呢。因為這個東西本來就不是從架構設計過來的,它是市場看到一個商機,立即用已有的幾個軟體拼在一起,給客戶做了一個演示,結果客戶很喜歡,然後在落地的過程中,這裡改改,那裡改改,讓這個東西能跑起來。結果這個東西要上線了,公司流程上又要這個構架設計了,然後就出來這個東西,就拿出來評估了。

了解這一點,我們就好辦了。我說,我沒有別的要求,我首先要求,架構設計文檔前面說清楚,V1.0版本是臨時拼湊的,並且你給我把範圍限制了,這是僅用於客戶A,場景K的臨時場景,等客戶A上量了,本方案存在重大風險。後面的愛說啥說啥,我不管你。

我這樣說,不是給你挑事,是給你解套:如果我讓你按正常的方式過了我的評審,後面的各種決策就會不再給你留「架構設計」的時間,也不會基於「當前版本不能大規模商用,需要增加投資」來進行市場拓展,你們也會被包在「我們已經做成了一個新的產品」這個邏輯陷阱中出不來,不斷要用更多的謊言來掩飾現在的問題,你這個產品就沒有任何機會聚焦在問題改進上了。

而你們這個團隊,現在我們事情已經攤開來說了,完全不用擔心「戰功」的問題,你們能帶來客戶A場景K的市場,讓我們有了這個機會,這就已經是戰功了,沒有必要頂「做成了一個面面俱到的產品這個帽子」,如果我們這個集體承認了這一點,你們的地位就已經穩固了,架構不架構文檔這個事情,我們大家都一起放開一點。

這個故事,從正面的角度,解釋前面這個盜誇的概念。也是說明:什麼叫和其光,同其塵,挫其銳,解其紛。

第三個故事,我前段時間給女兒寫了這個解釋:從虛數談起。最近幾天不知道哪裡的傳播,突然多了很多贊。然後有些追求正義的人士就忍不住了:「這不過是中學的知識」,「你懂複平面真實的物理含義嗎?」,「就這個水平,你也敢出來學人科普?」,「你這樣下去,就要變成民科了(我實在不忍心)」,「你不過是個文科生,連幾次方程就有幾個解都不知道吧。」……

這種情景,大家在知乎應該看慣了吧?其實,在一個團隊內部,何嘗不是這樣?如果一個團隊充滿這樣的人,任何人一旦「露怯」,就會立即受到衝擊,誰敢露怯呢?這種情況下,說真話,取得成功,就成為一句空話了。

所謂「守弱」,是真弱,不是謙虛,不是讓步。我就是不懂複平面(但拜託也想想如果你把複平面的概念映射給一個初中知識水平的孩子應該怎麼描述才是有效果的),我就是不知道把虛向量旋轉90度可以得到-1,但So what?我要解決的問題解決了嗎?

所以,就這件事來說,我很感激真的來告訴我們新知識的朋友,但來展示你的聰明的,用維護數學世界和平說明你是完全是出於「正義」的,也許您不知道,你是來自取其辱的啊。

要「求道」,很簡單,意見是這樣提的:這裡的說法有破綻,-1的開方結果可以有多個,可以是i也可以是-i,我的證明如下:XXX。

然後,你馬上就可以發現,如果要把這個邏輯扭合到原文中,你是保持不了原來的討論邏輯的,因為原文的討論邏輯中,是從發生了什麼事(問題),來討論具體如何從事上衍生概念的。你的那些從另一個維度發現更多「學」的方法,可能確實不錯,但不解決眼前這個問題。

但無論如何,這是在討論問題,這在道上。但如果你討論的是:我是理科生,你可能成為民科(我要打救你),你要多讀書,我並不是不給你面子,你也要給我面子……等等等等。你有一個討論「坐進此道」了嗎?你給出一個有效的邏輯,你就是理科生了,你從我的邏輯鏈條上提出我一個破綻,你就避免我「成為民科」了,你需要反反覆復強調你的悲天閔人的情懷么?請問,你強調你的情懷,你就有情懷了嗎?

但太多的人不能按這個來思考了,特別是那些懂一點的——反正老子懂這個,你用不用的上,都要讓老子表達一下,然後你們來敬仰一下——至於這個事情成不成,我們能否得到一個可以給學生介紹數的好的讀物。切,關我鳥事。所以,很多團隊及其目標是怎麼失敗的,這裡給你一個活生生的例子了。

第四個故事,有人私信我,下面是我們的對話:

他:你好,請問邏輯鏈是在觀察中自然形成,還是需要思維主觀參與去構建,而這個思維的主觀參與是否也是自然而然的事?

我:這個問題可以解決什麼問題?

他:如何構建邏輯鏈,通過為,還是無為。還是說邏輯鏈只是事後的一種解釋?

我:這個問題可以解決什麼問題?

他:問題無法解決問題,答案在事實中。想通過問問題解決問題,是戰術上的勤奮,無法彌補戰略上的懶惰。

我:這個問題可以解決什麼問題?

他:問題自會解決,缺的是耐心。急躁的人,在名中求,不斷製造問題。

我:……

我希望這位朋友不要介意,我只是拿這個作為一個例子。我一直在問「這個問題可以解決什麼問題?」,這不是我在裝逼,也不是我覺得提這個問題沒有意義。而是,如果沒有「要解決的問題」,每個「概念」,都可以導向任何方向的。我們聽到了聲音,是因為波的存在,還是因為耳膜的共振,還是因為腦神經元形成了Pattern?這是綜合結果,不引入一個目標,就無法形成這個問題的Pattern,這個問題就無法討論。

這個故事,進一步解釋前面說的「代理」和「坐進此道」的概念,我們大部分人,很容易陷入求名的陷阱,因為我們總希望用自己來充當「道」的代理啊。

第五個故事,在這個博文下:道德經講了什麼?為什麼它廣受推崇?有人發了一個這樣的評論(請大家不要討論是誰提出來的,我們討論的是事,不是人):

但我總會隱約感覺到,作者對於人文社會的知識的一種略為偏執的成見夾在其中——將各位研究者的結論當做定會脫離實際的考慮。可作者通過了如此之多的經驗,如此地自信去下一些定論,當中確實契合一些社會的規律。可社會方面的研究早有相應的理論在,且多是對遂成之事的嚴肅分析。作者接觸到、憑自己所理解的人文社會知識實在難出冰山一隅。奉勸認識局限,放下成見。

我認為,這個思考角度反映思考者還沒有突破「求名」這個陷阱。如果你細細想想這個討論指向的「道」是什麼,你就會發現,它想得出的是「人文社會的知識是很不錯的,Kenneth應該為它站台」這個結論方向。這有兩個問題:

  1. 這個結論在解決任何一件事上的價值都不大,因為它的範圍太大
  2. 它反映了Kenneth的態度對某些人很重要。這是把Kenneth當作代理了

拜託,Kenneth把一個觀點給你提出來,是給你展示了一個Pattern,讓你去用這個Pattern和你的現實(道)去做比較,然後決定(在特定的場合)採信還是不採信這個Pattern。不是讓你拿這個Pattern當作現實啊。

我把很多話說得Specific,就是要給你一條明確的曲線用來比較現實,讓你明確知道我的Pattern優勢和劣勢是什麼,然後決定在什麼地方採用我這個Pattern,什麼地方不要採用這個Pattern啊。(關於Pattern,可以參考這個文檔:氣和深度學習2:人工神經網路,裡面的「過度匹配」這個概念,圖裡面的不同曲線就是不同的Pattern)

所以我的表述常常不是自信,而是確切!

這就是我說的露怯。我們團隊做設計,從來都是我第一個出來建邏輯:我認為這個功能就是在qemu中直接調用DPDK驅動,Guest的數據包直接送入網卡,路由調度靠DPDK本身的演算法來完成……這種話,很多人都不敢說,為什麼呢?因為裡面很多細節是不對的。但不把這句話說出來,大家都自重身份,不想向下填邏輯。這個設計不就變成沒頭沒腦了嗎?

大部分構架設計都是這樣失敗的啊。就好像我找很多人交設計文檔,都不敢交——為什麼呢,因為這個設計沒有經過編碼,可能是不對的,提前給出來,他們怕漏怯,怕Kenneth K他們。問題是,等到你完成編碼了,編碼過程中該犯的錯誤都犯了,還要你設計嗎?設計最大的作用是提前預判方向錯誤,避免編碼的過度投入啊,你過度投入都已經發生了。在「設計文檔沒有錯」這個名上熠熠生輝,於事何補啊?Kenneth K你們是為了讓編碼投入減少啊,這是件好事啊,這個時候你求「無名」幹什麼?

所以,我寫東西(或者提取邏輯),我首先求的是Pattern的最優匹配,而不是面面俱到(過度擬合)。而我接納你的觀點到我的邏輯鏈中,考量的是你的觀點能否優化我的邏輯鏈,而不是這個觀點對不對。很多東西,我沒有時間調查它對不對,我分不了那個心,我優先考量的是那個東西能否解決我的問題。我沒有親自測量過光速啊,但我採信它是30萬公里每秒,因為它沒有給我帶來問題,而且很好地和其他邏輯鏈配合。我不採信人可以飛升,我也沒有證據啊,但不採信它沒有給我的決策模型帶來問題啊。我確切告訴你我的觀點,你認為不對,你飛一個給我看看啊?你各種理由不飛,那採信它沒有什麼好處啊。我就不採信唄。人要做事,就不能貪婪,期望自己全知全對,而是永遠不斷用現有信息和現實進行對比,從而找到最優的解決方案,而不是讓理論停留在腦子裡啊。所有理論表示出來都是不嚴謹的呀,因為它是代理,而不是道本身,它是Pattern啊。

Pattern是有目的的,前面那個道德經的解讀,我實際上寫了兩個:

一個是這個:

《道德經》講了什麼?為什麼它廣受推崇??

www.zhihu.com圖標

現在有近萬的贊,另一個是這個:

in nek:道德經講了什麼?為什麼它廣受推崇??

zhuanlan.zhihu.com圖標

,現在不到300個贊。

其實就我自己看來,後者遠遠比前者寫得好,也更準確。

但為什麼前者更受歡迎?因為前者的目的是給讀者撬開這個門:《道德經》並不是玄而又玄,說半天都說不清楚的東西。這個文檔清晰地點了幾個都關注的點,讓邏輯對應起來,更多細節,可能需要進一步去看,但至少知道怎麼回事了。很多人首先需要的是這個東西,這樣前者就完成它的價值了,所有的邏輯補充,都是為此服務的。

而後者,是把道德經全文的觀點重新組織成邏輯鏈,幫助閱讀全文的,你不一定有時間去閱讀全文,它再牛逼,也不能幫你搬磚搬得更快,那它好不好,關你鬼事。那不看就不看了。

目標不同,邏輯鏈的用力就會不同,達成的效果也就不同。每個邏輯鏈都有它的位置,換個位置就不是那個樣子了。

所以,拋開目標追求名的好看,基本上就是自我感覺良好,但什麼事情都解決不了。

人總想用名字來維持自己的外在形象,然後在用在這些名上獲得的利益,希望再去改變道。一如那個笑話裡面說的:上帝派了兩艘船一架直升機來救你你都不上去,死了才來問上帝:我這麼信你,你怎麼不救我?——你的思考為什麼永遠都在「接受觀點,我來解釋,控制」這樣的模式上,而不能是「確定我的目標-比較還缺什麼-補上缺陷」這樣的思路上的?

所以,很多喜歡和我爭辯的人,是很奇怪的,因為不少人其實看得出來是恨我,但他們還不斷用自己相信的真理來說服我——照理說,你相信這是真理,你又恨我,就應該不要告訴我這東西才對啊。——你看我,只要我和你聊兩句,不喜歡你,我立即就拉黑了。因為我覺得我的東西是有用的,我巴不得你不知道呢。

其實,大部分時候我不容易恨一個人,我在這方面和Linus的觀點很像,他在一個訪談中說過:……很多人找我要尊重,這沒有什麼問題,但我認為「尊重」是earn來的,不是ask for的……但你不需要同意我的意見,這只是我的觀點,這個社區很大,你有很多地方可以合作的……

在我心目中,這是謙謙君子的行為。我追求這樣的行為,並把這個作為最大的善意,因為我並不為了你的面子,我的面子,和諧這些和「道」無關的東西去騙你啊。我清楚表達我的意見而已。沒有逼你接受它呀。你非要找到一個偶像讓你跪下去嗎?

所以,人不要被名相蒙蔽了自己。我在知乎寫的一些答案贊數挺高的,有時回來看看也會有點小得意,這個時候我一般這樣打擊自己一下:「Kenneth,今年晶元出貨量達成目標了嗎?」然後我就泄氣了。所謂求道,看的是實際的東西,不是別人的表揚和附和啊。

希望這幾個例子,能讓部分讀者明白,求名和求道的區別是什麼,你不要以為自己在求道,大部分時候,你還是在名裡面打轉呢。在名里打轉,我們就叫「盜誇」,事情沒成,求得誇獎,盜誇——想想老子這傢伙說話挺刻薄的呢……

推薦閱讀:

抽象還是不抽象的問題

TAG:軟體架構 | 軟體架構師 | 道德經 |