freesky

          自由天空
          隨筆 - 8, 文章 - 0, 評論 - 0, 引用 - 0
          數據加載中……

          觀點與展望,第 3 部分: 什么是最有價值的 IT 體系結構技能,如何學習

          觀點與展望,第 3 部分: 什么是最有價值的 IT 體系結構技能,如何學習?

          IBM 技術帶頭人回答有關 IT 體系結構的各種亟待處理的問題

          級別: 初級

          Editorial staff (dwinfo@us.ibm.com), developerWorks, IBM

          2006 年 8 月 10 日

          IBM 專家將提供各自的個人觀點,以推動 IT 體系結構實踐方面的發展,從而幫助您更好地擔當架構師這一職責。

          引言:IT 體系結構不像電視節目

          注意:有關觀點與展望 專欄的全面的信息,請參閱以前的部分:

          我希望能有電視節目展示 IT 架構師的生活。但您知道在電視上的樣子。人們都很了不起,通常長得很好看,手邊有所有需要的東西,他們都異常的聰明——而且所有部分都非常輕易地就整合到一起了。您可能看著這樣的節目,而忘記了他們的實際工作有多困難。暫時逃避一下現實。而且,每周您都有機會假裝這就是真實的生活。

          我們都知道,和生活一樣,IT 體系結構并不是這樣的。(真是的,撰寫這個專欄甚至也不那樣簡單,只是純粹說說才很簡單。)需要進行培訓,需要努力工作,需要使用技能技巧,會犯很多錯誤,而且需要很多的耐心。當然,說需要一定天分也未嘗不可。

          知道了成為一個成功的 IT 架構師需要投入多少工作后,我們就想知道哪些因素對成為一個不錯的架構師起決定性作用。因此,我們向專家組提出了這樣的問題:“什么技能對 IT 架構師最有價值,架構師如何學習這些技能?”

          可以在很多地方找到成為好的架構師所需的技能列表——書上、培訓課程、大學、有關體系結構的其他網站上等等。例如,IBM 的內部專業提高網站就提出以下幾點 IT 架構師的理想特征:

          • 設計體系結構的技能和經驗
          • 有序的以方法為驅動源的任務執行
          • 完整生命周期經驗
          • 行業部門經驗
          • 領導能力
          • 很強的溝通和專業技能

          和可能看到的很多其他列表類似,這個列表相當泛泛,可能并不如您所期望的那樣有可操作性。而這正是我們詢問前面的問題的原因所在:幫助您確定一個明確的方向。

          我們希望對此問題的討論能為您提供幫助。我們鼓勵您在 IT 體系結構討論論壇發表您對這些觀點的看法。如果您有任何問題希望我們的專家進行答復,請與我聯系。充分利用專家資源——他們非常樂意為您提供幫助,非常愿意能推動 IT 體系結構方面的實踐。

          Paul Dreyfus,編輯
          developerWorks SOA and Web services
          pdreyfus@us.ibm.com

          另,為了避免對我們的排序方式的意見,我們已根據專家的名字按字母順序對專欄進行了排序。不過,請一定閱讀全文;您肯定不希望漏掉 Walker Royce 的連珠妙語。



          Ali Arsanjani





          權衡各個相互沖突的需求

          架構師必須 學習權衡各個相互沖突的需求的技能。在調和體系結構的各個組成部分時,我們必須對各個看起來截然相反的事項進行權衡,如下面這些事項:


          • "“我需要一個全新的體系結構來支持一個新業務需求;所有項目必須在 2 年內完成,而我們希望您能在 1 年內完成下一個項目。”"
          • "資金有限,但我們希望能提供所有功能。"
          • 分析癱瘓與“直接編碼”
          • 靈活方法與復雜方法
          • 用戶期望與技術可實際提供的功能
          • 業務與 IT
          • 您的工作負擔和享受生活
          • 管理活動(時間計劃、支出)與“真正的”項目工作

          無論從技術角度出發,還是就業務角度而言,我們都需要對經常沖突的各種考慮和各個側面進行權衡。在看起來似乎無法解決的情況下進行正確的權衡是架構師成功的關鍵。

          這經常意味著要首先確定有哪些約束,理解這些約束為何存在沖突,并確定如何在問題空間對這些考慮進行權衡,從而解決所面臨的問題。





          了解各個相關部分以及它們彼此如何結合

          Bobby Woolf我還記得我第一次感覺像個架構師時的情況。他們要求我開發一個新的應用程序,突然我發現這個應用程序并不是一個單體,而是由多個專門化的部分組成的,其中的每個部分都在專門的服務器上運行,所有部分一起協作,形成一個應用程序。數據由數據庫服務器承載和提供,長時間運行的流程在工作流服務器中執行,遺留集成會通過消息傳遞服務器進行操作,而自定義代碼在應用服務器上運行,負責將所有這些部分粘合到一起。

          這就是體系結構:專門化的彼此不同的部分一起協作,形成完整的應用程序。IT 架構師知道如何將問題劃分為專門化的各個部分,并使其作為整體一起協同工作。

          那么,什么是對 IT 架構師最具價值的技能呢?就是要了解這些不同類型的服務器以及其提供來幫助解決問題的不同功能,并要了解如何將它們一起使用來開發和部署應用程序。成為一個引擎方面的專家也非常誘人,如數據架構設計人員、規則專家、J2EE 開發人員。團隊也需要這樣的人員,但他們不是架構師。IT 架構師至少對所有這些方法都有所了解,了解哪個引擎適合用于執行應用程序中的何種任務,知道如何將應用程序分解成各個專門化的部分以及如何使這些部分一起工作。

          實際上,這是 IT 軟件 架構師。真正的 IT 架構師不僅需要了解軟件,也要了解以下內容——甚至可能還要包括其他方面的東西:

          • 硬件:服務器計算機、網絡路由器、延遲、防火墻、操作系統等等
          • 安全性:標識管理、訪問控制、保密性、認可等等
          • 資源規劃:內存使用、帶寬、負載、負載平衡、故障轉移、高可用性等等

          需要學習很多內容,但軟件方面無疑可以作為一個很好的起點開始學習。

          如何學習這些技能呢?您需要逐個學習各個部分,并學習如何將其作為整體結合使用。首先要學習如何實現各個部分,如何使用每種類型的引擎。不知道工作流到底是什么?獲取 WebSphere Integration Developer 并實現 HelloWorld 業務流程執行語言(Business Process Execution Language,BPEL)流程。不了解消息傳遞?閱讀 developerWorks 上介紹如何使用服務集成總線的簡單示例的文章。學習了每種服務器的細節知識后,請將這些細節放在一邊,而將精力放在每種引擎所能完成的任務的全局狀況上。消息傳遞、規則、工作流、數據和自定義代碼——這些都彼此不同,但差異在哪里呢?了解了這一點后,您將能夠把應用程序劃分為多個部分,從而利用每種引擎的獨特功能。

          此時您就成為了一名 IT 架構師。





          快速學習

          Christina Lau您所應具有的唯一最有價值的技能?

          快速學習新事物的能力。這一點適用于我們這個不斷發展的行業的很多角色,而不僅是 IT 架構師。

          那么,如何學習這個技能呢?

          我是在讀大學時學到這項技能的。從那以后,我們忘記了在那里學習過的很多東西,包括 Lisp、微分方程等。但我保留了快速學習這一技能。





          溝通和推動力

          David Jackson無論何時問我 IT 架構師的工作是怎樣的——這個問題與他們的最重要技能直接相關——我都會將其與建筑設計師相比較。IT 架構師處在客戶(CEO、LOB 執行人員)和構建人員(IT 開發/交付),能夠向客戶說明技術可能性和向構建人員說明客戶的需求。這意味著 IT 架構師必須能夠在這兩個領域進行清楚的表述、說明,并在這兩方面都提出中肯的意見。

          顯然,對這個職位而言,溝通和推動力是其關鍵的技能。IT 架構師使用他們的經驗和直觀推斷來將暫時的定義欠佳的問題空間簡化為能夠構建和交付的內容,并同時始終以客戶的需求為工作的核心。





          溝通和傾聽

          Grady Booch 毫無疑問:溝通的能力。成功的架構師必須能夠清楚、明了、簡潔地對體系結構決策進行描述、演繹和申辯。高效的架構師還必須能夠使用各種媒體(包括代碼、模型、文檔、PowerPoint 演示文檔以及談話和講座)與各方面的技術和非技術干系人進行溝通——包括代碼編寫人員和其他開發人員,甚至最終用戶、會計師和行政官員。另外,真正高效的架構師不僅善于表述概念,同時也是相當出色的聽眾,能夠按照預期計劃完成討論任務。

          如何學習這項技能?練習,練習,再練習。





          進行連接

          Jenny Choy在我看來,IT 架構師所具有的最有價值的技能是將各個部分連接起來的能力。為了將分散或看起來不相關的組件(問題)聯系起來,以形成一個完整的系統。可以從完整的系統派生出在實效和策略方面都有意義且可行的解決辦法。

          這就是將架構師與專業人員區分開的一項技能:通過全局性的視圖,可以更全面地看待整個系統并了解其他一些注意事項,從而幫助您確定哪些是重要內容,哪些是干擾信息。此技能也能在不同角色身上和不同情況下發揮作用,不受技術、行業和職務級別的影響。具有這種能力的技術架構師可以幫助在業務和技術之間建立聯系。

          如何獲得此技能:體驗學習。接觸架構師工作的解決方案的子項目或子組件,不斷詢問自己這些問題:“為什么這個重要?”和“我的這一部分解決方案與什么相關?”嘗試了解各個部分如何形成更大的完整程序。從外向內了解各個部分。

          一種稱為思維導圖的創造性思考技術異常有幫助。——Jenny Choy

          如何學習此技能:我發現,對于嘗試學習和進行全局思維實踐的人來說,一種稱為思維導圖的創造性思考技術異常有用。(思維導圖是由 Tony Buzan 于 20 世紀 60 年代末提出的,用以幫助人們開發大腦潛能。)這項技術可幫助您捕獲和組織各個想法(或組件),能在單頁中體現各個組件的多層次分解和組件的相關關系。由于與某個主題相關的所有內容的全貌都呈現在單個頁面上,這就訓練大腦在相關上下文中看待所有事項,并允許對有興趣的主體進行進一步分解,且同時保持對全局情況的了解。





          對可能遇到的問題進行預先估計

          Kurt Bittner我認為 IT 架構師必須具有的最重要技能是能夠對在復雜環境中對可能出現的性能和吞吐問題進行事先估計,并進行恰當的決策來避免這些問題。這項技能與了解此類問題的分類、診斷根源和進行相應決策來解決這些問題的能力直接相關。只有一個真正的老師:實際處理具有代表性的各個實際(即“生產”)系統的各種問題。我不認為只具有應用程序開發經驗而沒有實際操作經驗的人具有成為高效的架構師所需的經驗。

          很多工程方面的造詣依賴于理解和分析故障以了解根源的實踐。而這個技能正是我所要討論的技能——系統地對故障和性能問題進行分析,然后對問題進行細化,以確定根源。IT 架構師首先需要能夠對潛在的吞吐問題進行預先估計,并設計恰當的解決方案來防止發生此類問題。





          基本學習:學習如何進行學習

          Sanjay Bose我希望能給出一個更為簡單的問題,但為了成為成功的架構師,您需要具有出色的基本學習 技能。我對基本學習的定義是,學習如何高效地進行學習。目前,成功的架構師需要具有大量的技能,要不斷地對舊技能進行更新并能快速地掌握新技能。如果不能獲得和應用新技能,將可能縮短架構師的職業生涯。但出色的基本學習技能將為架構師提供不斷擴展的靈活技能庫——可根據需要進行靈活調整。這就讓架構師能夠完成其工作的復雜要求,非常專業地處理各個方面,如:




          • 理解和列出各個問題/解決方案的相關事項
          • 分析新場景和復雜場景
          • 分析和確定解決方案要求的范圍
          • 對解決方案元素進行可視化和概念化工作
          • 對解決方案模型和模式進行合成
          • 應用(學習)各種新技術和最佳實踐
          • 評估和區分解決方案概念/設計/提案
          • 研究備選選項
          • 與業務和技術干系人進行有效溝通

          除了通過固有的基本學習能力外,還可以通過一些其他方式來獲得此技能:

          1. 良好的學校教育,特別是大學階段的教育,在此階段的課程涉及范圍非常廣泛,課程的密集型較強,同學之間的競爭也較為激烈。我在 Mumbai 的 IIT (Indian Institute of Technology) 進行大學本科的學習期間學習的很多精華課程的細節都已經遺忘了,但這段經歷提升了我的出色的基本學習技能。那些考試前的十一個小時的填鴨式學習也對此有所貢獻。 ;-)
          2. 通過多年擔任各種角色和承擔各種職責積累的專業經驗和實踐。在進行工作時,總是嘗試進入對自己有所挑戰的區域。這些區域將提升和加強您的基本學習技能。我最初是在一家《財富》10 強金融機構(非常誘人!)擔任分析師,隨后從事了多年的技術咨詢工作(從芯片設計、內核/OS 編程到 UI 框架等多個領域)。然后,我加入了一家剛剛創立的公司,在其中幫助定義產品體系結構。(在這種新創建的公司里可以真正學到如何擔當多面手!)現在我已在 IBM 擔任過多個具有獨特挑戰的角色。




          深入研究,同時眼觀全局

          Sridhar Iyengar我認為架構師所需的最重要技能是能夠深入鉆研可能會帶來較大好處的特定技術問題,并同時能夠考慮到更大的組織目標和體系結構。

          例如,在分析 Web 應用程序的性能時,如果所耗的大部分時間(如 90%)都花在數據庫服務器上的密集型數據庫搜索、查詢和數據聚合上了,則通過調整 Web 表示層的算法并不會帶來太多改善。關鍵是能夠處理查詢性能問題(如果您是專家)或找到能夠及時解決問題的專家。進行此類推理要求具有分析技能,能考慮更大范圍內的情況和進行恰當的折衷,并同時對特定技術領域進行深入分析。

          那么如何學習這項技能呢?通過實際接觸多個項目、向同事學習以及了解和利用體系結構模式和最佳實踐。





          合成正確的解決方案

          Walker Royce一個好的架構師能夠合成正確的解決方案(或判斷候選解決方案或現有解決方案的宏觀質量),卻無需了解實現的所有精確細節。

          有能力的架構師是天生的,而不是培訓出來的。有潛質的人可以進行培養,但如果您天生就不能領悟多維的“美麗”,您可以永遠也學不會。因此,一個更好的問題是,如何能確定那些天生就具有架構師能力的人并培養他們的相關技能呢?

          這方面我也不確定。






           

          轉載:http://www-128.ibm.com/developerworks/cn/webservices/ar-itio3/

          posted on 2007-05-13 17:17 freesky 閱讀(252) 評論(0)  編輯  收藏 所屬分類: 架構設計

          主站蜘蛛池模板: 尚志市| 观塘区| 中牟县| 勃利县| 永定县| 徐州市| 蒙自县| 义乌市| 临武县| 三河市| 建阳市| 类乌齐县| 读书| 平远县| 腾冲县| 巫溪县| 安丘市| 浦江县| 余姚市| 武强县| 扎鲁特旗| 十堰市| 忻城县| 台江县| 胶州市| 嫩江县| 额尔古纳市| 柳江县| 西充县| 富裕县| 武鸣县| 鄂托克旗| 九寨沟县| 阜阳市| 门源| 鲁山县| 亳州市| 珠海市| 陈巴尔虎旗| 福鼎市| 大邑县|