官术网_书友最值得收藏!

1.3 軟件項目管理

1.3.1 軟件生命周期

大多數軟件生命周期被劃分為4~5個階段,但也有些被劃分為更多階段,甚至同一應用領域的軟件項目也可能被劃分成明顯不同的階段,例如,某軟件開發的生命周期中也許只有一個設計階段;而另一個軟件可能會有概要設計和詳細設計兩個設計階段。但多數軟件生命周期有著共同的特征,一般劃分為以下5個階段。

(1)計劃階段

此階段軟件開發方和需求方共同討論,定義軟件系統,確定用戶要求和總體目標,提出可行的方案,包括資源、成本、效益和進度等實施計劃,進行可行性分析并制定“軟件開發計劃書”。

(2)需求分析階段

此階段確定軟件的功能、性能、接口標準、可靠性等要求,根據功能需求進行數據流程分析,提出系統邏輯模型,并進一步完善項目實施計劃。

(3)系統設計階段

此階段主要根據需求分析的結果對整個軟件系統進行設計,包括系統概要設計和詳細設計。在系統概要設計中,要建立系統的整體結構和數據流圖,進行模塊劃分,根據接口要求確定接口等;在詳細設計中,要建立數據結構、算法、流程圖等。

(4)系統實現階段

此階段包括編碼和測試,編碼就是把系統設計的結果轉換成計算機可運行的程序代碼,編碼應該符合標準和規范化,以保證程序的可讀性和易維護性,提高運行效率;測試就是發現軟件中存在的問題,并加以糾正,測試過程包括單元測試、整體測試和系統測試3個階段,測試過程中需要建立詳細的測試計劃以減少測試的隨意性。

(5)系統維護階段

此階段通常有3類工作,為了修改錯誤而做的改正性維護,為了適應新環境而做的適應性維護,以及為了用戶新需求而做的完善性維護。良好的運行維護可以延長軟件的生命周期,乃至為軟件帶來新的生命。

注意

傳統的軟件開發就是利用軟件工程思想逐階段進行開發,但這種生命周期開發模型缺乏軟件項目管理的內容,當今軟件項目開發更加強調軟件工程思想與軟件項目管理理念的結合。

1.3.2 軟件項目管理特征

軟件項目是特殊的一類項目,軟件項目生命周期和一般項目生命周期相似,也包括軟件項目啟動階段、規劃階段、執行階段、控制階段和收尾階段,每個階段有著相應的管理過程,即軟件項目啟動管理過程、規劃管理過程、執行管理過程,控制管理過程和收尾管理過程。

軟件項目管理除了具備一般的項目管理的特征之外,還有自身的特征。

(1)前瞻性

軟件行業相對傳統行業來說,信息技術發展速度十分迅猛,這就意味著軟件項目管理者必須具備相當的前瞻性。因此,軟件項目的策劃、選擇和事前評估就變得更為重要,而不像傳統項目管理那樣重視項目的執行管理。

(2)及時性

軟件項目風險很大程度上來自于軟硬件技術的快速更新,也就是說軟件項目進度越緩慢,技術革命帶來的威脅就越明顯,項目失敗的可能性就越大,因此軟件項目的風險管理就更加重要。

(3)合作性

由于項目規模不斷擴大,合作性成了軟件項目管理的一個重要特征。主要表現在兩個方面,一是項目組內部的協作性,二是項目團隊和外部的合作性。軟件項目往往集成了軟件、硬件、通信、咨詢等方面,這就要求項目管理者不但綜合技術能力要高,而且能與利益相關者處于密切的協作中,這是項目成功的一個重要因素。

(4)激勵性

軟件項目的人力資源是以知識型和技術型為主的,因此,相對于其他類型的項目更強調激勵性,良好的激勵機制,不但可以減少人力資本的流失,而且可以激發團隊挑戰軟件項目的高難度,充分發揮團隊每位成員的積極性和創造性,按時高質量地完成項目,贏得業界聲譽和新的商業機會。

1.3.3 軟件項目管理過程

項目管理在軟件開發的技術工作之前就應該開始,而在軟件從概念到實現的過程中繼續進行,并且只有當軟件開發工作最后結束時才終止。其過程可分為以下幾個部分,如圖1-4所示。

圖1-4 軟件項目管理過程

1. 啟動階段

項目獲得授權正式被立項,并成立項目組,宣告項目開始,啟動是一個認可的過程,用來正式認可一個新項目或新階段的存在。在此過程中,最重要的是確定項目章程和項目初步范圍說明書。

(1)項目章程是在客戶和項目經理達成共識后建立的,主要包括項目開發人員、粗的成本估算和進度里程碑等信息,詳見10.1節。

(2)項目初步范圍說明書包含了范圍說明書涉及的所有內容,還包含了初步的工作分解結構(WBS)、假設約束、風險、開發人員、目標、項目范圍和邊界、交付物、粗略進度里程碑、粗略成本估算和驗收準則等諸多內容。

