知識結構,具備的能力,職業定位,主要功能,工作職責,架構分類,職業概述,作用,摩托羅拉,Express,具備能力,角色區別,評估成績,重要性,評估依據,職業行情,
知識結構 軟體系統架構師綜合的知識能力包括9個方面,即:
1、戰略規劃能力。
2、業務流程建模能力。
3、信息數據結構能力。
4、技術架構選擇和實現能力。
5、套用系統架構的解決和實現能力。
6、基礎IT知識及基礎設施、資源調配能力。
7、信息安全技術支持與管理保障能力。
8、IT審計、治理與基本需求分析、獲取能力。
9、面向軟體系統可靠性與系統生命周期的質量保障服務能力。
作為系統架構師,必須成為所在開發團隊的技術路線指導者;具有很強的
系統思維 的能力;需要從大量互相衝突的
系統方法 和工具中區分出哪些是有效的,哪些是無效的。架構師應當是一個成熟的、豐富的、有經驗的、有良好教育的、學習快捷、善溝通和決策能力強的人。豐富是指他必須具有業務領域方面的工作知識,知識來源於經驗或者教育。他必須廣泛了解各種技術並精通一種特定技術,至少了解計算機通用技術以便確定那種技術最優,或組織團隊開展技術評估。優秀的架構師能考慮並評估所有可用來解決問題的
總體技術方案 。需要良好的書面和口頭溝通技巧,一般通過可視化模型和小組討論來溝通指導團隊確保開發人員按照架構建造系統。
具備的能力 (1)技術能力
技術能力,不用置疑肯定是最重要的。技術能力弱的架構不是一個好架構。所以,你需要知道所有主流技術的基本原理、套用場景,及快速解決問題的能力。所以,架構師必須要有見識,所需知識面肯定是要不斷拓展的。你需要清楚在什麼樣的場景用什麼樣的技術比較合適,並知道可能存在什麼樣的風險。來了需求,你腦袋是空的,不知道用什麼技術這是最可怕的。
(2)架構能力
這個可以表現為
抽象 能力、整體規劃能力、及設計能力。你需要照在業務的角度進行系統分解、技術選型、架構搭建,以及規範制定。架構出來了至少可以滿足最近的發展,或者可以很方便對現有架構進行擴容。有人說架構不需要懂業務,我面試過的就有明確表示不做業務架構。當然有方面的架構師,如中間件架構師,運維基礎設施架構師等。但一般的後端架構師都是需要了解業務,不理解業務你如果進行系統分解,服務劃分,及根據不同業務作出不同的架構。技術都是為業務服務的,不站在業務的角度設計架構,那架構就是空談。
(3)溝通能力
這個看起來不是最重要的,其實也非常重要。作為一個優秀的架構師,你需要清楚的知道客戶的需求,需要不斷和需求人員進行溝通,以達到客戶真正的目的。不論是不是架構師,任何一個職場人,提高自己的溝通表達能力無疑是不可或缺的。有一句話怎么說的,領導就喜歡拍馬屁的。做領導的大多不是技術特別牛的,但溝通能力肯定是很好的。
職業定位 系統構架,是對已確定的需求的技術實現構架、作好規劃,運用成套、完整的工具,在規劃的步驟下去完成任務。系統架構師做為系統架構的設計者,關係到套用系統成敗的關鍵。
主要功能 系統架構師的主要功能包括: (1)系統架構師是軟體項目的總體設計師,是軟體組織新產品的開發與集成、新技術體系的構建者。 (2)系統架構師是在技術上對所有重要事情做出決定的人(系統架構師在整個軟體開發過程中都起著重要作用,並隨著開發進程的推進而其職責或關注點不斷地變化)。 (3)需求階段,軟體架構師負責理解和管理非功能性系統需求,比如軟體的可維護性、性能、復用性、可靠性、有效性和可測試性等。審查客戶和市場人員提出的需求,確認開發團隊提出的設計;組織開發團隊成員和開發過程的定義;協助需求分析師完成“用戶需求說明書”、“需求變更說明書”。 (4)設計階段,架構師負責對整個軟體架構、關鍵構件、接口的設計。協助系統分析師完成《系統概要設計說明書》。 (5)編碼階段,架構師則成為程式設計師的顧問,並且經常性地要舉行一些技術研討會、技術培訓班等。 (6)測試及實施階段,隨著軟體開始測試、集成和交付,集成和測試支持將成為軟體架構師的工作重點。
工作職責 系統架構師的職責就是設計一個公司的基礎架構,並提供關於怎樣建立
和維護系統的指導方針。具體來講,系統架構師的職責主要體現於以 下幾方面:
系統架構師培訓 1 負責公司系統的架構設計、研發工作;
2 承擔從業務向技術轉換的橋樑作用;
3 協助項目經理制定項目計畫和控制項目進度;
4 負責輔助並指導 SA 開展設計工作;
5 負責組織技術研究和攻關工作;
6 負責組織和管理公司內部的技術培訓工作;
7 負責組織及帶領公司內部員工研究與項目相關的新技術。
系統架構 8 管理技術支撐團隊並給項目、產品開發實施團隊提供技術保障。
9 理解系統的業務需求,制定系統的整體框架(包括:技術框架和業務框架)
10 對系統框架相關技術和業務進行培訓,指導開發人員開發。並解決系統開發、運行中出現的各種問題。 系統架構師的目的:
11 對系統的重用、擴展、安全、性能、伸縮性、簡潔等做系統級的把握。
————系統架構師的工作在於針對不同的情況篩選出最優的技術解決方案,而
不是沉在具體實現細節上。此外系統架構師是不可培養的,好的系統架構師也許不是一個優秀的程式設計師,但是不能不懂技術之間的差別,技術的發展趨勢,採用該技術的當前成本和後繼成本,該技術與具體套用的偶合程度,自己可以調配的資源狀況,研發中可能會遇到的風險,如何迴避風險。這些才是架構師需要考慮的主要內容。
架構分類 第一種是基礎架構的設計規劃,例如: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)是指對系統開發中進行業務需求分析、系統需求分析、可行性分析、業務建模和指導項目開發的人。系統分析師所面臨的往往是有許多不確定性的事件,需要對這些不確定性的事件進行分析、總結,使之得出一個相對可靠的確定性結論或實施方案模型。一般意思上講,系統分析師的水平將影響系統開發的質量,甚至成敗。但在一個完善的系統開發隊伍中,還需要有業務專家,技術專家和其他輔助人員。對於大型企業或者項目,如果一人承擔多個角色,往往容易發生顧此失彼的現象。
系統分析師對業務系統進行分析、建模,他的任務、目標是明確的。系統架構師協同系統分析師的工作,建議系統分析師按什麼標準,什麼工具,什麼模式,什麼技術去思考系統。同時,系統架構師應該對系統分析師所提出的問題,碰到的難題及時地提出解決的方法。系統架構師在項目中擔任技術骨幹的角色,負責技術實施中的重點技術問題攻關。同時,又是系統分析師的技術顧問,為整個項目的技術框架與技術細節的展開和落實提供強有力的技術保障。
評估成績 重要性 優秀的系統架構師是保證軟體系統強大生命力的核心人物。專業架構師能夠幫助公司全面研究現有架構和設計模式、評估系統設計的優缺點和可能存在的風險,通過一系列的專題指導和具體案例幫助公司掌握先進的、成熟的設計模式,簡化複雜的業務邏輯和需求,確定系統最適合法人方案。在必要的情況下,還可就特定領域或課題,為開發人員提供定製指導。通過上面的介紹,我們對系統構架師有了的較深刻的認識,我們明白了系統構架師的地位,作用,工作職責及任職條件,同時還區別出與其他角色的不同,那么如何評估系統構架師的工作成績,
評估依據 如何識別一個合格的優秀的系統構架師是不難的。
具體來講,我們可以通過以下幾方面來評估系統構架師的工作成績:
1:系統構架師是否是某一技術領域的專家;
2:系統構架師能否指導分析員的設計工作,發現並指出設計存在的問題並提出解決方法,評審他們的工作;
3:系統構架師能否指導軟體工程師進行開發工作,發現並指出編碼存在的問題並提出解決方法,評審他們的工作;
4:系統構架師能否協助好項目經理制定項目計畫和控制項目進度;
5:系統構架師能否及時有效地解決設計、開發人員所提出的問題,解決技術上的難題;
6:系統構架師能否制訂並規範系統設計和開發文檔、工具、模型;能否讓其他人員容易理解;
7:系統構架師能否經常組織並帶領公司內部員工研究、學習與項目相關的新技術;
8:系統構架師能否組織和管理好公司內部的技術培訓工作,技術研究和公關工作;
9:系統構架師是否有良好的團隊意識和協作精神,有較強的內外溝通能力;
10:系統構架師是否能管理好技術支撐團隊並給項目、產品開發實施團隊提供技術保障;
11:系統構架師所設計的系統架構是否合理,技術是否先進,能否滿足客戶的要求;
12:系統構架是否有擴展性,安全性,能否經受壓力測試,網路流量在超用戶數下如何控制;
13:系統邊界如何處理,瓶頸問題如何解決等;
14:系統設計前期、中期、後期所要解決的問題,是否有階段性,里程碑的標識;
15:是否有分析、識別並儘可能地迴避風險,降低風險所引發問題成本的能力;
16:能否給公司降低開發成本,提高效率;
職業行情 系統架構師的一般月薪範圍在20000-100000美元左右。系統架構師是軟體項目的總設計師,是軟體企業的新產品、新技術體系的構建者,是軟體開發中急需的高層次技術人才。其是由系統開發工程師發展而來,可以向研發總監,高級技術總監等高層次的方向發展。