讀古今文學網 > 程序員必讀之軟件架構 > 建造大師角色的差異 >

建造大師角色的差異

多數看法都一樣:建造大師並沒有太多時間去建造,儘管他們具備這樣的技能。回到軟件行業,軟件架構師應該寫代碼嗎?我直截了當地回答:「理論上,是的。」更完整的答案可以在這本書 裡面找到。為什麼?因為技術不是一個實現細節 ,你需要理解為自己的決定所做的取捨。

那麼現代建築師為什麼不為實際的建造過程出力呢?為了回答這個問題,我們要看看這個角色這些年是如何演化的11 :

11 http://en.wikipedia.org/wiki/Architect

在古代和中世紀的歷史中,大多數建築設計和建設都是工匠完成的:下至石匠和木匠,上至建造大師。直到現代,建築師和工程師之間也沒有明顯的區別。在歐洲,建築師和工程師的頭銜主要因地域不同而經常交替使用,但指的都是同一個人。

結構工程的維基百科頁面12 提供了更多信息:

12 http://en.wikipedia.org/wiki/Structural_engineering

自從人類開始修築屬於自己的結構,結構工程就出現了。在19世紀末的工業革命期間,建築專業體現出了與工程專業的不同,成為一個更正式的專業。直到那時,建築師和結構工程師通常還是同一個人:建造大師。19世紀和20世紀初,隨著結構理論專業知識的發展,專門的結構工程師才開始出現。

本質上,傳統建築師的角色已經分化為兩種。一種是結構工程師,確保建築物不倒塌;另一種是建築師,負責與客戶交流,收集他們的需求,從美學的視角進行建築設計。馬丁·福勒(Martin Fowler)的bliki13 有一個頁面談到了兩種角色差異的意義:

13 http://martinfowler.com/bliki/BuildingArchitect.html

軟件架構師被看作是首席設計師,是把項目的每件事凝聚在一起的人。但建築師可不會幹這些。建築師關注的是與想要建築的客戶交流。他的精力集中在客戶覺得重要的事情上,比如建築的佈局和外觀。但建築也不僅限於此。

因其背後蘊含的包括物理定律在內的豐富知識,建築現在被看作是一門工程學科,這些知識能夠建模和預測建材的行為。相比之下,軟件開發行業還比較年輕,正以驚人的速度發展。今天的建築大多還是使用和幾百年前相同的材料,但似乎我們每20分鐘就會發明一種新技術。我們生活在「互聯網時代」。除非我們這個行業發展到軟件的構建方式和預測工程項目相同,否則團隊中有人一直跟隨技術的發展,有能力做出如何設計軟件的正確決策,還是很重要的。換句話說,軟件架構師還需要扮演結構工程師和建築師的角色。