2. 規劃階段

項目的有效管理直接依賴于項目規劃,編制項目規劃的主要目的是指導項目的具體實施。為了指導項目的實施,規劃必須具有現實性和有效性。因此,需要做出一個具有現實性和實用性的基準計劃,需要在計劃編制過程中投入大量的時間和人力。

項目規劃的詳細和復雜程度與項目的規模、類型密切相關,但規劃的編制工作順序基本相同,包括:目標分解、任務活動的確定、任務活動分解和排序、完成任務的時間估算、進度計劃、資源計劃、費用預算和計劃文檔等。除此之外,制訂計劃還要考慮質量計劃、組織計劃、溝通計劃、風險識別及應對措施等。對各個方面考慮得越周詳,越有利于下一階段的工作進行。

當一個項目的工作需要使用外部承包商和供應商的時候,在項目規劃和設計階段通常還會包括對外發包和合同訂立工作,這項工作也屬于計劃安排的范疇。

3. 執行和控制階段

一旦建立了項目的基準計劃,就必須按照計劃執行。這包括按計劃執行項目和控制項目,以便在預算內、按進度完成項目,并使顧客滿意。項目執行過程包括協調人員和其他資源,以便實施項目規劃,并得到項目產品或可交付成果。

在項目執行過程中,項目信息的溝通顯得尤為重要,及時提交項目進展信息,以項目報告的方式定期溝通項目進度,為質量保證和成本控制提供手段。

一旦進入了執行階段,就可以開始著手追蹤和控制活動。由項目管理人員負責監督和追蹤項目的執行情況,提供項目執行績效報告。范圍變更、進度延遲、預算超支,質量保證是項目控制的關注重點。變更控制都要經過嚴格的項目整體變更管理過程處理。此外,還要采取各種行動去糾正項目實施中出現的各種偏差,使項目實施工作保持有序和處于受控狀態。糾偏措施有些是針對人員組織與管理的;有些是針對資源配置與管理的;有些是針對過程和方法的改進與提高的。

4. 收尾階段

項目的最后環節就是項目的收尾過程。這個階段的主要工作是全面檢驗項目工作和項目產出物,對照項目定義、項目目標和各種要求,確認項目是否達到目標或要求。當項目驗收通過或者修改后驗收通過,就可以正常結束項目,進行項目移交,否則就應該進行項目清算。

項目各種開發和管理文檔的完整性和一致性檢查也是收尾工作的重要內容。此外項目后評價和經驗總結也非常重要,這些經驗和數據積累對于以后的項目有非常重要的指導意義。

以上過程是指導性的,在實際實施某一軟件項目時,可根據項目性質、項目規模、工作重點等靈活制定相應的管理過程。

1.3.4 軟件工程和軟件項目管理的關系

一般來說,軟件工程關注軟件產品內容,軟件項目管理關注軟件項目過程。例如,在軟件開發項目中,需求分析、概要設計、詳細設計、編碼、測試等工作,都屬于軟件工程的范疇,這些工作都是由軟件產品開發的要求而存在的,是由相應的工程規范來約束的,軟件工程規范就是軟件產品的生產藝術。但是項目的啟動、規劃、執行、控制和收尾等管理過程(組)則屬于項目管理的范疇,這些管理過程組又分別包括了范圍管理、時間管理、成本管理、質量管理等知識域的子管理過程(見表1-1)。軟件工程是圍繞軟件產品管理的,項目管理是圍繞項目過程的,它們的關系是相輔相成的。

當今軟件項目開發更加強調軟件工程思想與軟件項目管理理念的結合。

1.3.5 軟件項目管理常見問題分析

當今軟件系統已經應用于許多領域,但軟件項目的成功率并不高。軟件項目失敗的原因有很多種,其中比較普遍的問題如下。

1. 缺乏專業的軟件項目管理人才

在IT企業中,以前幾乎沒有專門招收項目管理專業的人員來擔任項目經理(甚至很少是管理專業的),被任命的項目經理主要是因為他們能夠在技術上獨當一面,而管理方面特別是項目管理方面的知識比較缺乏。項目經理或管理人員不了解項目管理的知識體系和一些常用工具和方法,在實際工作中沒有項目管理知識的指導,完全依靠個人現有的知識技能,管理工作的隨意性、盲目性比較大。如果軟件項目經理能夠接受系統的項目管理知識培訓,在具備了專業領域的知識與實踐的同時,再加上項目管理知識與實踐經驗的有機結合,必能大大提高軟件項目經理的項目管理水平。

2. 項目規劃不充分

