軟體專案管理的研究及在專案開發中的應用

myattitude發表於2008-07-30

針對軟體專案開發的特點和軟體開發包專案高失敗率的善通過對軟體專案管理方法的研究提出了軟體專案開發過程的一種管理流程和相應的子流程,實現了對軟體專案控制和管理。

前言

軟體專案管理是為了使軟體專案能夠按照預定的成本、進度、質量順利完成,而對成本、人員、進度、質量、風險等進行分析和管理的活動。實際上,軟體專案管理的意義不僅僅如此,進行軟體專案管理有利於將開發人員的個人開發能力轉化成企業的開發能力,企業的軟體開發能力越高,表明這個企業的軟體生產越趨向於成熟,企業越能夠穩定、持續地發展。

軟體專案管理的特殊性表現在:①軟體產品是無形的。軟體專案管理者不能像其他專案管理者那樣,能夠從被開發的產品上看到進度、已經完工的部分是否與設計相符等,他們只能從其他人所提交的文件中來掌握相關的情況。②沒有標準的軟體過程。對軟體過程的理解雖然已經取得了長足的進步,但是軟體管理者還是不能確切地預見某一軟體過程何時有可能出現問題。③大型軟體專案常常是“一次性的”。由於軟體專案與一個國家、地區的經濟政策相聯絡,與使用者的發展戰略、經濟實力、管理水平相適應,軟體專案的開發過程中所採用的技術和管理方式與當時的計算機和通訊技術有關,因此大型軟體專案一般都不同於早先的專案,管理者縱使有在計劃中降低不確定性的經驗,也很難較準確地預見問題的出現,以前的經驗教訓也較難在新專案中發揮大的作用。

從目前國內外的軟體企業來看,“軟體危機”的陰影仍然存在,軟體行業的專案實施情況一直很不樂觀。研究表明,軟體專案失敗的原因主要有兩個:一是應用專案的複雜性;二是缺乏合格的軟體專案管理人才。實踐證明,缺乏有效的專案管理是導致軟體專案失控的直接原因。

  軟體專案管理的方法研究
http://bbs.mypm.net
    從軟體專案的管理角度來看,專案的直接責任人是軟體專案經理。也就是說,專案經理是專案整體管理的責任人,要在規定的時間範圍內,在不超過經費的情況下,能夠達到或超過專案干係人的願望。專案整體管理圍繞專案計劃進行,主要過程有計劃制定、計劃執行和計劃變更控制。專案經理在以下幾個方面對軟體專案進行全面的管理:

    (1)制定專案計劃。
本文轉自專案管理者聯盟
    軟體專案計劃是一個用來協調所有其他計劃,以指導專案執行和控制的可操作的檔案。它體現了對客戶需求的理解,是開展專案活動的基礎,是軟體專案跟蹤與監控的依據。專案計劃主要由全域性計劃和下屬計劃兩大部分組成。

    在上級主管簽發專案任務書後,專案經理立即和核心成員組成一個專案規劃小組,對專案進行規劃,得到專案的全域性計劃,主要內容有專案的目標與範圍、人力資源計劃、軟體資源和硬體資源計劃、財務計劃、整體任務進度計劃。這一部分計劃要上一級機構領導審批。下屬計劃一般包括配置管理計劃、質量管理計劃、階段開發計劃和測試計劃等,因為專案計劃與專案執行應該是相互滲透的,因此在下屬計劃制定時,專案經理必須把握的原則是:某一部分的工作由誰負責,則該部分的計劃就由誰來制定;下屬計劃部分一般由專案經理審批即可。

    (2)制定開發過程。

    軟體開發的風險之所以大,是由於軟體過程能力低,其中關鍵的問題在於軟體開發組織不能很好地管理其軟體過程,為此必須強調和加強軟體開發過程的控制和管理。軟體專案的開發過程主要有系統調研、需求分析、概要設計、詳細設計、編碼、測試、實施與維護等,但對於不同的軟體專案,雖然大體上過程相同,但不同的專案其每一個過程所包含的一系列具體的開發活動(子過程)千差萬別,而且不同的專案組採用不同的開發技術、使用不同的技術路線,其開發過程的側重點亦不一樣。因此專案經理在軟體專案開發前,根據所開發的軟體專案和專案組的實際情況,建立起一個穩定、可控的軟體開發過程模型,並按照該過程來進行軟體開發是專案成功的基本保證。

    軟體開發過程要做到穩定、可控,真正對專案起到規範和約束作用,關鍵在於以下幾個方面:①整個開發過程以流程的形式表示,過程簡單、清楚。②重要的過程以子流程表示,對總體流程進行細化和補充。③定義總體流程和各子流程進入的必備條件和結束條件。④明確流程結束時需要考核的內
