1. 程式人生 > >基於J2EE架構的專案開發團隊中的角色與職責

基於J2EE架構的專案開發團隊中的角色與職責

【宣告】 1、2內容來源:《J2EE Architects Handbook》中文翻譯《J2EE系統架構師參考手冊》[翻譯Mellon]

1、角色

Technical architect                                         技術架構師

Project manager                                            專案經理

Business analyst                                           業務分析師

Layout designer                                            介面佈局設計師

Presentation-tier developer

                             表現層開發者

Business logic developer                                業務邏輯開發者

Data modeler                                                資料建模工程師

Database administrator                                  資料庫管理員

Data migration specialist                                資料遷移專家

Infrastructure specialist

system administrator)       配置專家

Testing specialist                                          測試專家

2、職責

在有的組織中,這些角色有不同的名稱。例如,有些機構中基礎設施專家被叫做系統管理員;一個測試專家被叫做測試員,或者有些機構將測試工作管理者和單獨的測試員區分開來。不管這些角色叫什麼,備齊這些角色會使你的J2EE專案更容易獲得成功。

更進一步,一個人擔任多個角色是可以的,如果專案足夠龐大,多個人分擔一個角色也是允許的。有些組織合併了技術架構師和專案經理的角色。也有些組織讓一個資深開發者同時擔任資料庫管理員或者系統管理員。或者

同一個開發者既忙於表現層工作也忙於商業邏輯層工作。在這裡我不是推薦該如何組織一個開發團隊,而僅僅是想交流一下個合理的J2EE專案團隊中,應該設定哪些職能角色。

技術架構師(Technical Architect)

  ▲ 技術架構師應確定專案需要用到哪些技術

    在許多組織中,一些技術的選擇是企業級行為。例如,許多組織有既定的硬體平臺選擇和軟體平臺選擇(例如,J2EE容器提供商)。通常,選擇什麼程式語言,例如Java,是企業級行為。

    不過,絕大多數應用都有尚未在企業級明確約定或選擇的技術需求。在這裡,我區分了企業行為進行的技術選擇和個人行為進行的技術選擇。例如,決定在伺服器端使用Java作為程式語言可能是企業明確約定過的要求,但是確定用哪個XML解析器,還是可能要由負責該應用的架構師來決定的。許多組織中,進行企業級行為的技術選擇的人員和J2EE開發團隊人員並不是同一批人。技術架構師通常負責選擇用於專案開發的第三方開發包和實用工具,如XML的解析工具包的選用,是否使用HibernateStruts等。

  ▲ 技術架構師推薦開發方式和專案技術框架    

    一般來說,專案架構師向專案經理針對這些提供推薦和建議。例如,技術架構師建議專案經理將所有需求分析結果用UseCase 完整描述,並最好附有原型示例;或者建議設計文件使用物件化描述方式進行文件化等。

  ▲ 技術架構師提供從頭到尾的設計和應用結構  

    不同開發者給專案帶來不同的先入為主的觀念、習慣和選擇。技術架構師扮演樂隊指揮的角色,統一矛盾之處,保證不同開發者的成果能夠很好的融合在一起。也就是維持整個專案的概念完整性和同一性,達到和諧。

  ▲ 技術架構師保證專案被良好的定義  

    專案的分析必須詳細一致,概念統一,能為構建應用提供良好的基礎。技術架構師通常要和專案經理、業務分析員一起合作定義專案。

  ▲ 技術架構師保證應用的設計被適當的文件化  

    在專案團隊的開發者之間建立良好溝通的關鍵步驟是寫好應用的設計文件。寫文件的具體過程強迫架構設計師充分詳細地考慮設計中的問題。形成的文件也可以保證在改變和增加專案團隊成員時,不佔用技術架構師的時間。對於開發者來說,應用設計文件可以使得在技術架構師短時間缺席的情況下,工作能夠繼續良好開展;並且可以在不佔用其它團隊成員時間的情況下,解決應用設計中的衝突或矛盾。文件還可以將人員流動的影響和專案分離開來。

    如果沒有文件支援,專案團隊新增成員,需要技術架構師口頭傳授設計給新人,必須通過口頭交流設計,弱化了新增成員帶來的好處。

  ▲ 技術架構師應該建立編碼規範方針  

    因為不同的開發者有編碼偏好;編碼標準需要頒佈,這樣不同人編寫的程式碼片斷更容易糅合在一起。通常,系統架構師負責建立的編碼規範方針包括下面幾方面的內容:

    Exception handling

    Logging

    Testing

    Threading

