軟件工程師應該如何吵架?
吵架的團隊更有生命力
看一家軟件公司是否靠譜很簡單,在開放式的辦公室中有沒有隨處可以使用到的白板就行。
一個好的軟件開發團隊往往看起來沒那么“和諧”,程序員和產品經理之間,程序員和程序員之間是不是會發生“爭吵”。好的軟件公司沒有不吵架的,不吵架的軟件公司要么大家都在劃水,要么大家為了維護 “職業形象”處處小心翼翼不敢獻計獻策。
剛開始和華為的人合作可能會有一些不適應,他們說話的方式簡單而直接,往往讓人不知所措。這種直接的背后是一種擼著袖子干的企業文化,把“職場文化”變成了團隊協作。
軟件公司吵架不是管理不善,往往代表著開放、包容的文化,以及團隊成員心無芥蒂的通力合作。
回想一下,我們是不是往往都是和陌生人和和氣氣,和信任的人才大大咧咧呢。
文吵和武吵
不過吵架這事兒還有一些講究。在公司吵架這事兒分為文吵和武吵:武吵是比誰的嗓門大,誰說話的分量重;文吵講究的邏輯、推理和歸納。
而武吵和文吵各有用處。
武吵需要的是一個敢于擔責,能在關鍵時候拿出主意的人。在很多討論會中,群眾容易陷入只對自己認知匹配的細節,然后各執一詞,都很有道理,也各無過錯。這個時候,文吵的邏輯難以派上用場,因為現實世界中沒有完美的、正確的方案,只有不那么差的方案。那就需要武吵的人發揮他的影響力,給團隊拿個主意,先結束這次討論,得到一個基本可用的方案來,才能讓事情繼續。
文吵則不一樣,軟件開發畢竟是一門科學,大多數情況下需要用到邏輯,通過分析、歸納、總結得到方案。需要收集足夠的信息,給出足夠的理由,并對方案中的概念給出清晰地定義,最后通過因果分析,證明自己的想法。在大多數情況下,我們更多的需要文吵,通過分析和證明解決遇到的問題。
不管是文吵還是武吵,都需要講邏輯。只有當團隊對這些基本的邏輯規律達成共識的時候,“吵架”才能高效,并且避免落入謬誤的陷阱。
邏輯學的三個基本規律
邏輯學的三個基本規律可以讓吵架更加準確,避免無意義的爭論,減少邏輯矛盾,讓吵架有所產出。這三個重要的規律是:同一律、矛盾率、排中律。
同一律
在同一段論述(命題和推理)中使用的概念含義不變,這個規律就是同一律。形式化的表述是 A -> A。
“概念”在邏輯學中的意義非常重要,概念有兩個邏輯學規律:內涵和外延。內涵指的是這個概念區別于其他概念的本質屬性,例如大熊貓是指的生物學中某一個物種。外延指的是這個概念所能描述的事物的范圍,比如白馬比馬這個概念外延要小,是不同的兩個概念。
所以白馬非馬的本質爭論在于自然語言的不確定性:
- 從概念上說,白馬這個概念不是馬這個概念。所以白馬非馬。
- 從謂詞(“是” 這個謂詞)邏輯來說,白馬這個概念代表的事物集合屬于馬這個概念代表的事物集合。所以白馬是馬(白馬屬于馬,但是白馬這個概念不是馬這個概念)。
同一律描述的是在一段論述中,需要保持概念的穩定,否則會帶來謬誤。我在大學辯論賽中利用了這個規律,贏了一次辯論。
當時的論題是“網絡會讓人的生活更美好嗎?”,兩個論點主要的論點是:
- 網絡讓人們的生活更方便。
- 網絡讓人們沉溺虛擬世界。
我們選擇的論點是 “網絡讓人們的生活更方便”。在辯論賽的前期,另外一方為了論證 “網絡讓人們沉溺虛擬世界”,描述了打電話、寫信也可以讓人生活很美好,并不會沉溺。這剛好落入了我們的邏輯陷阱。我們指出,郵政、電話網絡也是網絡的一種,對方的邏輯不攻自破。
這屬于典型的 “偷換概念”,我們偷換了“計算機網絡”和“網絡”這幾個概念。
矛盾律
矛盾律應用的更為普遍,幾乎所有人都能認識到矛盾律。它的含義是,在一段論述中,互相否定的思想不能同時為真。形式化的描述是:“A 不能是非 A”。
矛盾律這個詞的來源就是很有名的 “矛和盾” 的典故,出自《韓非子·難勢》中。說有一個楚人賣矛和盾,牛皮吹的過大,說自己的盾在天底下沒有矛能刺破,然后又說自己的矛,天底下的盾是不能穿透的。前后矛盾是一個眾所周知的邏輯規律,但是并不是一開始馬上就能看出來,需要多推理幾步才能看出來。即使如此,在同一個上下文中,出現了矛盾的邏輯論述也被認為是不可信的。
具有矛盾的論述有時候又被稱為悖論。尤其是宗教領域充滿了大量的悖論,例如是否存在一個萬能的神,做一件自己不能完成的事情。
矛盾律的用處可以駁斥不合理的論斷,也可以用于反證法。在軟件開發過程中,我們時常遇到這種情況,需要開發過程中才能發現矛盾。這個很難避免,除非有充足經驗的工程師。
需要注意的是邏輯學中的矛盾律和毛澤東思想中的矛盾論不是一回事,前者是邏輯學規律,后者是辨證唯物的一種方法。
排中律
排中律是邏輯規律中最難理解的一個規律。它的表述是:同一個思維過程中,兩個互相否定的思想必然有一個是真的。用形式化的表述就是,A 或者非 A。
排中律的意義在于,明確分析問題的時候不能含糊其辭,從中騎墻。比如有人討論:人是不是動物。不能最終得到一個人既是動物又不是動物,這種討論是沒有意義的。
比如在一次技術會議中,需要選擇使用的數據庫,只能使用一種數據庫。如果采用了 MySQL 就不能說沒有采用 MySQL。
排中律看起來好像沒有意義,但具有非常大的價值,讓討論最終有結論,而不是處于似是而非的中間狀態。
如何詭辯
在爭吵中,人們會下意識的引入謬誤,從而主動或者被動的詭辯。詭辯的方法非常多,下面聊幾個有意思的詭辯方法,認識到詭辯的存在,讓吵架的輸出更可信。
偷換概念
偷換概念是一種利用同一律的詭辯方法。往往是利用一個詞語的多義性來制造詭辯,這種例子相當常見,在一次日常對話中:
“朋友:為了讓自己的判斷和認知更為客觀,我們應該同時學習多個學科的東西。
我(故意抬杠):人不能同時學習多個學科的東西。 朋友:為什么,學生不都是同時學習數學、語文、英語么。 我:你現在正在看手上這本書,能同時看我手上這本么。 朋友:。。。(感覺被套路)” |
我偷換了概念,把 “同時” 這個詞的時間精度調低了,導致這次對話變了味。
偷換概念在生活中無處不在?!段淞滞鈧鳌分械男悴爬?“我”這個概念的偷換,讓姬無命莫名其妙并自殺了。
相關性不等于因果性
這個是一個不得不提的詭辯手法,我們從小深受其害。
最經典的例子是,很多父母信佛,然后娃高考的時候天天去求神問佛。如果小孩考上了大學,那么就是拜佛的功勞,如果沒有考上,那就是小孩不努力。多么完美的邏輯閉環,完全無懈可擊。
同樣的橋段在各種電視、電影中存在。某一伙人闖入了一個村子,然后這個村子發生了瘟疫,群眾認為是這些人帶來了不詳。
程序員圈子也會有類似的議論,因為大公司都用的 Java 而不是 PHP,所以 PHP 是一個垃圾語言,我們要成為大公司,所以要把 PHP 換成 java。所以很多公司明明可以茍一下,然后因為折騰死掉了。
我們需要時刻記住,相關性不等于因果性,才能認識到一些微妙的邏輯關系。
因果倒置
“可憐之人必有可恨之處。” 這是很多人掛到嘴邊的話,支持者甚多。
我小的時候對這句話記憶深刻。小學的時候被年長的同學欺負,后來因為打架老師知道了,其他同學都表明我是個被欺負的可憐鬼,老師還是對我們都做出同樣的處罰。
說出了一句舉世名言:“為什么欺負你,不欺負別人”。
為什么只欺負你,不欺負別人,所以你也不對,同樣要受到懲罰。這是典型的強盜邏輯,從結果推導出原因,但是這個原因并不成立,因為我們知道原命題為真,逆命題不一定為真。
歸納法的局限
邏輯學上把個別的知識推廣到一般的知識規律叫做歸納推理。歸納推理是一種樸素的認識方法,在邏輯學中,歸納推理有其意義,但是需要注意的是邏輯學從來沒有把歸納法得出的結論當做真理。
歸納法的問題和類比謬誤類似。古人認識的到了一個規律,雞叫三遍天會亮,但是后來出去旅游發現其他地方的雞不是這樣的,真的是應了那句,“東方不亮西方亮,黑了南方有北方。”
中國太大了,甚至二十四節氣的規律都不能適用于每一個地方。歸納法只能有限的反應某種規律,不能廣泛、絕對的得到真理,也不能從個體推出一般。
算命先生希望從四柱八字、面相分析、掌紋、筆跡這些中歸納真理,如果認識到歸納法的局限性,就不會平白無故交這些智商稅了。
責任轉移
證明神存不存在,保健品有沒有功效,壯陽藥有沒啥作用是科學界三大難題。
從邏輯上證明有其實很容易,只需要找出一個例子即可,比如證明天鵝是白色的,只需要找出一個白色的天鵝即可。但是證明黑色的天鵝不存在,是非常困難的,除非窮舉世界上所有的天鵝,才能得出這個結論。
人們的思維中,天生偷懶,所以人們才會有 “寧可信其有,不可信其無”。
所以有一種詭辯,我姑且稱之為責任轉移,就是在辯論中把舉證的責任推給別人,然后再來挑對方的毛病。這是一種非常高級且隱晦的詭辯手段。
比如有神論要求無神論者給出證據,證明神不存在,但是證明無非常困難。對方只能舉出一些例子,但是這些例子非常脆弱,如果再結合偷換概念就更無懈可擊了。
“大師:神會保佑你的。
無神論者:神不存在。 大師:你怎么證明神不存在呢。 無神論者:我從來沒看到過神。 大師:沒看到過神,不代表神不存在。 無神論者:看都沒看見,怎么能說神存在呢。 大師:神是一種信念,它無處不在,慢慢體悟吧。 無神論者:。。。” |
責任轉移大法是不斷把舉證的責任推給對方,然后在挑錯,讓對方自顧不暇。
總結
邏輯學中的內容非常多,還有很多有趣規律,比如三段論、命題和演繹等。
但對生活來說,本文介紹的一些方法用于吵架足夠了,當然不是為了學習怎么制造詭辯,而是為了分辨詭辯。當我們在工作中交流時,能注意概念的統一和尊重同一律、矛盾律、排中律等邏輯學基本要素時,溝通會變得更加高效,吵架也更加有理有據,并從中得到成長。
【本文是51CTO專欄作者“ThoughtWorks”的原創稿件,微信公眾號:思特沃克,轉載請聯系原作者】