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