能否清晰明了的講解一下系統架構師,項目經理,系統分析師之間的差異區別?

關於碼農方面


架構師:主導系統的架構設計和核心模塊設計;核心功能的實現;主導技術難題攻關;解決各類潛在系統技術風險加固系統,保證系統的安全、穩定、快速運行;
項目經理:項目團隊組織和管理,跟進項目進度,編製項目計劃,識別和控制項目風險和質量,主要工作就是進度、計劃、風險、質量的跟蹤、控制、報告,協調項目干係人,保證按時、按質、按量完成項目。
系統分析師:現在很少用系統分析師這個頭銜了,主要工作是可行性研究、業務建模、設計系統總體方案和開發規劃。


系統架構師是負責設計系統整體架構,從需求到設計的每個細節都要考慮到,把握整個項目,使設計的項目盡量效率高,開發容易,維護方便,升級簡單等等。但是要明白的是,對於架構師而言,架構無小事!架構師也要繼編碼,如果編碼規範的執行不力,會直接影響到整個項目的代碼質量。

另外架構師是整個團隊的技術領導,需要具備領導能力,還需要與項目的各個方面的人員進行溝通,與項目經理溝通,幫助項目經理制定合理的開發計劃;與需求分析員溝通,了解系統的關鍵需求和非功能性需求;與開發人員溝通,使得架構設計能夠被真正執行。還有,架構師也是要不斷地學習的吆。


項目經理:就是管理項目(質量、時間、進度、成本等),制定項目的規劃,與項目需求分析師和客戶等溝通,處理好項目內的人員關係,組織培訓,團建增強團隊凝聚力。


系統分析師,看著名字自然就是要求精通計算機啦,不僅要精通前沿理論,還要對軟硬體開發技術、資料庫、項目整體的規劃和框架設計、模塊的設計和開發等等也要精通。在企業里,扮演著一個軟體項目開發核心領導者的身份吧,其中最為重要的能力就是系統架構的整體設計能力和詳細設計能力,這個能力可以說直接關係到一個軟體項目的成敗。


系統架構師與項目經理、系統分析師的關係及區別

系統架構師, 項目經理, 系統分析師
根據全國計算機技術與軟體專業技術資格(水平)考試的安排,其中作為高級工程師級別的職位有項目管理師、系統分析師和系統架構師(這裡的系統架構主要是指軟體系統的架構)。考試大綱對這三個職位的要求和職責定義如下。

(1)項目管理師:掌握信息系統項目管理的知識體系,具備管理大型、複雜信息系統項目和多項目的經驗和能力;能根據需求組織制定可行的項目管理計劃;能夠組織項目實施,對項目的人員、資金、設備、進度和質量等進行管理,並能根據實際情況及時做出調整,系統地監督項目實施過程的績效,保證項目在一定的約束條件下到達既定的項目目標;能分析和評估項目管理計劃和成果;能在項目管理進展的早期發現問題,並有預防問題的措施;能協調項目所涉及的相關人員。即項目管理師的主要職責是負責整個項目的實施和控制,協調各種資源(包括組織內部資源和客戶資源)。

(2)系統分析師:熟悉應用領域的業務,能分析用戶的需求和約束條件,寫出信息系統需求規格說明書,制訂項目開發計劃,協調項目開發與運行所涉及的各類人員;能指導制訂企業的戰略數據規劃,組織開發項目;能評估和選用適宜的開發方法和工具;能按照標準規範編寫系統分析、設計文檔;能對開發過程進行質量控制與進度控制;能具體指導項目開發。即系統分析師的主要職責是獲取並分析用戶的需求,形成規範化的文檔,指導整個項目的開發,需要與客戶不斷的交流,熟悉應用領域的業務。

(3)系統架構師:能夠根據用戶需求,結合用戶應用領域的實際情況,設計正確、合理的軟體構架,維護系統構件及其介面,並確保系統構架具有良好的性能;能夠對項目進行系統構架級的描述、分析、設計與評估;能夠按照相關標準編寫相應的設計文檔;具有紮實的理論功底、廣博的知識面,能夠與系統分析師、項目管理師相互協作、配合工作。即系統架構師的職責更加強調整體的、宏觀的系統設計,重點在架構級別上。重點要對架構進行描述、分析和評估。

