隨著現代軟件技術的發展,一個項目成功與否的關鍵不再是軟件代碼的編寫,而是軟件開發的管理。項目管理是軟件工程中重要的一環。軟件項目管理的主要目標是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,保證質量、時間和成本三者的平衡。
在軟件項目管理過程中,我們的資源有時會因為多個部門或小組同時調用同一個或多個資源而發生沖突。解決沖突的普遍的方法是資源分層次法,即處于沖突中的作業后延,延遲時間以可以得到所需資源的時間為準。各個后延作業的延遲程度和延遲順序依據這些作業的優先權而確定,在高優先權作業啟動之前先把資源分配給低優先權作業,一旦高優先權作業啟動,立即把資源轉移過去,直到高優先權作業完成后,再把資源轉移回來。高優先權作業一般為關鍵作業,它的延遲會影響整個項目的順利進行。
在計劃階段:用戶需要用圖形用戶接口(GUI)技術,他們都具備以圖形形式生成項目計劃的能力,這在很大范圍內支持項目經理的項目計劃制定活動。
在開發階段:交互式導游工具從基本特性開始,引導用戶以較少的時間覆蓋大量專題,逐漸掌握復雜工具的復雜特性;而在線幫助工具也具備支持用戶學習和使用的能力;專用化工具,可使每個項目所要求的報告格式、內容和頻度更加標準,還可以有選擇地執行特定的功能。軟件開發的中間結果主要是文檔,70%~80%的軟件開發工作量是文檔,而不是代碼。
在測試階段:要統一測試手段、方法,進行測試跟蹤。
軟件質量管理的內容包括:軟件質量分析、測試和軟件質量改進。其基本模型見圖1。
圖1 軟件質量管理的循環操作步驟
1.軟件質量分析。首先是定量分析,可以采用下列指標來進行定量分析。如未解決的軟件缺陷的數目,軟件在完成某一任務時所花的時間,軟件通過的測試案例數,軟件未通過的測試案例數。其次是定性分析,可以采用直觀性、一致性、效率、耐久性、體貼程度等指標來分析。
2 .軟件測試。軟件測試是質量保證的重要環節, 是提高質量的重要手段。所謂測試是用已知的輸入在已知環境中動態地執行系統(或系統的部件),包括:測試要求,測試類型,測試配置,輸入,期望的結果,測試案例,測試腳本等。
3.軟件質量的改進。軟件質量改進可以從幾個方面進行:改進以預防為主、 質量改進管理人員的組織、制定軟件質量改進報告、執行質量提高計劃。
風險因素是指增加、減少損失或損害發生頻率和大小的主、客觀條件,包括轉化條件和觸發條件。對不確定要素造成的損失進行預測,并根據預測的結果選擇合適的管理方法和技術方法降低不確定帶來的損失,被稱為風險管理。
風險的防范措施:(1)樹立“安全第一”的指導思想;(2)建立全面風險管理體系;(3)風險管理的制度化、流程化和標準化;(4)建立信息披露和交流溝通制度;(5)關注技術風險的事前控制;(6)做好技術風險的識別、衡量和跟蹤管理;(7)加強軟件項目管理和軟件測試;(8)組織有針對性的培訓和印制簡單實用的教材。
軟件項目管理集中反映在項目的成本、質量和進度三個方面,而進度控制是軟件項目能否保質保量順利完成的關鍵。
一是影響軟件項目進度的因素。(1)過程控制:在項目執行過程中要注意對變更的控制,特別是要確保在細化過程中盡量不要改變工作范圍。此環節需要注意四個重要控制點:授權、審核、評估和確認;在實施過程中要進行跟蹤和驗證,確保變更被正確執行。(2)客戶風險:客戶風險存在于客戶化項目中,客戶行業的特點不盡相同。因此,技術、理解水平也相差甚遠。(3)技術與工具:開發平臺必須適合本項目所涉及的軟件開發、滿足終的需求,平臺的錯誤選擇將導致龐大的開發工作量,即便滿足了用戶需求也可能造成系統效率低下、擴展性差的致命問題,軟件可能會很快被淘汰。(4)人員:人員素質和人員激勵。
二是進度控制。進度控制是比較實際狀態和計劃之間的差異,并做出必要的調整使項目向有利的方向發展。進度控制可以分成四個步驟:計劃,執行,檢查和行動。
計劃階段的進度管理包括:(1)項目進度計劃;(2)里程碑設置;(3)需求的變更控制。因為軟件開發項目的不確定性,項目監控顯得非常重要,項目應該在檢查點進行檢查,比較實際和計劃的差異并進行調整;通過設定里程碑漸近目標、增強控制、降低風險;而基線是重要的里程碑,交付物應通過評審并開始受控。定期監控進展,分析項目偏差,采取必要措施以實現目標。當進度出現偏差時,需要分析這種偏差對后續工序產生的影響,偏差的大小以及偏差所處的位置。