1. 務實優於抽象#
Joel 鼓勵開發者專注於實際可用的解決方案,而非迷失在過度抽象的理論中。軟體業中存在一群人,他們熱衷於將所有事物抽象化到極致——Joel 稱他們為「架構太空人」(Architecture Astronauts)。
2. 架構太空人的特徵#
架構太空人有幾個明顯的共同特質:
- 他們嘗試建立通用的萬能抽象,試圖用一個架構解決所有問題
- 他們談論的概念越來越抽象、越來越模糊,最終失去實際意義
- 他們很難產出可運作的程式碼——因為他們忙於設計「完美的架構」
- 他們通常出現在大型企業中,因為只有大公司能容忍長期不產出的團隊
當有人向你推銷一個「能解決一切問題」的架構時,請提高警覺。真正好的解決方案通常是針對特定問題的具體方案。
3. 抽象的陷阱#
架構太空人常犯的錯誤是過度強調架構元素,而忽略了實際應用。例如:
- 他們會花大量時間討論「peer-to-peer」的架構優勢,卻無法說清楚這個架構要用來做什麼具體的事
- 概念被包裝得越來越華麗,但距離使用者可以觸摸到的功能越來越遠
- 每一層抽象都增加了複雜度,卻不一定增加了價值
4. 技術炒作的實例#
許多被大肆宣傳的技術平台與標準,實際上可能並沒有解決開發者的真正問題:
- Java 被宣傳為「一次編寫,隨處執行」,但實務上的跨平台體驗並不如預期
- .NET 被描繪為革命性的開發平台,但對多數開發者而言,改變的是工具而非解決的問題
- XML 被吹捧為資料交換的終極方案,但 XML 本身只是一種格式,不會自動解決互通性問題
這些技術本身可能是好的,但問題在於誇大的宣傳讓人分不清哪些是真正的進步,哪些只是行銷包裝。
如何辨識過度炒作
- 宣傳中充滿了「革命性」「顛覆性」「全新範式」等詞彙
- 無法用一句話說清楚它解決了什麼具體問題
- 示範總是用極簡化的例子,迴避真實世界的複雜性
- 批評者被指為「不理解」或「跟不上時代」
5. 務實開發者的態度#
面對架構太空人的華麗辭藻,務實的開發者應該:
- 專注於解決使用者的實際問題
- 評估技術時問:「這能幫我的使用者做到什麼之前做不到的事?」
- 避免被抽象概念牽著走,堅持看到可運作的成果
- 記住:使用者不在乎你的架構有多優雅,他們在乎的是軟體能不能幫他們完成工作
真正有價值的創新通常可以用簡單的語言描述它解決了什麼問題。如果一個概念需要十頁投影片才能解釋,它可能不是在解決真正的問題。