學習專案管理理論後的體會 (轉)

amyz發表於2007-11-13
學習專案管理理論後的體會 (轉)[@more@]

學習理論後的體會:namespace prefix = o ns = "urn:schemas--com::office" />

本人從事專案設計和開發工作,已經有15年了,大大小小的軟體專案數起來要有20多個。但真正意義上的,是按照專案管理理論,從專案開始到專案結束進行全面控制的幾乎沒有,只是部分過程採用了一些管理理念和方法而已。

真正對專案管理有比較深刻的理解和認識的,還是這次參加“資訊整合專案經理培訓”。透過系統的理論培訓和教師結合實際的講解,自己再聯絡以往的實際專案管理工作,感觸很多。

一.  專案要進行整體管理,善始善終

整個專案開始要做好專案整體計劃,在專案的整個過程中,始終要按照專案計劃,如若遇到專案發生變更,要進行影響分析,得到批准後製定變更計劃,並按變更計劃執行。變更的影響情況,如:費用,時間進度等要通知相關的專案利益干係人,說明變更的原因和產生的影響。

專案首尾工作也是專案管理中,一項重要的工作。需要將專案過程中產生的資料進行整理,歸檔;對專案的費用和進度進行審計和稽核,對專案的質量進行檢驗和驗收;對專案的整個過程的利弊得失進行總結和交流。

變更計劃在軟體專案中經常遇到。控制好軟體專案的變更,首先需要做好專案的開始目標基準的確定,基準的需求明確,才能衡量出哪些是需要變更的。否則變更的東西和開始要求的東西混在一起,變更計劃就無從制定,變更的界限也無從劃清。

自己做過的一個專案,開始為了佔領市場和儘快拿下合同,在使用者需求還沒有詳細提供的條件下,就與使用者簽定了合同,後來不僅費用受到限制,就連時間不夠,在專案過程中,使用者方還總是變更軟體的功能和要求。因為沒有一個基點,我們認為是變更需求和新增功能,而使用者方認為是合同範圍,不能因此增加費用和時間。這個專案在開始好象簽定了合同我們爭取了主動,其實需求不明確,使我們在後來的專案程式中一直處於被動。

所以專案從一開始就要做好計劃,搞清目標。只有專案的目標明確,合理安排時間、費用、人力和其他資源,控制好專案的變更,這些是保證專案能夠順利完成的基本條件。

二.  專案範圍管理理論解決了專案開始需求不清的問題

需求管理是專案範圍管理中的問題,這是因為它實際上是開發過程中的所有管理原則的先決條件。只有在開發的目標被清楚明白地表述和理解的情況下,才能以一種有計劃的有序的方式進行。實際上,沒有文件化的需求,在開發工作完成前後都很有可能發生產品與要求的偏離。計劃、追蹤、管理以及軟體質量保證這些在其他關鍵過程中涉及的原則,都是從一個穩定的基礎開始的,那就是文件化的需求基線。

什麼需求?需求是指“分配給軟體的系統需求”,或者更簡潔地說,“分配需求”。這些需求有可能是技術方面的(比如:功能和需求),也有可能是非技術方面的(比如:釋出日期,開支限度)。
區分開需求管理和軟體需求分析是很重要的。一旦分配需求被文件化,並且被所有受影響部門(客戶,系統工程,軟體工程)透過,需求管理的基本工作就完成了,所剩下的就是管理變更而已。沒有證據證明分配需求本身就可以十分清楚完整的作為軟體開發的全部基礎。事實上,通常它們不是。

和精確描述需求,填補,將含義表達得更清楚是軟體需求分析要做的,分析的結果被稱為“軟體需求“。這樣,作為需求管理的輸出的分配需求實際上就成了軟體需求分析的輸入。需求管理遠遠先於軟體開發的技術行動,而軟體需求分析則是關鍵開發技術行為的第一步。
  從這裡的描述看來,需求管理的活動簡直太簡單,太基礎了,顯然沒有哪個軟體開發組織會不有效的進行著這種活動。問題經常出在企業對透明度的懼怕。客戶覺得保持需求含糊不清,鬆散或者無正式檔案能夠給他們更多的機會去說:“那並不是我所要的,那並不是我認為的需求的含義”。文件化清晰的需求可能迫使使用者在系統滿足了文件化的需求但沒有滿足實際需要的情況下,為開始變更負責。相似地,開發人員覺得含糊不清,鬆散或者無正式檔案的需求能給他們更大的餘地,允許他們與預算和進度儘可能地接近,然後說:“這就是我們所認為的需求的含義,如果你需要其他的什麼東西,你必須另外付出代價。”文件化清晰的需求會迫使開發者承擔滿足這些需求的義務,並使他們暴露於開支、進度評估不準確的風險之下。
  這樣一來,儘管客戶與開發人員的利益動機相對,但他們卻走到了一起。每一方都認為他們在保護自己的利益,鞏固自己討價還價的地位,但是事實上每一方都在走向將來的失望和爭吵,為專案埋下了一刻定時炸彈。

