發展中的認知偏差:它在真實環境中的表現
已發表: 2023-03-17我們今天生活的世界是建立在海量數據收集和處理之上的。 在某個時間點,公司發現通過足夠大的數據集和正確的處理,他們可以找到關於客戶的非常有價值的見解,並有可能利用這些見解。 對於我們這些在日常生活中依賴現代技術的人來說,感覺我們所做的幾乎所有事情都以某種方式被跟踪和衡量。 我們現在擁有來自各地來源的大量數據。 歸根結底,所有這些信息都必須在一個處理點結束——我們的大腦。 信息世界正在快速發展,人腦正在竭盡全力適應並與之一起成長,但它只能做這麼多。
什麼是認知偏差?
輸入認知偏差; SimplyPsychology 的 Ruhl (2021) 將認知偏差描述為“由與記憶、注意力和其他心理錯誤相關的問題引起的無意識思維錯誤”。 她解釋說,這是“我們的大腦努力簡化我們生活的極其複雜的世界的結果。” 換句話說,當我們不斷收到新信息時,我們的大腦試圖通過做出假設來有效地處理這些信息,以幫助一切都變得有意義——其中一些是不正確的。
認知偏差如何出現在軟件工程中?
將其置於軟件工程的背景下,隨著技術以指數速度發展,工程師需要快速學習,以便他們能夠維護和更新他們構建的系統。 為了保持高效的步伐,做出假設變得不可避免,因為確定地了解任何事情都需要時間,而時間是有限的。 因此,能夠識別並仔細考慮所做的假設成為工程師工作的一部分。 這通常在解決方案設計過程中完成,並伴隨著對失敗結果的潛在成本的分析。 然而,以這種方式做出的假設與由認知偏差產生的假設之間的區別在於,一個是有意識的,而另一個是無意識的。 所以為了防止後者,我們需要意識到它的存在。
作為一名工程師,能夠識別自己的認知偏見非常有用,因為它有助於防止代價高昂的錯誤。 然而,了解如何培養這項技能可能不是自然而然的,因為它更受心理學的約束,而不是工程學。 值得慶幸的是,在這一領域已經進行了大量研究,並且可供公眾使用。 組織可以使用此信息來設計和實施有用的開發實踐,供工程師遵循,從而避免錯誤。
Chattopadhyay 等人。 來自俄勒岡大學的 (2020) 進行了一項名為“來自戰壕的故事:認知偏見和軟件開發”的研究,研究對像是一家初創公司的開發人員,他們的工作經驗從 1 年到 23 年不等。 這包括觀察開發人員執行他們的日常工作任務,同時大聲說出和表達他們的想法; 本質上是一個結對編程練習,除了一個沉默的研究人員而不是一個開發人員。 在觀察了 10 位不同的開發人員之後,研究人員編制了一份認知偏見類別列表以及由此產生的示例錯誤,如下表所示。
偏置類別 | 偏見 | 例子 |
---|---|---|
先入之見 | 確認,選擇性感知 | 當其他數據結構更適合數據查詢 API 時,P1 不斷添加 hashmap。 |
所有權 | 宜家效應、禀賦效應 | P8 決定重用她的舊 CSS 文件,而不是 Bootstrap 項目中預製的 CSS 文件。 |
固定 | 錨定和調整、信念保持、Semmelweis 反射、固定 | P9 專注於在只需要重新加載環境時更改函數定義。 |
訴諸默認 | 默認、現狀、沉沒成本 | P2打開一個新的代碼文件,將未使用的模板代碼放在文件的頂部。 |
樂觀 | 配價效應,無敵,一廂情願,過度樂觀,過度自信 | P4 為他的新聚合地圖代碼感到自豪,但在打印後出現錯誤。 |
方便 | 雙曲線貼現、基於時間的偏差、吝嗇的信息處理、代表性 | P2 只是簡單地創建了滿足他當前需求的過於冗長的代碼,但卻變成了拖慢未來進度的意大利麵條代碼。 |
下意識的行動 | 誤導性信息,有效性效應 | P6 專注於修復錯誤消息中列出的文件,而不是導致整個系統錯誤的核心依賴文件。 |
幸福的無知 | 常態效應 | P10 出於習慣忽略了所有編譯器警告,並沒有註意到一個新的異常,詳細說明了他構建失敗的原因。 |
表面選擇 | 對比效果、取景效果、光暈效果 | P4 沒有先檢查就直接從他的文檔中復制並粘貼了一個函數到他的語法中。 |
記憶偏差 | 首要性和新近性,可用性 | P1 重用了一個在最近的任務中效果很好的設計模式,因為他可以很容易地回憶起代碼的結構。 |
了解偏見以破壞惡性循環
作為一名開發人員,我確實在自己的經歷中認識到了其中的一些錯誤。 如果有人問我為什麼會犯這些錯誤,在我知道什麼是認知偏見之前,我可能會說,“因為我認為這是正確的做法。” 當談到無意識行為時,很難理解它從何而來甚至存在。 目前看似無害無害,但隨著時間的推移,這些錯誤可能會導致嚴重的負面影響,因為壞習慣已經形成並且變得難以改掉。 如果任其發展,系統中會引入越來越多的錯誤,並且會耗盡資源來修復這些錯誤,而且還可能以不正確的方式——惡性循環。
擁有外部視角,就像一個沉默的研究者,可以更容易地發現這些行為。 如果觀察者知道這些行為存在並且被允許在看到時指出它們,那就更有幫助了。 由於這些錯誤最終會影響業務,因此組織有責任了解快速生產的這些影響。 這種理解可以證明對實施適當程序和培訓的投資是合理的。 雖然我只關注了認知偏差如何出現在軟件開發中,但可以想像這些偏差如何出現在其他部門。 本質上,任何希望在工作中富有成效的人都可以從理解認知偏差中受益。
有興趣在這樣的團隊文化中進一步發展您的職業生涯嗎? 查看下面我們的空缺職位,第一時間了解新機會。
Nhu Tran
Nhu Tran 是 Rewind 的一名軟件開發人員。 Tran 是一位經驗豐富的程序員,熟悉軟件開發的整個生命週期,從設計到開發到實施再到測試。 當她不在屏幕前時,人們會發現 Tran 在冬天從山上爬下來,或者在夏天搭建舒適的露營地。