容。⑤所有前面四項通過評審和批准。

  (3)加強過程控制。

軟體專案的開發和實施往往都是在“變化”中進行的。可以毫不誇張地說,軟體專案的變化是持續的、永恆的,找不到不會變化的軟體專案。需求會變,技術會變,系統架構會變,程式碼會變,甚至連環境都會變;專案經理在完成相應的專案計劃和準備後,其主要任務就是進行過程控制。軟體專案的過程控制包括過程管理和變更控制。

過程管理主要是依據專案計劃對軟體專案進行監控,能順利進行過程管理的關鍵是專案管理制度化。制度化的主要內容有:①對專案組成員的工作定期檢查。②要求所有的開發過程以文件形式表示。③制定各種文件的模板,並要求在專案的整體開發過程中,以統一的模板來撰寫文件。④專案組成員在開發過程中嚴格按照規定的流程進行,若更改過程,必須按變更管理的規程進行。
本文轉自專案管理者聯盟
如何在受控的方式下引入變更、監控變更的執行、檢驗變更的結果、最終確認並固化變更,並使變更具有追溯性,這一系列問題直接影響專案的成敗。為此,變更的控制關鍵要從以下兩點人手:①制定適合於本專案的變更處理流程,並嚴格按流程來處理所有變更。②做好配置管理,保證軟體專案的工作產品在整個專案週期中的“完整性”。

配置管理則是軟體專案能順利進行的基礎。一個軟體專案開發過程中,會有大量的“中間產品”產生,典型的如程式碼、技術文件、產品文件、管理文件、資料、指令碼、執行檔案、安裝檔案、配置檔案,甚至一些引數等,這些中間成果都是專案的產品。而且,不斷變化的軟體專案還會使這些產品產生多個不同的版本,可以想像,一旦配置管理失控,專案組成員就會陷入配置項的“泥潭”。很顯然,制定配置管理計劃、建立配置管理系統、確定配置管理的流程和規程、嚴格按照配置管理流程來處理所有配置項,是確保配置管理順利實現的方法和必要的手段。

  軟體專案管理方法的實現
專案管理者聯盟文章,深入探討。
    1.專案背景
    某局通訊建設工程專案管理系統(以下簡稱DX-PMS)主要針對該電信局每年建設的各種通訊建設專案進行全過程全方位的管理,主要包括的內容有工程專案管理、工程結算管理、工程合同管理、工程檔案與統計查詢管理四個主要子系統,並要求與現在已經使用的某省局工程專案管理系統共同使用,各行其職,但資料不需要使用者重複錄入,系統能自動進行資料無縫連線;另外DX-PMS還要與該局現在正在使用的OA系統、ERP系統等進行整合,其軟體開發非常復