▲ 技術架構師為專案經理識別和分解任務  

    在J2EE專案中,這個作用尤為重要,因為J2EE專案往往比一般系統專案牽涉更多的技術層面。另一方面,幫助專案經理做估算和計劃,也需要架構師提供專案主要任務的劃分情況。

    ▲ 技術架構師為困難任務向開發者提供監護    

    如果開發者因困難的任務而放緩進度,通常是技術架構師幫助提供解決方案。技術架構師更多的是提供監護而不是親自操刀去做實現。

    ▲ 技術架構師應貫徹編碼規範的實施    

    作為編碼規範的制定人,技術架構師最可能在編碼規範沒有被遵照時及時發現問題,因此應該擔負貫徹執行編碼規範的任務。專案經理通常關注的是開發任務的完成與否,而不是實現任務的程式碼是否遵照了編碼規範。

    直接稽核程式碼是非常好的手段之一。如果團隊成員稽核程式碼的話,任何開發者都很難繞開團隊開發程式碼規範。

    程式碼稽核機制還是團隊成員互相學習編碼技巧的上好手段。技術架構師在這個過程中發現設計缺陷和漏洞,所有參與者從其餘的團隊成員學習編碼手段和技巧。團隊中最富經驗的和架構師幫助和指導程式碼稽核。為取得最好效果,程式碼稽核應該在和諧友好的氣氛中進行。

    ▲ 系統架構師應該為專案經理在專案估算方面提供的幫助    

    雖然專案成本和收益的估算通常是專案經理的職責,但是許多專案經理在J2EE技術體系方面經驗不多,無法覺察到專案中所有應該做到的事情。

    ▲ 系統架構師應該在如何確定開發者定位方面向管理者提供幫助    

    雖然人員使用和任免通常是管理範疇的事情,但技術架構師更能適合評價技術水平和價值。不正確的人員任用會對專案時間線造成相當大的損害。