沒有良好的項目管理規劃,項目的成功就無從談起。項目經理對總體計劃、階段計劃的作用認識不足。項目經理認為計劃不如變化快,項目中也有很多不確定的因素,做規劃是走過場,因此制定總體計劃時比較隨意,不少事情沒有仔細考慮,另外階段計劃因工作忙等理由經常拖延,造成計劃與控制管理脫節,無法進行有效的范圍、進度、成本、風險等控制管理。

漸近明細是軟件項目的特點,但這并不意味著不需要計劃。沒有計劃或者是隨意的不負責任的計劃的項目是一種無法控制的項目。在IT行業,日新月異是主要特點,因此計劃的制定需要在一定條件的限制和假設之下采用漸近明細的方式進行不斷完善。

3. 管理意識淡薄

部分項目經理沒有意識到自己項目經理的角色,沒有從總體上去把握管理整個項目,而是埋頭于具體的技術工作,造成項目組成員之間忙的忙、閑的閑,計劃不周、任務不均、資源浪費。

在IT企業中,項目經理大多是技術骨干,技術方面的知識比較深厚,但無論是項目管理知識,還是項目管理必備的技能、項目管理必備的素質都有待學習和提高,項目管理經驗也有待豐富。有些項目經理對于一些不服管理的技術人員,沒有較好的管理方法,不好安排的工作只好自己做。

4. 溝通意識和態度問題

在項目中一些重要信息沒有進行充分和有效的溝通。在制定計劃、意見反饋、情況通報、技術問題或成果等方面與相關人員的溝通不夠,造成各做各事、重復勞動,甚至造成不必要的損失;有些人沒有每天定時收郵件的習慣,以至于無法及時接收最新的信息。

項目溝通管理指出:“管理者要用70%的時間用于與人溝通,而項目經理需要花費90%或更多的時間來溝通”。和問題3的情況類似,在IT企業中,項目經理大多是技術骨干,而項目組成員也都是“高科技人員”,都具有“從專業或學術出發、工作自主性大、自我欣賞、以自我為中心”等共同的特點。因此妨礙溝通的因素主要是“感覺和態度問題”,也就是溝通意識和習慣的問題。在系統的實施階段或軟件開發的試運行階段,項目成員基本上是持續地在客戶方進行工作,這種情況非常容易忽視溝通。

5. 風險意識問題

項目經理沒有充分分析可能的風險,對付風險的策略考慮比較簡單。項目經理在做項目規劃時常常沒有做專門的風險管理計劃文檔,而是合并在項目計劃書中。有些項目經理沒有充分意識到風險管理的重要性,對計劃書中風險管理的章節簡單應付了事,隨便列出幾個風險,隨便地寫一些簡單的對策,這些對于后面的風險防范起不到什么指導作用。

6. 項目干系人管理問題

項目的目的就是實現項目干系人的需求和愿望。在范圍識別階段,項目組對客戶的整體組織結構、有關人員及其關系、工作職責等沒有足夠了解以致于無法得到完整需求或最終經權威用戶代表確認的需求。由于項目經理的工作問題,客戶參與程度不高,客戶方責任人不明確,對前期范圍和需求責任心不強和積極性不夠,提出的要求具有隨意性;或者是多個用戶代表各說各話,昨是今非但同時又要求項目盡早交付。如果干系人在項目后期隨意變化需求,則會造成項目范圍的蔓延,進度的拖延,成本的擴大。

7. 不重視項目經驗總結

項目經驗總結非常重要,有利于組織內部或行業內部經驗與數據的積累,這些經驗積累對于以后的項目有非常重要的指導意義。歷史的經驗數據可以使新的項目進行更為準確全面的規劃,歷史的經驗教訓可以使新的項目少走不必要的彎路,少花不必要的代價,減少項目失敗的風險。

然而,項目經理在項目結束時有些是因為自身對寫文檔工作的興趣或意識,或者是因為緊接著要參加下一個項目,總體對項目總結的重視程度不夠。有些是項目總結報告一再拖延,有些是交上來的報告質量較低,敷衍了事。

綜上所述,決定一個項目失敗的因素很多。一個好的管理雖然還不一定能保證項目成功,但是,壞的或不適當的管理卻一定會導致項目失敗。隨著軟件項目規模的擴大、復雜性的增加,項目管理在軟件項目實施中發揮著越來越重要的作用。

主站蜘蛛池模板: 丹凤县| 仪陇县| 兴山县| 德江县| 溧阳市| 西青区| 台山市| 屏东市| 田东县| 桓仁| 偃师市| 合水县| 尼勒克县| 达日县| 呼图壁县| 霍州市| 潼关县| 罗平县| 福贡县| 安康市| 韶关市| 沙河市| 浪卡子县| 西城区| 湘潭县| 柘城县| 贵德县| 许昌市| 科技| 石渠县| 亚东县| 乐平市| 基隆市| 余姚市| 南部县| 沙田区| 大田县| 苏尼特左旗| 阳江市| 舞阳县| 华容县|