雜。專案管理者聯盟,專案管理問題。

  2.DX-PMS開發過程的管理

    (1)制定DX-PMS專案計劃。
    專案經理接受專案任務書後,組成一個專案規劃小組,結合專案任務書和實際開發經驗,確定專案所採用的技術路線;估計專案的工作量、成本及相關資源,依據專案管理規範,制定專案計劃書,評審後納入配置管理。

    (2)制定DX-PMS的開發過程。
    總流程的制定:專案經理與核心組成員,根據專案任務書和專案的實際情況,確定軟體開發過程,得到如圖1所示的開發過程流程圖。確定流程進入的必備條件:①具有已簽署的《DX—PMS合同書》②上級簽發的((DX-PMS任務書》。③與使用者協商後得到的《DX-PMS執行計劃》和《DX-
PMS實施計劃》確定流程結束的條件和考核內容。具體檢查下列工作任務是否完戍:①軟體開發專案組完成《DX-PMS功能說明書》、《DX-PMS需求分析》、《DX-PMS開發計劃》、《~DX-PMS配置管理計劃》、《DX—PMS概要設計說明書》、《DX—PMS詳細設計說明書》、《DX—PMS單元測試總結報告》等文件的編寫及文件所規定的工作任務、可交付的原始碼、可執行程式碼。②測試組完成《DX-PMS測試計劃》、《DX-PMS測試方案與測試用例》的編寫和文件所規定的工作任務。③質量保證組完成《DX-PMS質量保證計劃》的編寫和相應的質量保證工作。

    DX—PMS具體的開發流程為:上級部門任命專案經理,協助專案經理組建專案開發組和軟體測試組、質量保證組;專案經理負責組織專案開發組對客戶需求進行調研,完成《DX-PMS系統需求說明書》及《DX-PMS使用者需求調查報告》;部門經理負責對系統需求進行分析,確定其核心或可產品化的程度,可重用的構件等;專案組對軟體需求進行分析,形成《DX—PMS軟體需求分析說明書》,並通過評審5專案組制定《DX-PMS專案開發計劃》,《DX-PMS軟體配置管理計劃》;測試組制定《DX-PMS軟體測試計劃質量保證組制定《DX-PMS軟體質量保證計劃》,並通過評審,軟體開發專案組進行系統的《DX-PMS概要設計》並通過評審;測試組進行系統的《DX-PMS測試設計》並通過評審;軟體開發組進行系統的《DX—PMS詳細設計》並通過評審;所有原始碼需要按照編碼規範進行開發並由專案經理負責審查;軟體開發專案組進行《DX-PMS單元測試用例》設計;在軟體開發專案組的詳細設計和編碼階段,測試專案組同步進行《DX-PMS測試方案與用例》的設計並進行評審;軟體開發組進行單元測試,並提交《DX-PMS單元測試總結報告》;專案經理負責產品的完整性和正確性檢查。
本文轉自專案管理者聯盟
    (3)過程控制。
    過程控制的主要工作包括過程管理、變更控制和配置管理。
    過程管理是專案能順利進行的基礎,過程的質量決定軟體專案所開發的產品的質量。專案經理依據《DX-PMS詳細設計說明書》和《DX-PMS開發計劃》將軟體開發階段的考核分為系統需求調研、需求分析、軟體設計、編碼與單元測試四個考核點。考核方式與要求包括:①專案經理對每個階段所花費的有效工作量的確認。②專案經理檢查每個階段的軟體工作產品完成情況,將階段工作產品納入配置管理庫並形成基線,並交資源管理部歸檔。③部門經理負責簽署階段報告,總經理對軟體工作產品進行確認。④在測試過程中,統計軟體工作產品的缺陷率。⑤分析軟體工作產品評審的資料的有效性。

   專案經理具體的過程管理工作有:①檢查專案組成員的週報。②制定相應的文件模板。③檢查專案組成員的文件。④定期召開小組例會,交流開發經驗和體會,解決突出的問題。⑤負責與專案雙方人員之間的溝通,特別是與雙方領導的溝通。
專案管理者聯盟文章,深入探討。
    變更控制的基礎是變更控制流程的確定,在專案開發前專案經理根據相關規範制定變更控制流程(如圖2),通過專案成員評審,並報上級管理層批准,形成專案組的一個規範,作為專案變更的執行標準,對專案的所有變更,必須按照變更控制流程進行。    配置管理則是變更控制能順利進行的基礎和保證,為避免陷入配置項的泥潭,專案經理在專案開始之前編寫配置管理計劃,《DX—PMS酉己置管理計劃》和《DX-PMS開發計劃》將同時產生,並制定配置管理流程(如圖3),以保證專案的所有配置專案均納入到配置管理庫,進行配置管理。

    通過採用軟體專案管理方法,明確了專案管理流程和控制專案開發過程,專案經理嚴格按照流程進行控制,嚴格變更控制和配置管理;專案組嚴格按照專案計劃進行開發;主管部門嚴格進行考核和評審。在整個開發過程中,專案小組人員清楚自己的工作,明白其他人的任務,瞭解專案的實際程式,明確下一步的工作重點,整個開發過程有條不紊地進行,圓滿地完成了開發任務。

    結束語

    軟體專案管理的方法研究及在DX-PMS專案中的成功應用,為如何進行軟體專案的開發與控制提供了借鑑。實踐證明,制定適合軟體開發專案的管理規範、過程、流程、模板,並藉助於適當的管理工具進行管理,對軟體專案的成功是非常有效的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780914/viewspace-413591/,如需轉載,請註明出處,否則將追究法律責任。

相關文章