三.專案時間管理理論指導我們在專案管理中怎樣抓主要矛盾

以前進行專案管理時,是根據和每個人的工作特點,進行專案的分工的,軟體專案基本是按照需求分析,概要設計,詳細設計,程式碼,和測試,使用者驗收等幾個主要過程來進行的。但將專案分工更加細化,每個小過程的時間估算是多少,整個專案可以最短用多少時間來完成,怎樣合理安排人員,怎樣抓專案中的關鍵環節等等,這些都沒有進行過量化的分析和管理。

專案管理的實施最為直觀的就是縮短專案時間。利用專案管理理論、方法,有許多縮短時間的例子。美國路易斯維化工廠檢修時把檢修流程精細分解,按導向圖建立起控制關係。他們驚奇地發現,檢修過程選擇不同路徑總時間是有差別的。透過反覆最長路徑上的任務,將工期反覆最佳化,最後只用78個小時就完成了通常需125小時完成的檢修,節省時間38%。這就是至今專案管理工作者還在應用的著名的時間管理技術CPM,即“關鍵路徑法”。

所以我們在軟體的專案管理中,也要將時間控制理論運用進來,結合軟體工程的實際,將任務分解的更加詳細,並用圖將整個工作過程建立起來,估算好每個階段的歷時,找出關鍵路徑,並透過跟進方法,將關鍵路徑的工期縮短,以提高工效。

四.  質量管理是專案成敗的關鍵

我們在進行軟體專案過程中,對軟體的功能測試一直認為還是比較認真和嚴格的,每次測試都要有測試計劃和用例的編寫,然後才能進行測試;測試要有記錄,並將記錄整理成測試報告。

但透過此次培訓後,感覺到我們的測試工作與質量管理的要求還差的遠,有距離。質量控制要深入到每個與專案相關的人,要深入到專案的每個過程中,從一開始,就要樹立質量第一的理念,每個過程都要進行質量的控制,而不是到最好測試時,才想到質量,才去衡量是否符合標準。

標準化設計,標準化管理是專案質量的保證。參加質量體系有助於企業提高專案的管理水平,有利於提高工程專案質量。CMM模型已得到廣泛的認可和接受,CMMI沿用其模型的組織方式,有5個等級和18個要素。透過5個等級的認證和加強管理,企業對專案的管理將經過5個境界的提高:從混亂,到里程碑的檢查,到定義清楚的管理體系和標準,到進行統計過程控制量化管理,到最後的最佳化過程、評價工作流程、進行工作過程的改進。

本人以前參加過為日本軟體進行部分功能的設計和程式設計工作。日本的軟體企業對一個專案的質量控制就做的比較細緻,用我們的觀念衡量簡直是不可容忍。做一個模組的詳細設計,要用他們提供的標準的圖形語言進行描述,用標準的設計摸版進行說明;並在設計完成後組織相關人員對這個設計進行評價,有問題需要修改設計,然後在評價直到透過才能開時以此為設計檔案,進行程式碼。程式碼寫完後,不是見到結果就完事了,要將程式碼列印出來,相關人員對程式碼的整個實現過程進行評價,提出修改建議,程式碼修改後,需要再審,也是透過以後才能提交入程式碼庫,進行程式碼的組裝。

當時認為日本的方法太浪費時間和人力了,對技術人員個人的能力估計的太低,怎麼能提高工作吶。可是軟體質量問題的頻繁出現,是我們不斷的認識到,開始浪費一些時間和人力,控制好每個細節的質量,就是省去了許多時候為解決質量問題而進行的新的時間和人力的支出。省去了大量的軟體後期的質量維護費用。總的來看是核算的。為提高專案的質量,降低成本,必須從專案的開始就要做好質量的控制工作。

五.  溝通管理中的一些策略的使用可以使專案更好的完成

做專案就需要與客戶接觸,就會出現一些正式和非正式的談判。雙方都會為自己方的利益而進行討價還價。與客戶之間搞好溝通,是專案進展是否順利的一個條件。溝通中有許多的策略在平時的實際工作中可以使用,目的不是坑害別人,而是為了更好地完成專案,達到雙方事先確定的目標,而採用的一些藝術手段而已。溝通的技巧包括:下達最終期限,使用吃驚方法,採用有限權利法,不露面的人,公平合理,戰略延遲,雙方一起論理,撤退,不合理,既成事實等。本人就是成功的採用了戰略延遲法,將客戶方的一筆專案質保金及時地催要了回來。

體會還有很多,總之透過這次學習自己對專案的管理又有了新的認識,我會將這些理論知識運用到實際工作中去的。以提高專案的管理水平,提高專案的質量,降低專案的成本,降低專案的風險,最終提高企業的效益。


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

相關文章