軟件開發的組織和角色分工

隨着軟件規模的不斷膨脹和軟件開發技術的發展,軟件開發的分工和組織也變得越來越複雜,如何合理的組織和分工越來越成爲能否成功開發的一個決定性因素。

對一個軟件產品或者一項軟件工程來說,參與角色通常包括如下幾種:

l高級經理

l產品經理或項目經理

l開發經理

l設計師

l測試經理

l開發人員

l測試人員

l項目實施人員

高級經理具體參與項目或產品的時間並不多,但對項目的成敗卻起到了至關重要的作用。通常高級經理參與項目過程中各個關鍵環節的活動,關注產品開發的進度,對風險控制、資源提供做出決策。

產品經理(項目經理)作爲客戶方和公司內部交流的紐帶,對項目過程進行監控,對項目的進度、質量負責。產品經理應該是軟件工程領域內的專家,但不一定是業務領域內的專家。產品經理的基本活動包括:制定計劃、協調資源、關注和控制計劃進度、控制客戶期望值。其中控制客戶期望值這一項在工程性質的項目中尤其重要。

開發經理是具體開發過程的領導者,必需由熟悉業務和開發技術的專家擔任。開發經理的職責是界定需求,確定適當的技術構架和體系,保證軟件產品按照設計的標準開發。

設計師是軟件藍圖的設計者。通常設計師可以分需求分析師、構架設計師、業務設計師三種,在小規模的開發團隊中,這三個角色通常由一個人承擔。設計師一定是業務領域和技術領域內公認的專家,具有豐富的項目經驗,能夠準確把握客戶需求並提供可行的實現思路。設計師的基本活動包括:進行需求分析、進行構架設計和功能設計,按照規範編寫相應的文檔,將設計思路傳播給開發人員、測試人員。

測試經理是測試活動的領導者,是公司內部認定的產品質量責任人(項目經理是對外的軟件質量責任人)。測試經理的責任是計劃和組織測試人員對目標產品進行測試,發現bug、跟蹤bug直到解決bug;計劃和組織用戶培訓工作。

產品經理、開發經理、設計師、測試經理作爲一個項目的高層,對項目的成敗起關鍵作用。

開發人員根據設計師的設計成果進行具體編碼工作,對自己的代碼進行基本的單元測試。通常34個開發人員組成一個開發小組,由一個team leader帶領進行開發活動。開發小組team leader由小組內技術和業務比較好的成員擔任。team leader通常還負有進行詳細設計和走查小組成員代碼的職責。考慮到team leader需要進行詳細設計、編寫文檔,和小組成員進行溝通,因此一個team leader的開發任務不能超過開發人員的平均任務量。對開發人員而言,必需具備產品開發所需要基本技術、技能,比如編程語音、數據庫應用開發經驗等。如果發現開發人員不完全具備這些技能,開發經理和項目經理應該提供必要的內部或外部、培訓,以使開發人員具備這些必要的技能。

測試人員根據測試經理的計劃和測試總體方案對目標產品進行測試,編寫測試case和測試代碼,發現和跟蹤bug;編寫用戶手冊;進行用戶培訓和教育。測試人員介入項目的時機從理論上講越早越好,但考慮到測試人力資源,通常在需求分析確定後介入比較合適。對測試人員而言,除了要求和開發人員相同的技術技能外,還應該熟悉測試理論和測試方法,儘可能做到總是站在使用者的角度觀察和思考問題。

項目實施人員是針對工程性質的項目必需的人員配置。項目實施人員負責軟件系統安裝配置、系統割接、運行期間的維護工作。

項目開始前,項目成員必需明確自己所在的崗位和需要承擔的責任。

項目組織的過程中,必需遵循的一個原則是項目組儘量小型化、靈敏化,保證溝通順暢和高效,通常一個小型項目組的成員不超過20人。對大型項目,應該進行更詳細、精確的拆分,保證一個項目經理管轄的成員不超過20人。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章