專案管理與軟體工程(轉)

urinator發表於2007-08-16
專案管理與軟體工程

一提到軟體工程,大家自然就會想到軟體開發、專案組、想到新產品開發有關的種種相關的事情。現在把專案管理和軟體工程聯絡起來,就更讓人想到軟體開發中的專案管理、專案組的管理。那麼,專案管理和軟體工程之間到底應該是什麼關係呢?

我們首先來回顧一下軟體工程的有關內容。軟體工程是針對軟體這一具有其特殊性質的產品的工程化方法。它關注的是軟體產品的生命週期,包括從計劃、設計、程式設計、測試、到執行和升級維護共六個主要階段,而且隨著軟體產品的不斷升級維護,還會使同一軟體產品經歷多次這樣的生命週期,軟體工程在產品的一次生命週期中的各個階段中,提供了一整套的工程化的方法,來指導軟體人員的工作。因此可以說,軟體工程是一種圍繞產品生命週期的工程化方法。

我們再來看一下專案管理。專案管理是針對一個專案的管理方法,它關注的是專案的生命週期,包括從專案的啟動、計劃、執行,到控制和收尾共五個主要的專案過程。在不同的過程中都涉及到對時間、人員、成本、質量、風險等內容的管理,強調的是專案的績效,通過有效的專案管理來完成對專案提出的需求,這當中也包括提交軟體產品。因此,專案管理是關注於專案生命週期的管理方法。

既然軟體工程是圍繞軟體產品管理的,專案管理是圍繞專案過程的,那麼自然也就容易明確它們之間的關係:

1, 在軟體產品的生命週期中,由於軟體產品的性質、用途、規模等方面的差異,軟體生命週期和專案生命週期可能會重合,一個軟體的生命週期在一個專案週期結束時也隨之結束。

而在更多情況下,一個軟體的生命週期會通過多個專案來完成,例如在軟體的計劃階段,可以以一個專案的方式來實現,在軟體的設計、程式設計階段,可以通過一個專案的方式來管理,在測試階段也可以單獨組織一個專案,在執行階段,則主要通過一般的執行管理而非專案管理的方式來進行,而在升級維護階段,仍然可以根據具體要求通過組織專案的方式來完成,或者隨著軟體產品進入下一個生命週期,而又啟動新的專案。產品生命週期與專案生命週期之間這種差別,在專案管理理論中是特別強調的,在專案管理中應該充分考慮其產出結果與整個產品生命週期的關係,而不應該孤立、片面地只強調專案週期的要求。

2, 軟體有其自身的科學規律,當專案管理涉及到軟體內容時,應該給予充分的重視

專案管理的最終目的還是要提交符合要求的產品,在軟體工程中,已經總結了軟體產品的許多規律性的內容,並提出了一整套的工程化方法,因此,在軟體專案的管理中,也必須遵循這種規律。在專案管理理論中,也一再強調專案管理者在具體應用領域中的專業知識,在專案的不同階段,也都強調結合產品的要求而制定不同的工作內容,獲得相應的資源,採用適當的管理方法。產品自身的規律對專案管理的具體實踐有著極其重要的影響,產品是目標,實現過程是手段。要做好軟體專案的管理,就必須首先對軟體工程具有深刻的理解。

3, 在軟體工程中,也涉及到一些管理方面的問題,與專案管理有一些重疊的部分。

這是很自然的,既然一種工程化的方法,就一定要提到工程管理的問題,但是在軟體工程中提到的管理要求,只涉及到與工程方法緊密相關的、有針對性的方法,而專案管理知識體系是一個通用的知識框架,在內容上與軟體工程中的管理內容是不重複的,而是互相補充的。例如在專案管理知識體系中強調人力資源管理的有關管理方法,而在軟體工程中則強調系統分析人員、程式設計人員、測試人員等不同角色在不同階段的責任。在軟體專案管理中,應充分注意這兩者的有機結合。

綜上所述,以通用的專案管理知識體系為基礎,結合軟體工程自身的科學規律,採用適合軟體產品自身特點的管理方法,是真正管理好軟體專案和軟體產品的最終出路。特別是當一個企業作為軟體產品的終端使用者時,更要同時做好專案管理和軟體產品管理兩方面的工作,始終不可偏離企業的最終經營目標。

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

相關文章