系統架構師的知識結構
系統架構師
軟體系統架構師綜合的知識能力包括9個方面,即:
1、戰略規劃能力。
2、業務流程建模能力。
3、資訊資料結構能力。
4、技術架構選擇和實現能力。
5、應用系統架構的解決和實現能力。
6、基礎IT知識及基礎設施、資源調配能力。
7、資訊保安技術支援與管理保障能力。
8、IT審計、治理與基本需求分析、獲取能力。
9、面向軟體系統可靠性與系統生命週期的質量保障服務能力。
作為系統架構師,必須成為所在開發團隊的技術路線指導者;具有很強的系統思維的能力;需要從大量互相沖突的系統方法和工具中區分出那些有效的,那些無效的。架構師應當是一個成熟的、豐富的、有經驗的、有良好教育的、學習快捷、善溝通和決策能力強的人。豐富是指他必須具有業務領域方面的工作知識,知識來源於經驗或者教育。他必須廣泛瞭解各種技術並精通一種特定技術,至少了解計算機通用技術以便確定那種技術最優,或組織團隊開展技術評估。優秀的架構師能考慮並評估所有可用來解決問題的總體技術方案。需要良好的書面和口頭溝通技巧,一般通過視覺化模型和小組討論來溝通指導團隊確保開發人員按照架構建造系統。
職業名稱
系統架構師(System Architecture)系統架構師是負責設計系統整體架構,從需求到設計的每個細節都要考慮到,把握整個專案,使設計的專案儘量效率高,開發容易,維護方便,升級簡單等等。
職業定位
系統構架,是對已確定的需求的技術實現構架、作好規劃,運用成套、完整的工具,在規劃的步驟下去完成任務。
工作職責
系統架構師培訓
系統構架師的職責
系統架構師的職責就是設計一個公司的基礎架構,並提供關於怎樣建立和維護系統的指
導方針。具體來講,系統架構師的職責主要體現在以下幾方面:
1 負責公司系統的架構設計、研發工作;
2 承擔從業務向技術轉換的橋樑作用;
3 協助專案經理制定專案計劃和控制專案進度;
4 負責輔助並指導 SA 開展設計工作;
5 負責組織技術研究和攻關工作;
6 負責組織和管理公司內部的技術培訓工作;
7 負責組織及帶領公司內部員工研究與專案相關的新技術。
8 管理技術支撐團隊並給專案、產品開發實施團隊提供技術保障。
11 理解系統的業務需求,制定系統的整體框架(包括:技術框架和業
系統架構
務框架)
12 對系統框架相關技術和業務進行培訓,指導開發人員開發。並解決系統開發、執行中出現的各種問題。 系統架構師的目的:
13 對系統的重用、擴充套件、安全、效能、伸縮性、簡潔等做系統級的把握。
————系統架構師的工作在於針對不同的情況篩選出最優的技術解決方案,而
不是沉在具體實現細節上。此外系統架構師是不可培養的,好的系統架構師也許不是一個優秀的程式設計師,但是不能不懂技術之間的差別,技術的發展趨勢,採用該技術的當前成本和後繼成本,該技術與具體應用的偶合程度,自己可以調配的資源狀況,研發中可能會遇到的風險,如何迴避風險。這些才是架構師需要考慮的主要內容。
架構的分類
第一種是基礎架構的設計規劃,例如:OS,硬體,網路,各種應用伺服器等等。
第二種是軟體開發設計的架構師,他們負責規劃程式的執行模式,層次結構,呼叫關
系,規劃具體的實現技術型別,甚至配合整個團隊做好軟體開發中的專案管理。
能力要求
一、系統架構相關的知識和經驗。
二、很強的自學能力、分析能力、解決問題的能力。
三、寫作、溝通表達、培訓。
職業概述
系統構架師是近幾年來在國內外迅速成長並發展良好的一個職位,它的重要性及給 IT業所帶來的影響是不言而喻的。在我國雖然還存在一定的爭論性、不可預測性、不理解性,不確定性,
系統架構
但它確實是時代發展的需要。IT 業各公司為了讓他們現有的 IT 系統實現更大的價值,紛紛進行了重大的技術變革,
這樣一來,對高水平的架構師的需求激增。對負責架構的管理人員的需求不斷增大,其增長速度比對 CIO 的需求還要快,這是因為,架構師會給一個組織帶來大量專門技術。公司需要一些在架構方面有真才實學,而且學得深且廣的人才。
在比爾• 蓋茨的眾多稱謂中,據說他更偏愛“首席
軟體架構師”。同樣,在網易創始人丁磊名字前,也有“首席架構師”這樣的稱謂。由次可見,對於企業來說,架構師就是靈魂的創造者。
系統構架師的作用
系統架構師該怎麼來實現其“架構”企業的職能呢?尤其在設計企業 IT 策略時,該怎樣體現架構師的價值?
這裡以例項說明:
摩托羅拉
摩托羅拉的副總裁 Toby Redshaw 說,架構師是“IT 策略中的中樞”,
系統架構
而且這一角色對公司的影響確實非常大。當 Toby Reshaw 在 2001 年進入摩托羅拉並擔任其策略暨架構副總裁時,他儼然一位購房者對一套搖搖欲墜的公寓進行估價一樣。他並不是僅僅只作些表面上的修改,而是擬定了一個重建摩托羅拉整個基礎結構的計劃,這個計劃可以徹底修整公司的基礎建設,就像一個建築師設計一幢房子一樣,Redshaw 擬出了一張技術構架藍圖,一座技術性的建築,以便使被他稱作“如義大利麵條般錯亂的應用程式,機器和管線”那些東西變得井然有序。他說,只要選擇了正確的架構策略並用對了人,摩托就可以用比以前更快的速度生產出大量應用軟體,而且可以減少維持重疊系統的費用。 Redshaw 說:“如果你連建築架構都搞不好,就算你的石匠技術再高明,又有什麼用?架構師是 IT 策略中的中樞。” 像 Redshaw 這樣的系統架構師們在企業內部的影響力非常大。很久以來,雖然他們一直在資訊科技部門擔任重要職務,但是他們經常受委託提供全面概況分析,並提出一些關於如何遵照標準執行這些任務的建議,而這些對日常運作的影響極其有限。今天,隨著各公司都在尋找重建他們的 IT 系統,使其更能有效節省成本,更靈活的方法,架構師愈來愈被看作是至關重要的因素。
一個定義明確的架構的目標在於降低執行復雜的運算系統的費用。一個公司可以採用一種特定的資料庫配置,如微軟的資料庫,進而將系統標準化,而不需要讓公司的每個部門安裝它們自己所需要的資料庫伺服器。
Express
Express 的技術架構副總裁 Andy Miller 說:“如果你沒有一項強有力的架構策略,人人各行其是,最後以得到六種伺服器和軟體平臺而告終,你的系統變成了大雜燴,而那將使你的費用激增。”把架構師獨立出來有很多好處,比如系統的整體把握,質量上的保障,技術上的先進性,架構的靈活性,高效性,還可有效地降低成本。試想,1 個月薪 1w 的架構師+10 個月薪5k 的工程師,肯定比 11 個月薪 6k 的高階工程師效果要好。一般來說,級別越高的架構師,經驗更豐富,爭相聘請的人也多,他們也是與公司全部的 IT 策略密切相關的專業人員。
系統構架師應具備的能力
作為軟體開發的設計架構師,那麼必須擁有一定的程式設計技能,同時有高超的學習新的架構設計、程式設計技能。另外,我覺得作為軟體架構師,還必須瞭解一定的硬體、網路、伺服器的基本知識。要不然,你都不知道有些什麼材料可以用,你怎麼去根據實際情況去規劃你的軟體架構呢?忽視程式設計能力的持續跟新,是永遠不能夠成為一個成功的系統架構師。
一般來講,系統架構師應該擁有以下幾方面的能力:
1:具備 8 年以上軟體行業工作經驗;
2:具備 4 年以上 C/S 或 B/S 體系結構軟體產品開發及架構和設計經驗;
3:具備 3 年以上的程式碼編寫工作經驗;
4:具備豐富的大中型開發專案的總體規劃、方案設計及技術隊伍管理經驗;
5:對相關的技術標準有深刻的認識,對軟體工程標準規範有良好的把握;
6:對 .Net/JAVA 技 術 及 整 個 解 決 方 案 有 深 刻 的 理 解 及 熟 練 的 應 用 , 並 且 精 通WebService/J2EE 架構和設計模式,並在此基礎上設計產品框架;
7:具有物件導向分析、設計、開發能力(OOA、OOD、OOP),精通 UML 和 ROSE,熟練使用 Rational Rose、PowerDesigner 等工具進行設計開發;
8:精通大型資料庫如 Oracle、Sql Server 等的開發;
9:對計算機系統、網路和安全、應用系統架構等有全面的認識,熟悉專案管理理論,並有實踐基礎;
10:在應用系統開發平臺和專案管理上有深厚的基礎,有大中型應用系統開發和實施的成功案例;
11:良好的團隊意識和協作精神,有較強的內外溝通能力。
系統構架師與其他角色的區別
系統構架師與產品經理的關係及區別
產品經理通常是指負責產品設計的“專人”。一個優秀的理想的產品經理,應同時具備較高的商業素質和較強的技術背景。產品經理要有深厚的領域經驗,也就是說,對該軟體系統要應用到的業務領域非常之熟悉。比如,開發房地產銷售軟體的產品經理,應該對房地產公司的標準銷售流程瞭如指掌,甚至比大多數銷售人員還要清楚。如果開發的是通用產品,他/她還具備對市場、潛在客戶需求的深刻洞察力。 那麼,系統架構師與產品經理有什麼不同呢? 我們不應該把二者混為一談,這是不少論述和實踐常犯的錯誤。我看來,如果把開發軟體比作攝製電影,產品經理之於系統架構師,就正像編劇之於導演。產品經理雖然要有一定技術背景,但仍應屬於“商業人士(business people)”,而系統架構師則肯定是一個技術專家。二者看待問題的立場、角度和出發點完全不同。 系統構架師與專案經理的關係及區別 軟體專案經理是指對專案控制/管理,關注專案本身的進度、質量,分配、調動、協調、管理好人、財、物等資源的負責人。對於軟體專案經理來講,包括專案計劃、進度跟蹤/監控、質量保證、配置/釋出/版本/變更管理、人員績效評估等方面。優秀的專案經理需要的素質,並不僅在於會使用幾種軟體或是瞭解若干抽象的方法論原則,更重要的在於從大量專案實踐中獲得的寶貴經驗,以及交流、協調、激勵的能力,甚至還應具備某種個性魅力或領袖氣質(Charisma)。 由此可見,專案經理和系統架構師在職責上有很大差異。混同這兩個角色,往往也會導致低效、無序的開發。特別是,從性格因素上講,單純的技術人員傾向於忽視“人”的因素,而這正是管理活動的一個主要方面。另外,就像戰爭中的空軍掩護(Air Cover)一樣,專職的專案經理能夠應付開發過程中大量的偶發事件和雜務,對於一個規模稍大的專案,這些雜務本身就能佔用一個全職工作者的幾乎全部時間。在一個專案中,推動專案發展的是系統構架師,而不是專案經理。專案經理的職責只是配合系統構架師,提供各個方面的支援。主要職責是與內外部溝通和管理資源(包括人)。系統構架師提出系統的總體構架,給出開發指導。一個專案中,專案經理的角色什麼?如果他即使管理人員又是設計人員,則必須比別人強,能夠有讓別人服的東西。如果他只是專案管理人員,系統構架師有專門人員,就可以不用精通或者說了解 it 各個方面的知識,如果瞭解更好。另外,如果在一個專案沒有人在技術構架上和開發指導上負全部責任,而是每個人都負責一快的架構、分析、設計、程式碼和實施等,最後肯定會失去管理。
系統構架師與系統分析員的關係及區別
系統分析員(System analyst)是指對系統開發中進行分析、設計和領導實施的人。一般意思上講,系統分析員的水平將影響系統開發的質量,甚至成敗。但在一個完善的系統開發隊伍中,還需要有業務專家,技術專家和其他輔助人員。所以,系統分析員只是其中的角色之一。但我國許多的 IT 公司,一般只有系統分析員而沒有技術專家。系統分析員固然是對特定系統進行分析、設計。所以他的任務、目標是明確的。他只是去執行任務,完成系統的最終設計。
系統架構師應該和系統分析員分開,但架構師必須具備系統分析員的所有能力,同時還應該具備設計員所沒有的很多能力。 系統架構師是指導、檢督系統分析員的工作,要求系統分析員按什麼標準,什麼工具,什麼模式,什麼技術去設計系統的。同時,系統架構師應該對系統分析員所提出的問題,碰到的難題及時地提出解決的方法。並檢查、評審系統分析員的工作。
如何評估系統構架師的工作成績
重要性
優秀的系統架構師是保證軟體系統強大生命力的核心人物。專業架構師能夠幫助公司全面研究現有架構和設計模式、評估系統設計的優缺點和可能存在的風險,通過一系列的專題指導和具體案例幫助公司掌握先進的、成熟的設計模式,簡化複雜的業務邏輯和需求,確定系統最適合法人方案。在必要的情況下,還可就特定領域或課題,為開發人員提供定製指導。通過上面的介紹,我們對系統構架師有了的較深刻的認識,我們明白了系統構架師的地位,作用,工作職責及任職條件,同時還區別出與其他角色的不同,那麼如何評估系統構架師的工作成績,
評估依據
如何識別一個合格的優秀的系統構架師是不難的。
具體來講,我們可以通過以下幾方面來評估系統構架師的工作成績:
1:系統構架師是否是某一技術領域的專家;
2:系統構架師能否指導分析員的設計工作,發現並指出設計存在的問題並提出解決方
法,評審他們的工作;
3:系統構架師能否指導軟體工程師進行開發工作,發現並指出編碼存在的問題並提出
解決方法,評審他們的工作;
4:系統構架師能否協助好專案經理制定專案計劃和控制專案進度;
5:系統構架師能否及時有效地解決設計、開發人員所提出的問題,解決技術上的難
題;
6:系統構架師能否制訂並規範系統設計和開發文件、工具、模型;能否讓其他人員容
易理解;
7:系統構架師能否經常組織並帶領公司內部員工研究、學習與專案相關的新技術;
8:系統構架師能否組織和管理好公司內部的技術培訓工作,技術研究和攻關工作;
9:系統構架師能否組織和管理好公司內部的技術培訓工作,技術研究和攻關工作;
10:系統構架師是否有良好的團隊意識和協作精神,有較強的內外溝通能力;
11:系統構架師是否能管理好技術支撐團隊並給專案、產品開發實施團隊提供技術保
障;
12:系統構架師所設計的系統架構是否合理,技術是否先進,能否滿足客戶的要求;
13:系統構架是否有擴充套件性,安全性,能否經受壓力測試,網路流量在超使用者數下如何
14:控制;系統邊界如何處理,瓶頸問題如何解決等;
15:系統設計前期、中期、後期所要解決的問題,是否有階段性,里程碑的標識;
16:是否有分析、識別並儘可能地迴避風險,降低風險所引發問題成本的能力;
17:能否給公司降低開發成本,提高效率;
系統架構師的待遇
系統架構師是軟體專案的總設計師,是軟體企業的新產品、新技術體系的構建者,是目前軟體開發中急需的高層次技術人才。其是由系統開發工程師發展而來,可以向專案經理、技術經理等高層次的方向發展
[1]。