程序員的思維利器:逆向,總是逆向
今天,介紹一個(gè)我最喜歡的一個(gè)思維模型,叫做逆向思考。思維模型(mental model)是一套簡(jiǎn)單、抽象但非常有用的原則,可以幫助我們理解周圍的世界。
我是在 Farnam Street 的博客上看到逆向原理的,這也是查理·芒格(伯克希爾·哈撒韋公司的副主席和沃倫·巴菲特的朋友)最愛。他一句名言是,“......事物的本質(zhì)是,許多困難的問(wèn)題都是在逆向思考時(shí)得到最好的解決”。
在另一次采訪中,他回憶說(shuō),在二戰(zhàn)期間,作為一名空軍氣象學(xué)家,他沒(méi)有問(wèn)什么能保證飛行員的安全,而是問(wèn)有什么因素會(huì)殺死他們,并把所有的精力集中在“試圖預(yù)測(cè)雪、冰或霧,但忽略了幾乎所有其他的因素”。
我?guī)缀蹩梢杂靡槐緯鴣?lái)介紹查理·芒格說(shuō)過(guò)的其他有意思的東西,但是我先打住。
什么是逆向思考?
逆向思考是基于一個(gè)格言:逆向,總是逆向。它是先考慮一個(gè)逆向(通常是負(fù)面的)結(jié)果,并列出導(dǎo)致這些結(jié)果的原因。它迫使你需要停止做某些事情,以避免出現(xiàn)負(fù)面結(jié)果。它給我們提供了一種新的可能性和能力,這在正常的思維模式下很難被考慮到。
逆向思考的做法非常簡(jiǎn)單。
定義問(wèn)題:你要達(dá)到的目標(biāo)是什么?
- 逆向思考:怎么做保證能出現(xiàn)失敗的結(jié)果?
- 最后,考慮避免出現(xiàn)上述失敗的解決方案。
- 這聽起來(lái)非常抽象和模糊,我們來(lái)看幾個(gè)例子。
一、與其問(wèn)如何提高產(chǎn)品或功能的使用率? 你可以考慮有哪些事情阻礙了用戶使用某個(gè)功能?這將導(dǎo)致這樣一個(gè)優(yōu)化的列表:
- 加載時(shí)間慢,即性能問(wèn)題
- 營(yíng)銷力度不夠,或者在平臺(tái)上營(yíng)銷,或者營(yíng)銷的對(duì)象不對(duì)。
- 用戶手冊(cè)不知道在說(shuō)什么......你懂的。
二、 遵循逆向思考原則,自問(wèn)是什么阻礙了自己閱讀 Kindle 或書架上所有未讀的書,而不是問(wèn)如何才能讀更多的書?
可能的原因和需要割舍的一些東西如下:
- 花了太多時(shí)間在社交媒體上
- 在 Netflix 或迪斯尼看了太多的節(jié)目
- 花大量時(shí)間泡 reddit 或?yàn)g覽 HN 新聞。
三、在投資過(guò)程中,不要想我如何總是選擇一只贏利的股票,而要問(wèn)自己如何防止長(zhǎng)期虧損?
- 是否足夠分散投資以防止長(zhǎng)期虧損?
- 是基于合理的原則進(jìn)行投資,還是在投機(jī)?
希望這能讓你體會(huì)到逆向思考作為一種心理模型的強(qiáng)大,我要補(bǔ)充的是,它并不是銀彈,也不會(huì)總是給你具體的答案,但它會(huì)起到一個(gè)強(qiáng)制作用,避免明顯的判斷失誤。我再給你留下一段我最喜歡的查理關(guān)于逆向思考的名言。
通過(guò)努力讓自己始終不笨,而不是努力成為一個(gè)非常聰明的人,這一點(diǎn)讓很多人獲得了長(zhǎng)期的顯著優(yōu)勢(shì)。
查理·芒格
其他程序員怎么看這個(gè)問(wèn)題?
網(wǎng)友 mlangenberg 提到:
作為一名軟件開發(fā)人員,我在過(guò)去十二年里一直在做一件事:想盡所有可能出錯(cuò)的原因。
這樣做的缺點(diǎn)是,我已經(jīng)把我的思維模式訓(xùn)練成了這樣一種方式,以至于在工作之外很難把它關(guān)掉,這對(duì)我的個(gè)人生活產(chǎn)生了不少負(fù)面影響。
(也許我天生就是一個(gè)末日思維者,這也是我成為一名優(yōu)秀軟件工程師的原因)
網(wǎng)友 arthurjj 提到:
我習(xí)慣于和我的團(tuán)隊(duì)一起做一個(gè)項(xiàng)目預(yù)驗(yàn)收。在正式發(fā)布前幾個(gè)月,我提議團(tuán)隊(duì)快進(jìn)一下,假裝項(xiàng)目失敗了。然后我們討論項(xiàng)目為什么會(huì)失敗。
這通常會(huì)列出一個(gè)清單,并讓你時(shí)常對(duì)其保持警惕。
網(wǎng)友 seanpquig:
我在一家知名的搜索引擎算法團(tuán)隊(duì)工作,我也可以證明這種思路多年來(lái)對(duì)幫助改進(jìn)我們的產(chǎn)品非常有效。
相比于常規(guī)的“如何才能讓我們的搜索變得更好”的假設(shè)性想法,我們采取的是花費(fèi)大量時(shí)間分析數(shù)據(jù),找到我們失敗的地方。我們的許多顯著的相關(guān)性改進(jìn)都來(lái)自于跟蹤和了解我們始終無(wú)法產(chǎn)生結(jié)果或用戶無(wú)法參與的查詢類型。
我認(rèn)為這是一種非常有效的方法,但可能需要一些紀(jì)律和眼界。當(dāng)團(tuán)隊(duì)花了非常多時(shí)間關(guān)注產(chǎn)品的失敗時(shí),也許會(huì)產(chǎn)生一些內(nèi)部觀念,即產(chǎn)品不斷出現(xiàn)錯(cuò)誤和各種問(wèn)題。因此,你也需要記住你做得很好的地方,以及你作為一個(gè)團(tuán)隊(duì)或產(chǎn)品,已經(jīng)走了多遠(yuǎn)。
擴(kuò)展閱讀
避免愚蠢比尋求聰明更容易:
https://fs.blog/2014/06/avoiding-stupidity/ (英文)
網(wǎng)友討論:
https://news.ycombinator.com/item?id=23905221
英文原文:
https://www.anup.io/2020/07/20/invert-always-invert/
本文轉(zhuǎn)載自微信公眾號(hào)「 高可用架構(gòu)」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系 高可用架構(gòu)公眾號(hào)。