傳統的系統開發:通過對用戶的需求分析,組織必要的資源和設施,選擇設計合適的架構,然後由項目經理統籌安排組織實施(包括人、財和物),這是一個反覆互動,逐步契合的過程。

由上面所述可以看出,在傳統的系統開發中,系統開發進度及統籌的管理主要由項目經理來完成,需求分析及技術實現主要由系統分析員或設計員來完成。由於項目經理、系統分析員或者程序員從各自職位角度出發產生衝突的制約,不可能很好地給出開發規範,搭建系統實現的核心構架,並澄清技術細節、掃清主要難點的技術,或者說最終難以確認和評估技術對需求實現產生的影響。所以我們把系統架構設計師定位在圖1-1的下圖中兩個橢圓相交的部分,他負責整個系統的戰略策劃和技術實現。圖1-1的上圖說明架構設計先行和系統架構師、系統分析師、項目管理師三者的相互關係與作用。

1.系統構架師與項目經理的關係及區別

軟體項目經理是指對項目控制/管理,關注項目本身的進度、質量、分配、調動、協調,管理好人、財、物等資源的負責人。對於軟體項目經理來講,職責包括項目計劃、進度跟蹤/監控、質量保證、配置/發布/版本/變更管理、人員績效評估等方面。優秀的項目經理需要的素質,並不僅在於會使用幾種軟體或是了解若干抽象的方法論原則,更重要的在於從大量項目實踐中獲得的寶貴經驗,以及交流、協調、激勵的能力,甚至還應具備某種個性魅力或領袖氣質(charisma)。一般來講,技術人員重技術而傾向於忽視"人"的因素,而這正是項目經理管理活動的一個主要方面。項目經理還必須能夠應付開發過程中大量的偶發事件和雜務。

在一個項目中,推動項目技術發展的是系統構架師。在技術方面,項目經理(項目管理師)配合系統構架師並提供各個方面的支持,其主要職責是與內外部溝通和管理資源(包括人),系統構架師則要負責提出系統的總體構架,並給出開發指導。

2.系統構架師與系統分析師的關係及區別

系統分析師(system analyst)是在系統開發中進行業務需求分析、系統需求分析、可行性分析、業務建模和指導項目開發的人。其工作特點是與行業專家、用戶溝通,及時與項目經理(項目管理師)、軟體架構師協商,分析項目具備的特點、成本、風險等,考慮實現的模型。系統分析師所面臨的往往是有許多不確定性的事件,需要對這些不確定的事件進行分析、總結,使之得出一個相對可靠的確定性結論或實施方案模型。一般意義上講,系統分析師的水平將影響系統開發的質量,甚至成敗。在一個完善的系統開發隊伍中,一般應有項目管理師、軟體架構師、系統分析師、軟體設計師、測試工程師、資料庫工程師、程序員和質量保證人員等不同的職位,還需要有業務專家和其他輔助人員。對於大型企業或項目,如果一人承擔多個角色,往往容易發生顧此失彼的現象。

系統分析師對業務系統進行分析、建模,他的任務、目標是明確的。系統架構師協同系統分析師的工作,建議系統分析師按什麼標準,什麼工具,什麼模式,什麼技術去思考系統。同時,系統架構師應該對系統分析師所提出的問題,碰到的難題及時地提出解決的方法。


項目經理=工頭。
其它都是民工。


推薦閱讀:

在遊戲中儲存遊戲進度時一般會儲存哪些信息?以什麼方式存儲?
如何把握中大型軟體開發流程?
純C語言的工作有前(錢)景嗎?
有哪些能規劃旅行路線的 App?
一個人如何開發一款 App?

TAG:程序員 | 軟體開發 | 架構師 | 程序員修養 | Java程序員 |