軟件項目管理探析

軟件項目管理是門科學,也是一門藝術;它是一個複雜的系統,決定了軟件項目成敗的關鍵。軟件項目管理雖然沒有非常高深的理論,但要真正實施起來,也絕非易事。

軟件項目管理探析

  1.引言

隨着信息技術的飛速發展,軟件產品的規模和複雜度隨之增加,傳統作坊式的開發方式逐步被以項目組爲單位的協作式開發方式所取代,這就必然涉及到對軟件項目的管理。實踐表明,一個軟件項目的成敗,不在於其項目組的技術人員的技術水平,而在於是否採用了合適的管理。好的管理方式不一定能使項目完全成功,但是一個不合適的管理模式往往會導致軟件項目的失敗。軟件項目管理目前還沒有引起人們的足夠重視,究其原因:首先是人的傳統觀念,軟件項目管理不爲人們所重視,從項目主師到軟件設計開發人員都認爲軟件項目管理可有可無;另一方面軟件工程是一個新興的學科領域,軟件項目管理的問題也是剛被提出的,還沒有多少經驗可以借鑑或引用。同時,由於軟件產品的特殊性,使軟件項目管理涉及到很多學科。因此,對軟件工程管理,人們還缺乏經驗和技術。但事實證明,由管理失誤造成的後果要比程序錯誤造成的後果更爲嚴重。根據多年來型號產品的研製過程可以發現,很少有軟件項目的實施進程能準確地符合預定目標、進度和預算的,這也就足以說明軟件項目管理的重要性。

  2.軟件項目管理的概念

軟件項目管理是指在軟件項目活動中運用專門的知識、技能、工具和方法,使項目能夠按照預定的成本、進度、質量順利完成,通過計劃、組織、控制等一系列活動,合理地配置和使用各種資源,對成本、人員、進度、質量、風險等進行分析和管理,以達到既定目標的過程。這一定義不僅僅是強調使用專門的知識和技能,還強調項目管理中各參與人的重要性。軟件項目管理的根本目的是對軟件開發的各個階段進行管理,增強對軟件開發的控制能力,提高軟件開發質量。項目管理可以讓一個項目獲得高額的盈利也可以讓一個項目損失慘重,而編碼的影響力則相對小一些。軟件項目管理的意義不僅僅如此,進行軟件項目管理有利於將開發人員的個人開發能力轉化成企業的開發能力,企業的軟件開發能力越高,表明這個企業的軟件生產越趨向於成熟,企業越能夠穩定發展(即減小開發風險)。

  3.軟件項目管理的內容

軟件項目管理是一種科學的管理手段,它是爲了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對成本、人員、進度、質量、風險等進行分析和管理的活動。管理的範圍涉及人員的組織與管理、軟件度量、項目計劃、風險管理、質量保證、過程能力配置管理等幾個方面,這幾個方面都是貫穿、交織於整個軟件開發過程中的。從軟件工程的角度講,軟件開發主要分爲六個階段:需求分析階段、概要設計階段、詳細設計階段、編碼階段、測試階段、安裝及維護階段。不論是作坊式開發,還是團隊協作式開發,這六個階段都是不可缺少的。根據項目管理知識體系中的定義,軟件項目管理可以分爲以下幾個方面:

(1)集成管理:項目計劃制定、項目計劃實施等。

(2)範圍管理:範圍計劃編制、範圍定義覈實、任務協調等。

(3)時間管理:項目任務分解、進度計劃編制、任務持續時間估算、進度計劃控制等。

(4)成本管理:資源計劃編制、成本估算、成本預算和控制等。

(5)質量管理:項目質量計劃編制、軟件質量保證、軟件質量控制、軟件過程改進等。

(6)人力資源管理:組織的計劃編制、人員職責的分配、團隊合作發展等。

(7)溝通管理:建立溝通渠道、信息交換管理等。

(8)風險管理:項目風險識別、項目風險分析、項目風險優先分析、項目風險控制等。

(9)採購管理:採購計劃編制、合同管理、合同收尾等。

在軟件項目管理中,有幾個關鍵因素,它影響着軟件項目的成敗,下面就這幾個關鍵因素進行探討。

  4.軟件項目管理的關鍵因素

  (1)合理配置人力資源

衆所周知,人是決定組織和項目成敗的關鍵,也是影響軟件開發質量的最關鍵的因素,因此軟件項目管理應該以人爲本,有效管理人力資源,合理配置人力資源。應該根據項目組成員的組成結構情況,合理搭配,充分發揮每位成員的技術專長,做到人盡其能;組織組建好項目團隊,培養團結一致的團隊精神,規範良好的職業道德;建立健全完備的獎懲制度,落實權利責任制度,做到權責明確,並在項目進程中能及時化解各種人事衝突,營造良好的團隊協作環境

  (2)順暢有效的溝通管理

