觀點與展望,第 3 部分: 什么是最有價值的 IT 體系結構技能,如何學習
觀點與展望,第 3 部分: 什么是最有價值的 IT 體系結構技能,如何學習?IBM 技術帶頭人回答有關 IT 體系結構的各種亟待處理的問題 ![]() |
![]() |
級別: 初級 Editorial staff (dwinfo@us.ibm.com), developerWorks, IBM 2006 年 8 月 10 日 IBM 專家將提供各自的個人觀點,以推動 IT 體系結構實踐方面的發展,從而幫助您更好地擔當架構師這一職責。 注意:有關觀點與展望 專欄的全面的信息,請參閱以前的部分: 我希望能有電視節目展示 IT 架構師的生活。但您知道在電視上的樣子。人們都很了不起,通常長得很好看,手邊有所有需要的東西,他們都異常的聰明——而且所有部分都非常輕易地就整合到一起了。您可能看著這樣的節目,而忘記了他們的實際工作有多困難。暫時逃避一下現實。而且,每周您都有機會假裝這就是真實的生活。 我們都知道,和生活一樣,IT 體系結構并不是這樣的。(真是的,撰寫這個專欄甚至也不那樣簡單,只是純粹說說才很簡單。)需要進行培訓,需要努力工作,需要使用技能技巧,會犯很多錯誤,而且需要很多的耐心。當然,說需要一定天分也未嘗不可。 知道了成為一個成功的 IT 架構師需要投入多少工作后,我們就想知道哪些因素對成為一個不錯的架構師起決定性作用。因此,我們向專家組提出了這樣的問題:“什么技能對 IT 架構師最有價值,架構師如何學習這些技能?” 可以在很多地方找到成為好的架構師所需的技能列表——書上、培訓課程、大學、有關體系結構的其他網站上等等。例如,IBM 的內部專業提高網站就提出以下幾點 IT 架構師的理想特征:
和可能看到的很多其他列表類似,這個列表相當泛泛,可能并不如您所期望的那樣有可操作性。而這正是我們詢問前面的問題的原因所在:幫助您確定一個明確的方向。 我們希望對此問題的討論能為您提供幫助。我們鼓勵您在 IT 體系結構討論論壇發表您對這些觀點的看法。如果您有任何問題希望我們的專家進行答復,請與我聯系。充分利用專家資源——他們非常樂意為您提供幫助,非常愿意能推動 IT 體系結構方面的實踐。 Paul Dreyfus,編輯 另,為了避免對我們的排序方式的意見,我們已根據專家的名字按字母順序對專欄進行了排序。不過,請一定閱讀全文;您肯定不希望漏掉 Walker Royce 的連珠妙語。 ![]()
架構師必須 學習權衡各個相互沖突的需求的技能。在調和體系結構的各個組成部分時,我們必須對各個看起來截然相反的事項進行權衡,如下面這些事項:
無論從技術角度出發,還是就業務角度而言,我們都需要對經常沖突的各種考慮和各個側面進行權衡。在看起來似乎無法解決的情況下進行正確的權衡是架構師成功的關鍵。 這經常意味著要首先確定有哪些約束,理解這些約束為何存在沖突,并確定如何在問題空間對這些考慮進行權衡,從而解決所面臨的問題。
這就是體系結構:專門化的彼此不同的部分一起協作,形成完整的應用程序。IT 架構師知道如何將問題劃分為專門化的各個部分,并使其作為整體一起協同工作。 那么,什么是對 IT 架構師最具價值的技能呢?就是要了解這些不同類型的服務器以及其提供來幫助解決問題的不同功能,并要了解如何將它們一起使用來開發和部署應用程序。成為一個引擎方面的專家也非常誘人,如數據架構設計人員、規則專家、J2EE 開發人員。團隊也需要這樣的人員,但他們不是架構師。IT 架構師至少對所有這些方法都有所了解,了解哪個引擎適合用于執行應用程序中的何種任務,知道如何將應用程序分解成各個專門化的部分以及如何使這些部分一起工作。 實際上,這是 IT 軟件 架構師。真正的 IT 架構師不僅需要了解軟件,也要了解以下內容——甚至可能還要包括其他方面的東西:
需要學習很多內容,但軟件方面無疑可以作為一個很好的起點開始學習。 如何學習這些技能呢?您需要逐個學習各個部分,并學習如何將其作為整體結合使用。首先要學習如何實現各個部分,如何使用每種類型的引擎。不知道工作流到底是什么?獲取 WebSphere Integration Developer 并實現 HelloWorld 業務流程執行語言(Business Process Execution Language,BPEL)流程。不了解消息傳遞?閱讀 developerWorks 上介紹如何使用服務集成總線的簡單示例的文章。學習了每種服務器的細節知識后,請將這些細節放在一邊,而將精力放在每種引擎所能完成的任務的全局狀況上。消息傳遞、規則、工作流、數據和自定義代碼——這些都彼此不同,但差異在哪里呢?了解了這一點后,您將能夠把應用程序劃分為多個部分,從而利用每種引擎的獨特功能。 此時您就成為了一名 IT 架構師。
快速學習新事物的能力。這一點適用于我們這個不斷發展的行業的很多角色,而不僅是 IT 架構師。 那么,如何學習這個技能呢? 我是在讀大學時學到這項技能的。從那以后,我們忘記了在那里學習過的很多東西,包括 Lisp、微分方程等。但我保留了快速學習這一技能。
顯然,對這個職位而言,溝通和推動力是其關鍵的技能。IT 架構師使用他們的經驗和直觀推斷來將暫時的定義欠佳的問題空間簡化為能夠構建和交付的內容,并同時始終以客戶的需求為工作的核心。
如何學習這項技能?練習,練習,再練習。
這就是將架構師與專業人員區分開的一項技能:通過全局性的視圖,可以更全面地看待整個系統并了解其他一些注意事項,從而幫助您確定哪些是重要內容,哪些是干擾信息。此技能也能在不同角色身上和不同情況下發揮作用,不受技術、行業和職務級別的影響。具有這種能力的技術架構師可以幫助在業務和技術之間建立聯系。 如何獲得此技能:體驗學習。接觸架構師工作的解決方案的子項目或子組件,不斷詢問自己這些問題:“為什么這個重要?”和“我的這一部分解決方案與什么相關?”嘗試了解各個部分如何形成更大的完整程序。從外向內了解各個部分。
如何學習此技能:我發現,對于嘗試學習和進行全局思維實踐的人來說,一種稱為思維導圖的創造性思考技術異常有用。(思維導圖是由 Tony Buzan 于 20 世紀 60 年代末提出的,用以幫助人們開發大腦潛能。)這項技術可幫助您捕獲和組織各個想法(或組件),能在單頁中體現各個組件的多層次分解和組件的相關關系。由于與某個主題相關的所有內容的全貌都呈現在單個頁面上,這就訓練大腦在相關上下文中看待所有事項,并允許對有興趣的主體進行進一步分解,且同時保持對全局情況的了解。
很多工程方面的造詣依賴于理解和分析故障以了解根源的實踐。而這個技能正是我所要討論的技能——系統地對故障和性能問題進行分析,然后對問題進行細化,以確定根源。IT 架構師首先需要能夠對潛在的吞吐問題進行預先估計,并設計恰當的解決方案來防止發生此類問題。
除了通過固有的基本學習能力外,還可以通過一些其他方式來獲得此技能:
例如,在分析 Web 應用程序的性能時,如果所耗的大部分時間(如 90%)都花在數據庫服務器上的密集型數據庫搜索、查詢和數據聚合上了,則通過調整 Web 表示層的算法并不會帶來太多改善。關鍵是能夠處理查詢性能問題(如果您是專家)或找到能夠及時解決問題的專家。進行此類推理要求具有分析技能,能考慮更大范圍內的情況和進行恰當的折衷,并同時對特定技術領域進行深入分析。 那么如何學習這項技能呢?通過實際接觸多個項目、向同事學習以及了解和利用體系結構模式和最佳實踐。
有能力的架構師是天生的,而不是培訓出來的。有潛質的人可以進行培養,但如果您天生就不能領悟多維的“美麗”,您可以永遠也學不會。因此,一個更好的問題是,如何能確定那些天生就具有架構師能力的人并培養他們的相關技能呢? 這方面我也不確定。
|
轉載:http://www-128.ibm.com/developerworks/cn/webservices/ar-itio3/
posted on 2007-05-13 17:17 freesky 閱讀(252) 評論(0) 編輯 收藏 所屬分類: 架構設計