軟件開發人員構成
隨著軟件規模的不斷膨脹和軟件開發技術的發展,軟件開發的分工和組織也變得越來越復雜,如何合理的組織和分工越來越成為能否成功開發的一個決定性因素。 對一個軟件產品或者一項軟件工程來說,參與角色通常包括如下幾種:
# 高級經理
# 高級經理
#產品經理或項目經理
#開發經理
#設計師
#測試經理
#開發人員
#測試人員
#項目實施人員
#開發經理
#設計師
#測試經理
#開發人員
#測試人員
#項目實施人員
#高級經理具體參與項目或產品的時間并不多,但對項目的成敗卻起到了至關重要的作用。通常高級經理參與項目過程中各個關鍵環節的活動,關注產品開發的進度,對風險控制、資源提供做出決策。
產品經理(項目經理)作為客戶方和公司內部交流的紐帶,對項目過程進行監控,對項目的進度、質量負責。產品經理應該是軟件工程領域內的專家,但不一定是業務領域內的專家。產品經理的基本活動包括:制定計劃、協調資源、關注和控制計劃進度、控制客戶期望值。其中控制客戶期望值這一項在工程性質的項目中尤其重要。
#開發經理是具體開發過程的領導者,必需由熟悉業務和開發技術的專家擔任。開發經理的職責是界定需求,確定適當的技術構架和體系,保證軟件產品按照設計的標準開發。
設計師是軟件藍圖的設計者。通常設計師可以分需求分析師、構架設計師、業務設計師三種,在小規模的開發團隊中,這三個角色通常由一個人承擔。設計師一定是業務領域和技術領域內公認的專家,具有豐富的項目經驗,能夠準確把握客戶需求并提供可行的實現思路。設計師的基本活動包括:進行需求分析、進行構架設計和功能設計,按照規范編寫相應的文檔,將設計思路傳播給開發人員、測試人員。
#測試經理是測試活動的領導者,是公司內部認定的產品質量責任人(項目經理是對外的軟件質量責任人)。測試經理的責任是計劃和組織測試人員對目標產品進行測試,發現bug、跟蹤bug直到解決bug;計劃和組織用戶培訓工作。
產品經理、開發經理、設計師、測試經理作為一個項目的高層,對項目的成敗起關鍵作用。
#開發人員根據設計師的設計成果進行具體編碼工作,對自己的代碼進行基本的單元測試。通常3~4個開發人員組成一個開發小組,由一個team leader帶領進行開發活動。開發小組team leader由小組內技術和業務比較好的成員擔任。team leader通常還負有進行詳細設計和走查小組成員代碼的職責。考慮到team leader需要進行詳細設計、編寫文檔,和小組成員進行溝通,因此一個team leader的開發任務不能超過開發人員的平均任務量。對開發人員而言,必需具備產品開發所需要基本技術、技能,比如編程語音、數據庫應用開發經驗等。如果發現開發人員不完全具備這些技能,開發經理和項目經理應該提供必要的內部或外部、培訓,以使開發人員具備這些必要的技能。
#測試人員根據測試經理的計劃和測試總體方案對目標產品進行測試,編寫測試case和測試代碼,發現和跟蹤bug;編寫用戶手冊;進行用戶培訓和教育。測試人員介入項目的時機從理論上講越早越好,但考慮到測試人力資源,通常在需求分析確定后介入比較合適。對測試人員而言,除了要求和開發人員相同的技術技能外,還應該熟悉測試理論和測試方法,盡可能做到總是站在使用者的角度觀察和思考問題。
#項目實施人員是針對工程性質的項目必需的人員配置。項目實施人員負責軟件系統安裝配置、系統割接、運行期間的維護工作。