Keith Braithwaite

軟體開發是人的事業#

在幾乎所有的開發專案中,人們都在與人合作。人們為人撰寫軟體,為人提供支援。這是一門以人為本的事業。然而不幸的是,程式設計師在學校所學的東西,往往使他們在與同事和客戶的互動中準備不足。幸運的是,有一個完整的學術領域可以幫助我們——人文學科

語言與理解的侷限#

Ludwig Wittgenstein 在《Philosophical Investigations》中有力地指出:我們日常使用的語言不是不可能是一種序列化格式——它無法精確地將一個人腦中的想法或畫面傳輸到另一個人腦中。因此,我們在「收集需求」時,就應當對誤解保持警覺。

Wittgenstein 還指出,人們之間的相互理解並非來自共同的定義,而是來自共同的經驗,即一種共同的生活形式。這也許解釋了為什麼深入了解其問題領域的程式設計師,往往比局外人做得更好。

隱喻如何塑造思維#

Lakoff 和 Johnson 在《Metaphors We Live By》中指出,語言本質上大量依賴隱喻,而這些隱喻影響我們理解世界的方式。例如:

  • cash flow(現金流)——把金錢比喻為「流體」
  • 通訊協定的 high levellow level——使用者在「上面」,技術在「下面」

這些隱喻暴露了我們對系統結構的思維方式,也標記了我們可能需要偶爾打破的懶惰思維習慣

工具的本質#

Martin Heidegger 在《Being and Time》中研究了人們使用工具的方式。程式設計師建造、使用、思考、創造和修改工具。但對使用者而言,一個工具在使用中是隱形的——只有在工具不好用時才會變成關注的對象。在討論可用性時,這個區別值得牢記。

分類並非如我們所想#

Eleanor Rosch 推翻了亞里斯多德式的分類模型。當程式設計師詢問使用者對系統的需求時,我們傾向於收集由謂詞(predicates)構成的定義。然而 Rosch 的研究顯示,人們其實是透過範例(examples)來理解世界的——某些範例比其他的更好,也就是所謂的原型(prototypes)。這意味著分類可能是模糊的、重疊的、具有豐富內在結構的。

如果我們堅持用亞里斯多德式的方式尋求答案,就無法問出關於使用者世界的正確問題,也難以達成我們所需要的共同理解。