專案經理(Project Manager

    專案經理負責協調安排專案開發團隊的所有任務。專案經理還要針對當前專案的事務和狀態向管理層和終端使用者代表做好溝通。甚至,專案經理還需要收集專案或專案團隊所需的各種資源。技術架構師負責向專案經理提供技術方面的建議和指導。技術架構師還協助專案經理明晰必須完成的專案任務分工和和必須遵照的任務次序;以及幫助專案經理對專案所需資源和條件進行識別,包括專案團隊成員的選擇,從技術角度確認他們的技能是否適合。

業務分析師(Business Analyst

    業務分析師負責面向終端使用者,定義應用的需求-設計和建立應用所需要的需求細節。因為終端使用者和開發者通常使用不同的術語,業務分析師還需要承擔終端使用者和開發者之間的翻譯轉換工作。通常一個業務分析師應該應該具有使用者端的經驗和開發者的經驗。

    隨著專案程序不斷向前,業務分析師的任務和角色功能逐漸弱化,但是並沒有消失。開發者通常會在程式碼實現逐漸明朗,測試活動逐步開展的過程中附帶提出一些細化的業務邏輯問題。業務分析師需要針對這些問題向用戶方面尋求答案。

    技術架構師負責確認業務分析師定義的應用需求是適當的,滿足開發和設計需要的。期望百分百的分析都能完成且正確,是沒有道理的。畢竟,分析工作本身在一些程度上就是主觀的東西。但是,分析的結果起碼足夠保證設計階段的工作能夠順利進行。

介面佈局設計師(Layout Designer

    許多應用,尤其是那些非常大眾化的應用,需要專業的美工和佈局設計。絕大部分技術架構師,通過他們自己的手段能夠產生功能性Web頁面,但那些頁面通常醜陋且難於使用。圖形介面設計,是技術更是藝術。通常,介面佈局設計師主要和業務分析師以及其它的業務方面的代表們一起工作,作出相應的設計。但介面佈局設計師也可一和表現層開發者一起創作系統原型。

    技術架構師需要負責確認介面設計在技術上的可行性。我見過許多Web 頁面的設計眾,使用了一些在word中才允許的特效,但這些HTML是不支援的;例如:使用旋轉90度的文字。技術架構師應該儘可能早地糾正這些錯誤。

表現層開發者(Presentation-Tier Developer

    表現層開發者,負責為整個應用編寫所有與HTML, Javascript, JSPs, Applet/Swing code, Servlets 等相關的程式碼。一般來說,任何直接產生使用者介面的程式,都是表現層開發者們的職責範圍。表現層開發者常常和介面佈局設計者合作,由表現層開發者建立原型和最終實現。表現層開發者還與架構師一起確定前端結構和業務導航設計。

    技術架構師負責保證所用的設計模式是可維護的,可擴充套件的。導航問題通常是複雜的容易導致產生難維護的程式碼。架構師處在很好的位置上,去發現和糾正可維護性問題,以及凸現出的其它方面的技術問題。

業務邏輯開發者(Business Logic Developer

    業務邏輯開發者負責編寫應用中所有不可見部分的程式碼:包括Enterprise beanWeb servicesRMI servicesCORBA services,業務物件(business objects,以及資料存取物件(data access objects).也有人把這些不可見部分稱為應用的伺服器端元件。業務邏輯開發者通常是Java專家,與架構師合作緊密,並且還在需要的時候做效能調整方面的輔助工作。技術架構師給業務邏輯開發者提供指導。通常,技術問題都出現在伺服器端元件,畢竟伺服器端元件是應用中最複雜的部分。因此,技術架構師常要監督業務邏輯開發者的工作。

資料建模工程師(Data Modeler)    

    資料建模工程師根據業務邏輯分析的資訊,對應用中所有需要儲存到資料庫的資料進行識別、定義和編目(catalog)。資料建模通常需要將應用的資料用實體聯絡圖(ER diagrams)描述出來。DBA根據實體聯絡圖生成資料庫的物理設計。因此,資料建模工程師和DBA常常是同一個傢伙。

    技術架構師需要負責確認資料建模是適當的。和業務邏輯分析工作一樣,期望資料建模工作100%正確是無理的。不過,如果資料模型基本上遵照第三正規化完成的話,未來的建模的變化和資料庫的變化就會很小了。

資料庫管理員(Database Administrator

    資料庫管理員負責遵照應用的業務需求設計資料庫,並搭建和維護應用所需的資料庫和環境。通常,資料庫管理員要輔助效能調優,還要幫助業務邏輯開發者診斷應用開發中在資料存取上出現的問題。有時候,資料管理員既是業務邏輯開發者,還充當資料遷移專家。

    技術架構師和資料庫管理員一起解決有關資料儲存的問題。不過,通常情況資料庫管理員還是首先和資料建模工程師以及業務邏輯開發者溝通解決問題。

資料遷移專家(Data Migration Specialist)    

    有些應用,例如哪些涉及到資料倉庫的應用,很大程度依賴與從其它來源做資料遷移工作。資料遷移專家書寫並管理所有指令碼和程式,保證在執行中,將應用所需的資料轉移出來。如果一個應用少有或沒有資料遷移工作,則這個角色就沒有,或者由資料庫管理員一併充當了。

    系統架構師為資料遷移專家定義資料遷移需求。和資料遷移專家一起解決資料遷移中的問題,則是技術架構師的另一個角色。

配置專家(Infrastructure Specialist

    基礎結構專家負責提供全部研發、測試、生產環境和部署方法。正規的研發和部署配置,能節省時間和精力。職責在於容器管理,書寫部署指令碼,輔助開發者們診斷測試環境的問題。

    架構師定義配置需求給配置專家。架構師和配置專家一起決定所需環境的數量、特點以及每個環境所需的支援等級。許多專案至少需要一個開發環境、一個測試環境和一個生產環境。有些組織中將配置專家的角色和技術架構師的角色合而為一。

測試專家(Testing Specialist

    一個測試專家通常是面向細節的,測試專家負責確認軟體產品符合規範,並發現那些不該被漏過的bug。一般而言,測試專家至少需要具有軟體產品所涉及業務的基礎知識。

    技術結構師需要和測試人員一起明確配置需求和所需的支援。專案經理和業務邏輯分析師通常需要建立測試計劃文件和測試方法。因此,架構師在測試工作方面,通常是提供一些必要的支援。

3、國內站點關於相關崗位的招聘要求

架構師

工作職責:

1、負責基於j2ee架構的軟體系統架構分析、設計及原型實現,指導技術團隊完成產品研發;2、參與制定設計及實現規範,指導設計、實現及部署工作;

3、配合專案經理進行技術決策,進行技術風險評估;

4、協助、指導工程師解決關鍵問題;

5、設計開發關鍵性功能模組。

任職資格:

計算機及其相關專業,本科及以上學歷;

25年以上工作經驗,3年以上j2ee應用開發經驗,2年以上產品設計、架構經驗;

精通j2ee系統架構,深刻理解j2ee架構的優缺點,具有大型基於j2ee體系結構的專案規劃、系統架構設計、開發經驗,精通j2ee設計模式;

深刻理解軟體系統架構,精通面向物件分析設計方法,邏輯能力佳,具有豐富的ooaoodoop以及uml建模經驗;

熟悉rationalrosepowerdesigner等系統分析設計工具;

精通websphere/weblogic/jboss/tomcat等主流j2ee應用伺服器;熟悉hibernate,struts,spring框架設計者優先;

熟悉oracle/sqlserver/mysql等主流資料庫管理系統、相關技術及工具;

熟悉unix作業系統及相關技術;

擅長技術文件的書寫;

具金融軟體行業、銀行內部工作經驗者、有銀行系統開發實施經驗者優先;

11、具備良好的表達和溝通能力,具備極強的團隊精神和合作精神,對工作有熱情,能夠在一定壓力下工作。

職位描述

1、負責J2EE系統(電子政務方向)的架構設計,框架選擇,模組設計,並解決主要技術問題 

2、負責專案團隊的日常管理

職位要求

1、通訊或電子類相關專業本科以上學歷 

25J2EE系統開發經驗 

3、熟悉StructsSpringHibernateAjaxWeblogic

4、負責過電子政務系統的架構分析與設計 

5、有過團隊管理經驗 

6、英語良好,能夠口語交流 

【必需條件】

15年以上工作經驗,擁有開發3個以上大型J2EE專案開發的經驗

2)精通Java, XML, WebService的開發

3)精通J2EE 技術規範框架,熟悉Struts, hibernate, Spring等輕量級開源框架

4)精通websphere or weblogicJ2ee伺服器的的應用和開發

5)精通Unix/Linux系統,精通db2等常用資料庫

6)擁有良好的溝通能力和團隊合作能力。

【優先條件】

1)熟悉liunx c gcc編譯器

2)有金融行業或者較大專案設計開發經驗

專案經理:

任職要求:

1、全日制統招本科或以上學歷;

2、熟練使用java語言,熟悉JSPJAVABEANSERVLETXMLstrutshibernate等技術;

3、兩年以上基於oracleSqlserver等主流資料庫的專案開發經驗;

4、非計算機專業畢業人員要求有計算機軟體相關職業認證證書;

5、承擔過軟體開發專案的技術負責人優先錄用;

6、從事過ERP/CRM實際專案開發者優先;

7、從事過通訊行業應用軟體開發者優先;

8、熟悉C/C++語言者優先。

職責範圍:

1、軟體開發專案經理/高階軟體工程師:

帶領軟體開發專案小組完成開發工作。

2、軟體工程師:

負責公司軟體產品的設計及開發工作。

職位描述  

要求:

1、具有三年以上Java專案開發經驗;

2、至少有一個以上專案管理經驗或擔任過大型專案開發組長;

3、具有專案產品開發工作經驗者優先;

4、熟悉Hibernate/sping/stuts/webwork/ajax等主流技術;

5、有責任心和敬業精神; 

業務分析師

職位要求

負責系統的業務調研和需求的整理

要求:

具有多年的需求分析工作經歷

具有良好的交流能力

熟悉保險業務者優先考慮

能夠使用OO思想進行需求調研和分析工作

熟悉常用的建模工具,如Rose, Together, Visio等 

介面設計開發者

職位要求

崗位職責:

1、歸納公司產品UI需求,制定公司產品介面規範;

2、參與新產品開發,對介面進行整體規劃,負責DEMO的製作,負責產品介面的設計和製作;

3、整理現有產品,對介面進行重新規劃,製作介面模板;

4、為相關技術人員提供介面設計和製作方面的培訓和諮詢。

任職要求:

1、具備良好的美工基礎和實踐經驗;有較強的審美觀和美術設計功底,善於色彩搭配。 

2、精通HTMLXHTMLCSS頁面設計方式;

3、熟悉DIVXMLXSLT頁面佈局方式;

4、瞭解網站及軟體產品技術結構;

5、熟練使用Dreamweaver, Photoshop, Falsh, CorelDRW, FireworksIllustrator等工具;

6、熟悉行業應用軟體的介面需求,包括c/s,b/s架構的軟體介面佈局者優先;

展示層開發者

人員要求: 

1、本科以上學歷,電腦科學與技術專業,有2

相關推薦

基於J2EE架構專案開發團隊角色職責

【宣告】 1、2內容來源:《J2EE Architects Handbook》中文翻譯《J2EE系統架構師參考手冊》[翻譯Mellon] 1、角色 Technical architect                                       

基於vue框架專案開發過程遇到的問題總結(一)

(一)關於computed修改data裡變數的值 問題:computed裡是不能直接修改data裡變數的值,否則在git commit 時會報錯 解決:在computed裡使用get和set來進行獲取和修改data變數,(參考下圖) (二)computed裡監聽陣列

一個成功的分析團隊角色職責

多年以來我和數百家企業打過交道,在這個過程中,我領悟了讓資料分析專案成功的一些因素,也親眼看著很多專案失敗。 最常見的失敗原因說出來可能會讓你驚訝。並非是缺乏資料專業知識或者整合失誤,而僅僅是因為企業沒有讓“利用資料”成為任何人員的職責。太多公司花費好幾個月收集有趣的資料,然後讓它們靜靜地躺在角落裡積攢

企業專案開發--企業專案架構以及多環境分配(2)

此文已由作者趙計剛授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 2.2.2、ssmm0-data pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht

敏捷開發團隊PO和SM角色介紹

敏捷開發中的PO即Product Owner,字面意思是產品或業務負責人,即熟悉該產品所有業務相關的邏輯、流程、設定等方面事宜的人員,一般可由產品經理擔任,也可由熟悉業務的開發人員擔任。如果敏捷團隊是在一起辦公的(指一個辦公室內坐在一起的),建議由產品經理擔任,本身產品經理

前端爬坑日記(1),你在初入vue專案開發過程可能會掉進的坑!

這篇文章是記錄我在vue專案開發中遇到的各種巨坑,希望看了能對你有一些幫助,這篇文章會長期更新 1.Vue中使用sass 首先通過以下程式碼安裝sass的依賴: npm i sass-loader node-sass - s 然後在webepack.base.conf.js目錄下配置

還在尋找基於J2EE的網站開發設計定做?找我們

基於SSM JSP設計 網上購物管理系統 基於SSM android設計 律師事務所管理系統 基於SSM ssh設計 訂單管理系統 基於SSM ssh設計 拼車管理系統 基於SSM ssh設計 學生檔案管理系統 基於SSM ssh設計 輔導員考評管理系統 基於SSM ssh設計 網路任務管理系統基於SSM s

專案開發過程什麼是開發環境、測試環境、生產環境、UAT環境、模擬環境?

專案開發過程中什麼是開發環境、測試環境、生產環境、UAT環境、模擬環境? 最近在公司專案開發過程中總用到測試環境,生產環境和UAT環境等,然而我對環境什麼的並不是很理解它的意思,一直處於開發階段,出於好奇,本人蒐集了自己所瞭解的一些知識分享給各位,如果有不齊全的地方,請在評論下方留言! 一

Unity專案開發過程常見的問題,你遇到過嗎?

最近看到有朋友問一個unity遊戲開發團隊,需要掌握哪些知識之類的問題。事實上Unity引擎是一個很靈活的引擎,根據團隊開發遊戲型別的不同,對人員的要求也有差異,所以不能一概而論。但是,一些在Unity專案開發過程中常常會遇到的問題還是可以總結一下的。 下面我就來聊聊實際工作中,一個專案組可能會遇到的問題吧

【C語言】實際專案開發過程常用C語言函式的9大用法

C語言是當中最廣泛的計算機程式語言,是所有計算機程式語言的祖先,其他計算機程式語言包括當前流行的Java語言,都是用C語言實現的,C語言是程式設計效率最高的計算機語言,既能完成上層應用開發,也能完成底層硬體驅動程式設計,在計算機程式設計當中,特別是在底層硬體驅動開發當中,具有不可替代的作用。

學習TP5(前提篇):基於PHP的專案開發環境搭建

前言 之前我寫一個TP5框架快速上手的文章,如果你想快速上手TP5框架的話,可以看一下。這篇來聊一聊用TP5框架或者說用PHP來寫後端專案需要在部署哪些環境,還要需要準備哪些軟體。(方法不唯一) 需

如何對待開發團隊那個拖後腿的人?

每個開發團隊中總有一個人是最差的,老跟不上整體水平。據我觀察,隊友們對待這個差生的態度是團隊健康狀況的重要標誌。(注:原文用“貝爾曲線(bell curve)”,也就是“正態分佈”來衡量團隊的整體水平分佈,這裡意譯成“整體水平”。) 我運氣一直不錯,在過去的幾十年裡,幹過各種的行業和職業,在不少團隊

基於dubbo的專案開發

dubbo是什麼: dubbo是一個阿里巴巴開發的開源分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,是阿里巴巴集團的各成員站點的核心框架,每天為2,000+個服務提供3,000,000,000+次訪問量支援。dubbo是對一個系統中應用層上的優化,後面我

年度鉅獻-WPF專案開發過程WPF小知識點彙總(原創+摘抄)

用了三年多的WPF,開發了很多個WPF的專案,就我自己的經驗,談一談如何學好WPF,當然,拋磚引玉,如果您有什麼建議也希望不吝賜教。 WPF,全名是Windows Presentation Foundation,是微軟在.net3.0 WinFX中提出的。WPF是對Direct3D的託管封裝,它

軟體專案開發過程主要遇到的核心問題小結

1、軟體專案開發合同的訂立,合同需要對將來幾個月甚至幾年需要做的事情有個明確的定義說明,限定好工作範圍、工作內容、承擔的責任、專案總費用,每個階段支付的費用都需要有明確的說明甚至付款條件等都需要一清二楚,很多東西都沒講明白是將來合作不愉快的導火索,這些都需要白紙黑字寫清楚

mpvue+vant weapp專案開發過程遇到的問題(未完待續)

一、元件上bind:方法名=“方法”,找不到方法 報錯圖: 百度到的:都說methods不可用,可以用computed代替,但是我用了computed,裡面的方法全都在頁面載入時做完了。。。還操作毛線。。。 解決辦法:誤打誤撞用methods可以了。把元件上的bind:方法名=

如何評價個人在軟體開發團隊的績效

我認為一個有效評價手段應該達到以下目的: 1、 對團隊:讓整個團隊進入愉快高效工作狀態 2、 對“高手”:獎勵幹活多幹活好的人 3、 對“低手”:從制度上杜絕磨洋工的現象 4、 對“中手”:提供工作認真但是水平有待提高的成員生存成長空間 一個團隊,總是有著各種各樣的人,每個

Docker在PHP專案開發環境的應用

環境部署是所有團隊都必須面對的問題,隨著系統越來越大,依賴的服務也越來越多,比如我們目前的一個專案就會用到: Web伺服器:NginxWeb程式:PHP + Node資料庫:MySQL搜尋引擎:ElasticSearch佇列服務:Gearman快取服務:Redi

android專案開發過程的本地快取總結

在現在很多的開發中,開發一個app快取和網路儲存搭配起來使用往往是必須的,自己寫過比較多的專案所有談談感想。 快取作用: 所謂的快取機制就是資料獲取方式的變化,app的快取通常就是把使用者經常需要從網路上載入並且變化不是事實的資料進行本地的儲存,這樣可以減少使用者流量的使用

專案開發過程的細節問題及解決方法(Vue,Css)(入門級)

Vue開發填坑 方法methods通用 問題描述: vue開發過程中很多時候,函式方法methods會在各個元件內共用,每個元件都寫個比較多餘。 解決方法: 1.利用CommonJS思想,單獨寫,然後每個元件利用import { function