軟體專案管理流程分析與設計
長期以來,軟體專案高失敗率的狀況一直困擾著人們,研究表明,軟體專案失敗的原因主要有兩個:一是應用專案的複雜性;二是缺乏合格的軟體專案管理人才。實踐證明缺乏有效的專案管理是導致軟體專案失控的直接原因。軟體開發的風險之所以大,是由於軟體過程能力低,其中最關鍵的問題在於軟體開發組織不能很好地管理其軟體過程,從而使一些好的開發方法和技術不能起到預期的作用。
流程管理作為現代企業管理的先進思想和有效工具,隨著市場環境與組織模式的變化,在以計算機網路為基礎的現代社會資訊化背景下越發顯示出其威力和效用。流程管理不僅是一種管理技術,更體現了現代管理的思想。流程管理的重點是:理清和管理好所有主、支流程間的關係,使他們相互協調發揮應有的作用。流程管理增加了部門的透明度,管理的物件不是“部門”和“部門員工”的概念,而是以工序流程為管理物件,注重流程中每一個過程和效率以及和上下游工序的關係,管理重點在於整體流程的完整性和順暢性。
運用流程管理方法和技術進行軟體專案管理,可以有效地改變軟體過程管理混亂的局面。首先對軟體專案開發過程進行有效的、規範化的定義;其次,在軟體專案開發過程中,所有的活動過程均按照流程所規定的活動的邏輯關係、活動的實現方式來執行,這樣可以使得所有的活動有序和可控;第三,通過明確運作流程,使專案組人員迅速融入專案和開發過程中;第四,關注每個過程的“結果”,使軟體專案的所有工作產品均能得到有效的儲存,保證了軟體產品完整性。
2 流程的概念及在軟體專案管理中的作用
流程是由活動組成的。基本活動是由個人或團體來完成的,它不需要進行其他的基本活動的轉化。流程的各個活動之間有著特定的流向,它包含著明確的起始活動與終止活動,因此是一個動態的概念。從結構上來看,流程有四個基本的構成因素:活動、活動的邏輯關係、活動的實現方式和活動的承擔者。流程與“一系列的活動或事件”、“結果”等概念密切相關。流程管理不僅是一種管理技術,更體現了現代管理的思想,原有的以控制、塔式組織為基礎的職能行政管理已經不能完全滿足於現代企業發展和市場競爭的需要,管理的發展沿著分工理論執行了上百年後,現在又重新迴歸到整合與系統。
軟體專案生命週期的一系列的開發過程是各種各樣的流程活動。軟體專案的計劃編制、系統分析、概要設計、詳細設計、程式編碼、測試與維護等活動過程都是一種流程活動。制定軟體專案管理流程,重點考慮以下幾點:
1)制定的流程能引導專案逐步走向成功;
2)制定的流程能適用軟體開發過程;
3)制定的流程能指導專案開發活動,有利於對專案開發活動的管理;
4)制定的流程能以直觀的流程圖表示,能使專案組成員清楚的知道軟體開發與管理的過程和相互間的關係;
5)流程中的起始活動條件、終止活動條件明確、規範,便於控制;
6)流程中的工作產品定義明確、可度量,評價標準和方法具體、可操作。
3 軟體專案管理總體流程設計
在軟體專案開發管理過程中,不僅要努力實現專案的範圍、時間、成本和質量等目標,還必須協調整個專案過程,以滿足專案參與者及其他利益相關者的需要和期望;隨著軟體規模和所涉及的領域不斷地擴大,軟體專案的管理越來越困難。縱觀所有失敗的軟體專案,基本原因是不能管理其軟體過程,在無紀律的、混亂的專案狀態下,組織不可能從較好的方法和工具中獲益。嚴謹的軟體過程控制與管理不僅可以在每個階段回顧和糾正專案的偏差,識別軟體專案的風險甚至果斷中止專案,而且可以將人才流動所帶來的不利影響減少到最小。要進行有效的過程控制,必須明確軟體專案管理流程。
軟體專案管理總體流程設計為專案搜尋、立項、售前、合同生成和合同執行等5個主要階段,分別以P1、P2、P3、P4、P5表示;同時設計了立項完成、合同簽定、功能定義、軟體開發、專案驗收等5個里程碑,分別以TM1、TM2、TM3、TM4、TM5表示,如圖1所示。在這些流程中,合同執行流程是軟體專案管理的核心,其主要過程有:產品定義、軟體開發、測試執行、內部驗收、專案實施與驗收、專案維護。
4.5.1軟體開發
軟體開發階段分為:需求調研、系統分析、系統設計、編碼、單元測試等過程。主要從三個方面進行管理:
1) 制定專案計劃。軟體專案計劃是一個用來協調所有其他計劃,以指導專案執行和控制的可操作檔案。它體現了對客戶需求的理解,是開展專案活動的基礎,也是軟體專案跟蹤與監控的依據。
2) 確定開發過程。根據軟體專案和專案組的實際情況,建立起一個穩定、可控的軟體開發過程模型,並按照該過程來進行軟體開發。
3) 加強過程控制。過程控制主要包括過程管理、變更控制和配置管理。
4.5.2測試與執行
專案測試的目的是檢查系統是否符合專案合同與任務書規定的要求。專案測試分整合測試和系統測試,主要進行功能測試、健壯性測試、效能—效率測試、使用者介面測試、安全性測試、壓力測試、可靠性測試、安裝/反安裝測試等。測試過程在模擬執行環境中進行。
4.5.3內部驗收
專案完成整合測試和系統測試後進行專案內部驗收,主要有三個步驟:1)文件準備。專案經理提交內部驗收計劃、專案開發總結報告、產品釋出清單;財務主管提交專案財務預算報告。2)內部驗收測試。內部驗收測試的測試內容與方法雖然與系統測試基本相同,但應站在使用者驗收的角度進行,因為它是試執行的基礎,通過這一步,為使用者驗收作充分的準備。3)內部評審。對提交的所有文件及測試結果進行內部評審,完成專案開發總結報告。
4.5.4專案試執行與驗收
試執行與使用者驗收階段的主要任務是,使所有的工作產品得到使用者的確認。主要工作有:1) 驗收前的準備。專案經理負責檢查產品的完整性,包括文件、介質和中間產品等,以確保現場實施的成功;負責應用軟體的現場安裝除錯,完成安裝除錯總結報告;負責制定使用者驗收計劃,並得到客戶的確認。2) 使用者進行驗收測試和系統試執行,進行文件和系統的移交。3) 使用者確認。專案經理負責與客戶協調,協助使用者進行專案驗收,形成使用者驗收報告。
4.5.5專案維護
軟體系統的維護分為兩大類:一類是糾錯性維護,由於前期的測試不可能暴露軟體系統中所有潛在的和隱含的錯誤,診斷和改正這些錯誤的過程為糾錯性維護。另一類是完善性維護,在軟體正常使用過程中,使用者還會不斷地提出新的需求,為了滿足使用者新的需求而增加軟體功能的活動稱為完善性維護。如果需求變更很大,那完善性維護將轉變為軟體新版本的開發。系統維護的宗旨就是提高客戶對軟體產品的滿意度。確保系統的正常執行是系統維護的根本目的。
4.6 軟體專案管理的里程碑
專案的考核與評審是軟體專案管理流程控制的基礎,我們在整個流程中設定五個基線,即確定五個里程碑,它們分別是TM1:立項完成;TM2:合同簽訂; TM3:產品功能定義完成;TM4:軟體開發完成;TM5:驗收通過。如圖1所示。各階段的主要的進入條件和相應的工作結果是里程碑是否達到的重要標誌。
5 結束語
本文設計的軟體專案管理總體流程及相關技術已成功運用在軟體專案的研發和管理中。通過將流程管理應用於軟體專案管理中,以設定軟體專案總體流程為主線,確定每個階段的主要流程和里程碑,並採用評價指標體系和一系列的模板和表格進行軟體專案開發過程的控制和管理,使軟體專案的成功率顯著提高。
實踐證明,針對企業和專案的實際情況,確定軟體專案運作流程,定義軟體工作產品,明確各階段的進入條件和退出條件,進行有效的流程控制與管理,大大的提高了軟體開發的效率和專案的成功率。
圖1 軟體專案管理總體流程
4 軟體專案管理總體流程分析
4.1專案搜尋
專案搜尋是專案立項的基礎,專案搜尋階段的主要任務包括市場資訊收集,使用者需求跟蹤,對潛在的專案進行分析和篩選。
4.2專案立項
立項階段的主要任務是確認立項的理由,提出立項建議,提供合適的資金和資源,使立項建議成為正式專案。
4.3 專案售前
售前階段從專案立項開始到專案合同的簽定結束,主要工作有:制定與客戶的交流計劃,詳細瞭解客戶的背景資料,瞭解客戶啟動專案的緣由、目的和期望,編制專案方案建議書,準備合同藍本。
4.4合同生成
合同生成階段的主要工作有:專案方案的評估與確定,技術合同、商務合同的商定、評估與簽署。
4.5合同執行
合同執行是軟體專案管理流程的重點,可分為軟體開發、測試執行;內部驗收、專案驗收、系統維護等五個基本工作過程。
流程管理作為現代企業管理的先進思想和有效工具,隨著市場環境與組織模式的變化,在以計算機網路為基礎的現代社會資訊化背景下越發顯示出其威力和效用。流程管理不僅是一種管理技術,更體現了現代管理的思想。流程管理的重點是:理清和管理好所有主、支流程間的關係,使他們相互協調發揮應有的作用。流程管理增加了部門的透明度,管理的物件不是“部門”和“部門員工”的概念,而是以工序流程為管理物件,注重流程中每一個過程和效率以及和上下游工序的關係,管理重點在於整體流程的完整性和順暢性。
運用流程管理方法和技術進行軟體專案管理,可以有效地改變軟體過程管理混亂的局面。首先對軟體專案開發過程進行有效的、規範化的定義;其次,在軟體專案開發過程中,所有的活動過程均按照流程所規定的活動的邏輯關係、活動的實現方式來執行,這樣可以使得所有的活動有序和可控;第三,通過明確運作流程,使專案組人員迅速融入專案和開發過程中;第四,關注每個過程的“結果”,使軟體專案的所有工作產品均能得到有效的儲存,保證了軟體產品完整性。
2 流程的概念及在軟體專案管理中的作用
流程是由活動組成的。基本活動是由個人或團體來完成的,它不需要進行其他的基本活動的轉化。流程的各個活動之間有著特定的流向,它包含著明確的起始活動與終止活動,因此是一個動態的概念。從結構上來看,流程有四個基本的構成因素:活動、活動的邏輯關係、活動的實現方式和活動的承擔者。流程與“一系列的活動或事件”、“結果”等概念密切相關。流程管理不僅是一種管理技術,更體現了現代管理的思想,原有的以控制、塔式組織為基礎的職能行政管理已經不能完全滿足於現代企業發展和市場競爭的需要,管理的發展沿著分工理論執行了上百年後,現在又重新迴歸到整合與系統。
軟體專案生命週期的一系列的開發過程是各種各樣的流程活動。軟體專案的計劃編制、系統分析、概要設計、詳細設計、程式編碼、測試與維護等活動過程都是一種流程活動。制定軟體專案管理流程,重點考慮以下幾點:
1)制定的流程能引導專案逐步走向成功;
2)制定的流程能適用軟體開發過程;
3)制定的流程能指導專案開發活動,有利於對專案開發活動的管理;
4)制定的流程能以直觀的流程圖表示,能使專案組成員清楚的知道軟體開發與管理的過程和相互間的關係;
5)流程中的起始活動條件、終止活動條件明確、規範,便於控制;
6)流程中的工作產品定義明確、可度量,評價標準和方法具體、可操作。
3 軟體專案管理總體流程設計
在軟體專案開發管理過程中,不僅要努力實現專案的範圍、時間、成本和質量等目標,還必須協調整個專案過程,以滿足專案參與者及其他利益相關者的需要和期望;隨著軟體規模和所涉及的領域不斷地擴大,軟體專案的管理越來越困難。縱觀所有失敗的軟體專案,基本原因是不能管理其軟體過程,在無紀律的、混亂的專案狀態下,組織不可能從較好的方法和工具中獲益。嚴謹的軟體過程控制與管理不僅可以在每個階段回顧和糾正專案的偏差,識別軟體專案的風險甚至果斷中止專案,而且可以將人才流動所帶來的不利影響減少到最小。要進行有效的過程控制,必須明確軟體專案管理流程。
軟體專案管理總體流程設計為專案搜尋、立項、售前、合同生成和合同執行等5個主要階段,分別以P1、P2、P3、P4、P5表示;同時設計了立項完成、合同簽定、功能定義、軟體開發、專案驗收等5個里程碑,分別以TM1、TM2、TM3、TM4、TM5表示,如圖1所示。在這些流程中,合同執行流程是軟體專案管理的核心,其主要過程有:產品定義、軟體開發、測試執行、內部驗收、專案實施與驗收、專案維護。
4.5.1軟體開發
軟體開發階段分為:需求調研、系統分析、系統設計、編碼、單元測試等過程。主要從三個方面進行管理:
1) 制定專案計劃。軟體專案計劃是一個用來協調所有其他計劃,以指導專案執行和控制的可操作檔案。它體現了對客戶需求的理解,是開展專案活動的基礎,也是軟體專案跟蹤與監控的依據。
2) 確定開發過程。根據軟體專案和專案組的實際情況,建立起一個穩定、可控的軟體開發過程模型,並按照該過程來進行軟體開發。
3) 加強過程控制。過程控制主要包括過程管理、變更控制和配置管理。
4.5.2測試與執行
專案測試的目的是檢查系統是否符合專案合同與任務書規定的要求。專案測試分整合測試和系統測試,主要進行功能測試、健壯性測試、效能—效率測試、使用者介面測試、安全性測試、壓力測試、可靠性測試、安裝/反安裝測試等。測試過程在模擬執行環境中進行。
4.5.3內部驗收
專案完成整合測試和系統測試後進行專案內部驗收,主要有三個步驟:1)文件準備。專案經理提交內部驗收計劃、專案開發總結報告、產品釋出清單;財務主管提交專案財務預算報告。2)內部驗收測試。內部驗收測試的測試內容與方法雖然與系統測試基本相同,但應站在使用者驗收的角度進行,因為它是試執行的基礎,通過這一步,為使用者驗收作充分的準備。3)內部評審。對提交的所有文件及測試結果進行內部評審,完成專案開發總結報告。
4.5.4專案試執行與驗收
試執行與使用者驗收階段的主要任務是,使所有的工作產品得到使用者的確認。主要工作有:1) 驗收前的準備。專案經理負責檢查產品的完整性,包括文件、介質和中間產品等,以確保現場實施的成功;負責應用軟體的現場安裝除錯,完成安裝除錯總結報告;負責制定使用者驗收計劃,並得到客戶的確認。2) 使用者進行驗收測試和系統試執行,進行文件和系統的移交。3) 使用者確認。專案經理負責與客戶協調,協助使用者進行專案驗收,形成使用者驗收報告。
4.5.5專案維護
軟體系統的維護分為兩大類:一類是糾錯性維護,由於前期的測試不可能暴露軟體系統中所有潛在的和隱含的錯誤,診斷和改正這些錯誤的過程為糾錯性維護。另一類是完善性維護,在軟體正常使用過程中,使用者還會不斷地提出新的需求,為了滿足使用者新的需求而增加軟體功能的活動稱為完善性維護。如果需求變更很大,那完善性維護將轉變為軟體新版本的開發。系統維護的宗旨就是提高客戶對軟體產品的滿意度。確保系統的正常執行是系統維護的根本目的。
4.6 軟體專案管理的里程碑
專案的考核與評審是軟體專案管理流程控制的基礎,我們在整個流程中設定五個基線,即確定五個里程碑,它們分別是TM1:立項完成;TM2:合同簽訂; TM3:產品功能定義完成;TM4:軟體開發完成;TM5:驗收通過。如圖1所示。各階段的主要的進入條件和相應的工作結果是里程碑是否達到的重要標誌。
5 結束語
本文設計的軟體專案管理總體流程及相關技術已成功運用在軟體專案的研發和管理中。通過將流程管理應用於軟體專案管理中,以設定軟體專案總體流程為主線,確定每個階段的主要流程和里程碑,並採用評價指標體系和一系列的模板和表格進行軟體專案開發過程的控制和管理,使軟體專案的成功率顯著提高。
實踐證明,針對企業和專案的實際情況,確定軟體專案運作流程,定義軟體工作產品,明確各階段的進入條件和退出條件,進行有效的流程控制與管理,大大的提高了軟體開發的效率和專案的成功率。
圖1 軟體專案管理總體流程
4 軟體專案管理總體流程分析
4.1專案搜尋
專案搜尋是專案立項的基礎,專案搜尋階段的主要任務包括市場資訊收集,使用者需求跟蹤,對潛在的專案進行分析和篩選。
4.2專案立項
立項階段的主要任務是確認立項的理由,提出立項建議,提供合適的資金和資源,使立項建議成為正式專案。
4.3 專案售前
售前階段從專案立項開始到專案合同的簽定結束,主要工作有:制定與客戶的交流計劃,詳細瞭解客戶的背景資料,瞭解客戶啟動專案的緣由、目的和期望,編制專案方案建議書,準備合同藍本。
4.4合同生成
合同生成階段的主要工作有:專案方案的評估與確定,技術合同、商務合同的商定、評估與簽署。
4.5合同執行
合同執行是軟體專案管理流程的重點,可分為軟體開發、測試執行;內部驗收、專案驗收、系統維護等五個基本工作過程。
相關文章
- 【軟體設計】專案設計流程規範
- 《軟體專案管理》的設計思路專案管理
- 關於軟體專案開發的分析與設計
- 專案管理軟體設定任務流程自動化專案管理
- 軟體專案管理中的“敏捷流程”(轉)專案管理敏捷
- 軟體專案設計與開發管理——指數效應(原創)
- 專案管理與軟體工程(轉)專案管理軟體工程
- 專案管理軟體的應用分析專案管理
- 簡單分析軟體專案成本管理
- 軟體專案管理 8.4.軟體專案質量計劃專案管理
- 總體設計(軟體專案)
- 分析如何使用專案管理軟體管理軟體開發團隊專案管理
- 軟體專案開發流程
- 軟體專案管理FollowMe_專案整體管理專案管理
- 詳細設計(軟體專案)
- 合夥人1號工程專案管理軟體核心流程專案管理
- 軟體專案管理常見問題分析(轉)專案管理
- 做好軟體專案管理的要點分析(轉)專案管理
- 分析IT軟體研發公司用什麼專案管理軟體好?專案管理
- 軟體專案管理 9.2.軟體專案配置管理過程專案管理
- 如何利用專案管理軟體制定專案進度計劃?專案管理
- 軟體專案管理Follow Me--軟體專案管理基礎知識專案管理
- 專案管理軟體最佳化流程提高效率專案管理
- 網站專案管理-專案模型及業務流程分析(轉)網站專案管理模型
- 國內軟體工程專案的外包管理分析軟體工程
- 硬體銷售實施流程管理如何通過Zoho專案管理軟體實現?專案管理
- 軟體專案上線完整流程
- 軟體專案管理在小軟體專案中的應用專案管理
- 專案管理軟體的春天專案管理
- 專案管理軟體有哪些?專案管理
- 專案管理軟體推薦專案管理
- 禪道專案管理軟體專案管理
- 軟體專案範圍管理
- 解析軟體專案管理(轉)專案管理
- 軟體專案管理心得(轉)專案管理
- 軟體專案管理 4.1.軟體需求管理過程專案管理
- 分享一下使用專案管理軟體管理專案計劃及執行專案管理
- 軟體工程_專案需求分析軟體工程