2010年6月24日 星期四

[分享]對架構師的看法

架構師是一個項目組的靈魂人物,他決定着整個系統的技術選型、整體架構以及模塊划分,同時還可能擔當與領導層的溝通角色,從某種意義上來說,架構師在很大程度上決定着項目的成敗與否,正所謂火車跑得快,全靠車頭帶。

很多優秀的架構師都是從一個優秀的開發人員轉變過來的,但優秀的開發人員未見得都能成為合格的架構師。與架構師相比,開發人員所需擔當的任務相對狹隘的多,其最大的目標就是編寫出精良的代碼、做好充分的測試以及撰寫高質量的文檔等;而架構師所要面對的則相對寬泛得多,除了過硬的技術之外,還需要有良好的表達能力,同時還要有宏觀的駕馭整個系統的能力。

有人曾說過,20几歲的編程天才好找,但30多歲的優秀架構師難尋。架構師何其難?除了敏銳的洞察力之外,我認為一個好的架構師必須具備如下几方面的素質:

A. 過硬的技術能力。有人說架構師就不需要編寫代碼,只需設計整體架構就行了。但我認為這是很片面的,試想一個人如果長時間不寫代碼,他還能具備持續的技術敏感度么?當然了,這里所說的寫代碼并非一般開發人員的行為,而是讓自己保持住對代碼的感覺。還有人說架構師不一定是技術高手,這一點我很同意,但他一定是個優秀的開發者。
B. 良好的溝通能力。這一點尤為重要,因為架構師需要與項目組的開發人員以及領導層不斷交換意見,向對方傳遞自己的設計意圖與思想,沒有良好的表達與溝通能力是很容易出現問題的。這一點在溝通方式并非母語的企業中尤為明顯。
C. 良好的軟件工程素質。雖說架構師不是項目經理,但我認為他需要對軟件開發過程有清晰明確的認識,這里的開發過程是個泛指,也許是RUP,也許是XP,是什么無所謂,但這種工程素質是每個優秀架構師必備的品格之一。
D. 寬廣的知識領域。架構師的眼界一定要開闊,絕對不能局限于眼前的小范圍事務,否則極易出現“鼠目寸光”的后果。這就需要架構師不斷學習,這里的學習既包括技術上的,同時也包括業務上的以及溝通上的。
E. 領域知識。架構師務必對自己所從事的業務領域有深刻的認識,他未必要成為業務專家,但他一定要對業務知識有深刻的理解。很難想象經常從事金融領域項目的架構師能輕松設計好電信領域的項目架構。知識需要積累,業務也是這樣的。
F. 處理系統非功能性需求的本領。架構師尤其需要對系統的性能、容錯、并發等非功能性需求方面有獨到的認識與解決辦法。一個項目到了后期,往往都是這些問題成為整個項目的瓶頸,這時架構師就要發揮其優勢了。

架構師之路是崎嶇的,充滿了荊棘與挑戰,但這卻是無數開發者的夢想。架構師是多項技能與素質的綜合體,每一位以此為目標的開發者都需要在平日的工作中不斷提升自己。

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/ricohzhanglong/archive/2009/08/07/4420123.aspx

我個人對於這篇文章的說法是蠻認同的,只不過台灣並沒有所謂的架構師這種觀念。為了達成這個目標,看起來還有很多東西要學。

沒有留言:

張貼留言

嘎嘎嘎