3.4 開發組人員構成
根據軟件開發項目組織的角色劃分,對于中等以下規模的軟件開發項目組基本包括如下幾類人員:
① 產品管理人員:(產品管理與用戶培訓角色)
② 軟件開發人員:(程序管理與開發角色 )
③ 軟件測試人員:(測試角色 )
一般而言,產品管理人員同時擔負用戶培訓的角色。程序管理角色一般由項目經理承擔,而隊后勤支持角色一般由研發部和公司統一承擔,或由公司的信息系統管理人員協助完成。圖6表示項目組的人員結構及承擔的相關工作。
3.5 開發人員技術結構
宏觀上講,軟件開發機構基本可分為二種角色,管理角色和技術角色。不同角色各有其不同的發展方向,如圖7所示。
不論是走技術路線還是管理路線,不存在那種角色地位更高的問題。高級架構設計師與部門經理具有同等的地位與待遇。
4. 軟件開發的階段劃分及目標
軟件開發進行階段劃分主要有以下三方面優點:
1) 有利于軟件質量控制;
2) 便于項目進度控制與管理;
3) 有利于項目成本費用控制;
4.1 軟件開發的階段劃分
雖然軟件開發與工程設計有其相似之處,但由于其所處的領域不同,發展歷史與人文環境也有一定的差別,完全照搬工程設計的管理模式也存在一些弊端。下面國外流行的軟件開發模式與工程設計理論及原始的軟件開發做以簡單比較,見圖8。
原始的軟件開發模式很是簡單,有些項目連需求分析都不完整,軟件測試只是相當于模塊集成一級的測試,沒有規范的軟件測試。軟件質量取決于編程者個人的技術水平,質量無法保證,也很難控制。在滿足用戶需求方面取決于編程者個人的理解,軟件交付后經常發生大面積的修改。項目似乎完成得很快,交付后大面積的修改經常導致延誤工期,修改后的軟件缺乏必要的測試手段,往往導致極大的售后服務支持成本。造成項目表面贏利、實際虧損的局面。
軟件工程理論指導下的軟件開發管理模式也存在一定的問題,那是有些環節的可操作性較差,主要表現在需求分析到總體設計這個環節。需求分析是文檔性的描述,一般是軟件開發人員對用戶需求的一種理解,這種文字描述一般很難精確可視地展現未來軟件的情況,而用戶也很難說清楚自己的需求,這使得用戶很難鑒別需求分析的精確性。往往導致軟件交付后的大量修改。有一篇“Client / Server軟件開發常犯錯誤”的文章說得好,“用戶不知自己需要什么樣的系統,但知道不要什么樣的系統”。