軟件項目管理是一項知識性極強的工作,對人的依賴性比其它行業更爲突出,因此加強人員之間的有效溝通,實現順暢有效的溝通管理是軟件項目成功的另一個關鍵因素。溝通管理是一個收集、存儲、配置和發佈項目生命週期內所形成的各種信息的過程,它把成功所必須的因素——人、想法和信息之間提供了一個關鍵連接。對於項目來說,要科學地組織、指揮、協調和控制項目的實施過程,就必須進行信息溝通。這裏的溝通包括兩個方面,一個方面是軟件項目組開發人員與用戶的溝通,另一方面則是軟件項目組內人員的溝通。前者是做好軟件需求分析所必須的;而後者則有助於組內成員的彼此交流,減少理解錯位,實現信息暢通,改善人際關係,化解可能的衝突,加快項目的進度。溝通的方式是多樣的,可以採用常用的項目組例會方式,可以通過面談彼此交換意見;也可以利用方便快捷的通訊工具如電話、EMAIL、傳真等方式加強信息的溝通;總之,順暢有效的信息溝通,可以取得彼此的理解,剔除項目進度中的“BUG”,有利於項目按計劃順利開展。

  (3)正確可靠的軟件需求

軟件需求是軟件項目的根本所在,需求不明確,軟件項目開發範圍不確定,項目開發就會失去方向,容易造成開發的產品和用戶實際的需求“南轅北轍”,最終導致項目的失敗。一個可靠的需求,也是項目管理的關鍵因素之一。軟件需求應當是項目有關的.人員一致同意的、清楚的、完整的、詳細的、可實現的和可測試的需求,開發人員應該反覆和用戶進行溝通,認真聽取用戶的意見,及時歸檔記錄,並適時發掘用戶的潛在需求,最大限度地滿足用戶的目標,開發出用戶最理想的產品。最後應拿出開發人員和用戶一致認可的軟件需求說明書,並加以確認。在項目開始以後,應該盡最大可能不更改需求,要與用戶進行很好地溝通,以確保開發過程能按照需求進行,減少需求變更帶來的風險!因此,正確可靠的軟件需求也是項目成功的重要保障。   (4)周密可行的項目計劃

“凡事預則立,不預則廢。”軟件項目實施過程中,還必須有一個周密可行的項目計劃。軟件項目計劃的目的是爲完成軟件工程和管理軟件項目而制定的合理的計劃,它包括以下步驟:估計軟件產品規模及所需的資源,制定軟件開發計劃、軟件測試計劃和軟件質量保證計劃,評估軟件風險和協商約定風險解決辦法,而且要標誌出幾個階段性的里程碑,這些都是極爲關鍵的。因此,要想成功進行項目管理,就要對計劃高度重視、周密制定、嚴格執行,只有嚴格執行計劃才能使項目管理得以成功實施。

  (5)健全完備的文檔資料

軟件項目的文檔作爲軟件產品的主要形式之一,集中體現了軟件人員的勞動成果,軟件研製是腦力勞動,具有不可見性,爲了實現對軟件研製過程的管理,在軟件研製過程的每個階段,都應按規定的格式編寫出完整準確的文檔,文檔是軟件中不可缺少的組成部分,在整個軟件生存週期中均佔據重要位置。軟件研製過程中文檔可以作爲開發人員在一定階段內的工作成果和結束標誌;還可以向管理人員提供軟件開發過程中的進展和情況,把軟件開發過程中的一些“不可見的”事物轉換成“可見的”文字資料。此外,健全完備的文檔資料在項目接近尾聲時也便於軟件的測試與後期的維護工作,在項目結尾時,健全完備的文檔資料也爲人員的培訓和項目的再開發發揮重要作用。因此健全完備的文檔資料是軟件項目成功的重要因素,在項目管理過程中應該高度重視。

  (6)嚴格的風險管理

軟件項目的管理是存在風險的,我們應該提前重視風險,並有所防範,最大限度減少風險的發生,實行嚴格的風險管理是有效的手段,建立風險項目檢查表是進行風險識別的有效方法。主要涉及到產品規模風險檢查、過程風險檢查、技術風險檢查、開發環境風險檢查等。

  5.結論

軟件項目管理是門科學,也是一門藝術;它是一個複雜的系統,決定了軟件項目成敗的關鍵。軟件項目管理雖然沒有非常高深的理論,但要真正實施起來,也絕非易事。因此在軟件開發過程中,我們應該理論聯繫實踐,積極從實踐中積累經驗,注意項目管理中的關鍵因素,實施有效的管理,使軟件項目獲得成功。