作者:
江南白衣,原文出處:
http://blog.csdn.net/calvinxiu/archive/2007/02/18/1511545.aspx,轉載請保留。--last update 2007.3.25
引子:
"這個項目的架構是什么?"
對方爽快的回答:"Spring+Struts+Hibernate。"
嗯,這位很可能不是架構師......
一、核心競爭力
架構設計的原理、模式與技術
未經培訓的架構師們從試驗與挫折中獲得架構設計的技能,但其中大量的原理、知識、模式和技巧,都經歷了一個重復發現的過程。
其實,各路神仙在這個領域雖則沒有搗鼓出大熱的暢銷書來,但前篇的架構師書單,也足夠為我們作一個系統的知識整理。
悲哀的發現,自己的再發現式積累還是太慢、太片面,大多局限于GOF23、Java EE架構模式、RUP 等方面。
滿足架構質量屬性所需的軟硬件知識
如何滿足性能,伸縮性,擴展性、可靠性,容災,可恢復性,可管理性這些架構質量屬性,是架構師的飯碗級知識。
有序的以方法為驅動源的任務執行
匠級的架構師多有一套自己的方法論、過程論,每回設計都是熟練而有序的執行。
架構師在軟件開發中的過程,以RUP為基礎的剪裁被描述得最為詳細,可執行度最高的。
而核心的架構過程,直覺與模式,有序與混沌的平衡,就只有反復試驗,獨家秘制。
領域知識與業務分析能力
技術人員一般抗拒學習軟件開發以外的東西,但架構師卻非如此不可。
BTW.G9寫過一篇很有意思的〈商業軟件編程很無聊?〉
大型項目的經驗
中國有多少架構師,不在于有多少人通過了什么考試培訓,而在于中國大型項目的數量。
問:你這個項目的架構是什么?一口回答:Spring+Struts+Hibernate。這位很可能就不是架構師了,因為這僅僅是技術Stack,項目規模不大時Spring+Struts+Hibernate才會成為架構的重點。
除了親自擔任這些項目的架構師,如果明了別人架構設計與決策的思路也是一樣能拿經驗。所以,盡量多讀一下公司項目的設計文檔,也愉快的接受其他項目組架構評審會的邀請。
二、基本能力
完整的軟件開發生命周期經驗
這個不用說了,幸好中國的架構師什么臟活累活都做過,甚至跟著市場人員跑去做演示這些國外架構師不一定有的經驗我們都有了,差別只在于基本開發生命周期理論--RUP 、CMMI3、 敏捷原則的細節掌握。
精通一兩種主流開發語言、保持當下架構的開發體驗
國內的架構師到了三十歲以后很多就往理論上跑,而國外的架構師在往上發展的同時保持下面的編程體驗,所以國內多水王,而國外則多大師。水王的設計多與實現有很大斷層。而且人過三十學習能力下降,手藝放下了就別想撿起來了:(
但是,保持一個體驗就好了,也不必要苦行僧似的要求自己每日編碼若干行,很可能因為你的時間安排不來反而拖了大家的進度。
宏觀了解當前的技術與產品,追逐最新的技術潮流
架構師的知識結構必須是亙古真理+最新技術的結合,盲目追逐最in技術的不是架構師,但倚老賣老,張口就說你們年輕人就知道追逐新技術的同樣也討人嫌。
架構師對各大公司的完整產品線和著名的開源項目應該都有個宏觀上的了解。
但也要抵制成為某項技術專家,如Oracle啟動參數優化專家的誘惑,技術細節掌握到業務職責需要的程度就剛好了。除非如Spring Framework進一步了解能有天大好處。
與業務域開發域人員溝通的能力、決策能力和權威和其他的領導能力
IT 架構師處在客戶和開發人員之間,必須能夠使用各種媒體(代碼、模型、文檔、PowerPoint以及談話和講座),與技術和非技術的干系人進行溝通。
另外,架構師必須注意培養自己的技術決策能力和決策權威。
最后,架構師好歹也是個半大不小的官,其他領導必要的能力就不列了。
參考了IBM DW中國上的兩篇文章:
三、鏡子做好了,自己先照一下
- 要把書單啃完;
- 要熟悉電信的業務知識;
- 要重點學習滿足架構質量屬性的軟硬件知識;
- 要把公司幾百個項目的設計文檔挑好的看一遍;
- 要跟隨公司最新一波RUP+CMMI3行情;
- 要重修C++;
- 要完整了解一遍IBM、BEA們的產品線。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1511545