軟件項目管理中的需求管理要以用戶爲中心

現在我們經常說的“項目”,無論是中國還是外國,二千多年前就已經存在。聞名世界的中國萬里長城、大運河,埃及的金字塔,古羅馬的供水渠等,這些不朽的偉大工程都是衆人稱頌的典型項目。在古代這些巨大而複雜的項目建設過程中,存在很多的科學經驗和一些固定的方法,只是在當時科技和文化發展水平很低的情況下,人們很難能總結歸納出能在工程中重複使用的方法,就更不用說形成系統的知識體系了。

項目管理的概念首先出現在國外。第二次世界大戰期間,戰爭需要新式武器、探測需要雷達設備等,這些未曾做過的項目接踵而至,不但技術複雜,參與人員衆多,而且時間非常緊迫。這樣迫使人們開始關注項目管理的有效方法,尋求切實有效的科學方法來實現既定的目標。“項目管理”這個詞就這樣應運而生並且開始被關注和認識。

在中國真正稱得上中國項目管理的里程碑工作,是著名科學家華羅庚教授和錢學森教授分別倡導的統籌法和系統工程。他們將以統籌法爲基礎的項目管理水平提高到一個新的高度,其中特別有意義的是通過應用統籌法模擬完整的作業流程、測度資金流、在特定目標下優化資源配置等方面的實踐,提供了對大型項目進行有效管理的經驗和方法。

進入20世紀90年代,項目管理有了新的進展。爲了在迅猛變化、急劇競爭的市場中迎接經濟全球化、一體化的挑戰,項目管理更加註重人的因素、注重顧客、注重柔性管理,力求在變革中生存和發展。在這個階段,應用領域進一步擴大,尤其在新興產業中得到了迅速的發展,比如電訊、軟件、信息、金融、醫藥等現代項目管理的任務已不僅僅是執行任務,而且還要開發項目、經營項目,以及爲經營項目完成後形成的設施、產品和其他成果準備必要的條件。

近年來,國際上項目管理研究與應用發展出現一些值得注意的動向,主要有:

1)內容範疇不斷擴展。例如,從工程項目的管理擴展到其它項目的管理;從主要針對項目執行階段的管理擴展到系統地考慮項目的全壽命管理,包括項目需求論證,前期決策,計劃實施,直到項目結束。

2)高新技術項目管理的需求不斷增大。這賦予了現代項目管理中戰略性、風險性、競爭性、規模化、複雜化、高附加值和信息密集等明顯的特徵。

3)知識體系不斷完善。在需求的催動下,項目管理的理論與方法也隨之發展、日趨成熟,成爲集多領域知識爲一體的綜合性交叉學科。包括某些通用的管理學知識,各種不同類別項目所共同需要的項目管理基礎知識,以及各應用領域項目所需要的特殊管理知識。

4)計算機與信息技術支撐平臺快速改善。使用國際互聯網(Internet)和企業網(Intranet)等現代化的通訊技術,對項目全過程中產生的信息進行收集、儲存、檢索、分析和分發,以改善項目生命期內的決策和信息的溝通。各種類型的項目管理軟件(如預算軟件、進度控制軟件、風險分析軟件等)也在不斷地被完善和開發。

軟件項目管理特點

軟件項目管理是目前不斷髮展的新興邊緣學科,它綜合了管理科學、信息科學、系統科學、行爲科學、計算機科學和通信技術等各學科知識,同時也是實踐性很強的學科。

軟件項目管理學科的發展和信息系統、信息技術的發展是分不開的。隨着信息技術的迅速發展及其在各項業務領域中的廣泛應用,信息系統的規模和複雜性不斷增加,其開發工作也變成一項複雜任務,靠經驗或採取以往作坊式的開發方式已越來越不適應發展的需要。因此相應的管理方法和技能便應運而生,形成了軟件項目管理。就當前軟件項目管理在信息系統開發中的運用來說,特別在軟件系統項目研發中,軟件項目管理起着舉足輕重的作用。目前,無論是軟件系統的研發公司還是政府機構都在積極將軟件項目管理引入信息系統開發建設活動中,對開發整個過程實行有效的科學管理,它貫穿於信息系統開發的整個生命週期。

軟件項目是一種特殊的項目,它創造的產品或者服務是邏輯載體,沒有具體的形狀和尺寸,只有邏輯的規模和運行的效果。軟件項目不同於其他項目,不僅是一個新領域而且涉及的因素比較多,管理也比較複雜。軟件項目除具有一般項目的特點外,有其自己的特點,在做軟件項目管理的過程中只有瞭解軟件項目的特點,纔能有針對性的選擇合適的管理方法,使項目取得成功。軟件項目主要有以下特點:

1)軟件項目是一種邏輯實體,不是具體的物理實體,它具有抽象性。這使得軟件項目與工程實體有很大的區別。

2)軟件的生產與硬件不同,開發過程沒有明顯的製造過程,也不存在重複生產過程。

3)軟件沒有硬件的機械磨損和老化問題。然而,軟件也存在退化問題,在軟件生存期中,軟件環境的變化將導致軟件失效率的提高。

4)軟件開發至今沒有擺脫手工的開發模式,軟件產品基本上是“定製”的,做不到利用現有的軟件組件組裝成所需要的軟件。

5)軟件本身是複雜的。它的複雜性源於應用領域實際問題的複雜性和應用軟件技術的複雜性。

6)軟件的成本相當高。軟件開發需要投入大量的、複雜的、高強度的腦力勞動,因此成本比較高。

7)軟件開發和軟件項目管理工作涉及到很多社會因素,要受到機構政治、文化、決策體系和管理方式的限制。

以上這些特點,在系統開發過程中將導致軟件系統在需求開發階段往往是系統建設意圖不明,項目目標不清楚,很難將其具體化。導致項目的不確定性,軟件項目多數涉及企業或政府部門的管理,而管理本身就是不確定的,另一方面,軟件項目的不確定性也指在執行過程中還會遇到各種始料未及的“風險”,使得項目不能按原有的計劃來運行。導致需求範圍不好界定,用戶需要的東西自己說不清或不容易被開發人員理解,項目範圍需要在項目實施過程中不斷清晰。使得項目具有彈性,不同的開發單位,不同的項目經理去做相同的項目,結果會有很大區別。使得項目建設時間具有緊迫性,任何項目都有周期限制,但是軟件項目的特點決定了其在這方面有更加嚴格的要求。隨着信息技術的飛速發展,軟件項目的生命週期越來越短,時間甚至成爲項目成功的決定性因素。使得項目具有獨特性,按照項目定義可知,每一個項目都是惟一的,世界上沒有完全一樣的兩個項目。但是這一特性在軟件項目領域表現得更爲突出,軟件項目不僅向客戶提供產品,更重要的是根據客戶的要求提供不同的解決方案。即使有現成的解決方案,也需要根據客戶的特殊要求進行一定的客戶化工作。

軟件項目管理的一般過程

軟件項目管理有四個階段:項目啓動、項目規劃、項目跟蹤控制、項目結束。每個階又有各自的過程。

啓動是項目管理的第一個階段,該階段主要確定項目的目標和範圍。其中包括項目開發的週期,軟件要完成的主要功能,軟件的限制條件、性能、穩定性。這一階段,項目的範圍要進行明確的定義,項目目標必須可實現度量。這一階段如果管理的不好,將會導致項目的最終失敗。項目規劃是建立項目行動指南的基準,該階段包括軟件項目的估算、風險分析、進度規劃、項目參與人員的選擇與配備。項目跟蹤控制包括按計劃執行項目和控制項目,以便使項目在預算內、按進度、使用戶滿意的完成。這階段包括:測量實際的進度,並與計劃進度相比較。項目結束階段主要是確認項目實施的各項成果,進行項目的接交合清算,同時對項目進行最後的評審,並對項目進行總結。軟件管理的四個階段,其中規劃、跟蹤控制理論上認爲是軟件項目管理的核心和重點,本文則認爲啓動階段是軟件項目管理中的重點。

萬事開頭難,做任何事情如果有個好的開端,可以起到事半功倍的效果。古希臘哲學家柏拉圖說過:“開端是工作最重要的環節。”良好的開端好比一把開啓智慧的鑰匙,好比通向成功之路的鋪路石,良好的開端是成功的一半。如果說成功是一把火,那麼良好的開端就是火種;如果說成功是河流,那麼良好的開端就是水之源。

軟件項目啓動階段,首先就要確定軟件項目範圍和需求。項目範圍管理和需求管理都是軟件管理中的重要過程。項目範圍是軟件項目的基本框架,是項目管理者和建設者系統地、邏輯地分析項目關鍵問題的要素,也是項目相關人就項目建設內容達成一致的重要依據。如果在啓動階段項目範圍模糊不清,必將造成項目在啓動後進行不斷的變更,因此項目風險不斷增加,而且在項目驗收階段缺乏驗收依據。啓動軟件項目的原因是由於軟件需求存在,軟件需求是每個軟件開發過程中的基礎。需求是一個軟件項目的開端,是項目建設的基石。因此,一個軟件項目成功的關鍵因素就是對需求分析把握的準確程度,如果項目需求分析不準確,獲取的軟件需求不真實,必將給軟件開發埋下隱患,軟件開發成功是很難想象的。

啓動階段要進行項目團隊建設,團隊建設包括項目經理的選擇、項目參與人員的確定等。人是軟件項目中最重要的因素,是其他的一切基礎,因此啓動階段的團隊建設非常重要。在啓動階段如果沒有重視團隊的建設,項目經理選擇不當,項目成員專業結構不合理或業務能力不能勝任此軟件項目,軟件開發的效率將極其低下,開發出的軟件項目,其質量將大打折扣,軟件失敗風險將大增。

因此,本文認爲在軟件開發管理的重點應放在軟件項目的啓動階段,在啓動階段要注重軟件項目的需求分析,注重項目的風險評估,注重項目的業務背景研究。

軟件項目管理在具體業務軟件系統開發中的重要作用

信息系統項目的開發過程不同於其他產品的製造過程,在很大程度上,信息系統開發是計算機技術、通信技術、信息技術加上具體的業務工作交叉的實踐性工程項目。系統能否開發成功,不僅取決於成熟技術和先進的開發方法,本文認爲更重要的取決於參與開發的技術人員的能力,參與開發的業務人員的業務素質和對本專業掌握的水平。經常從事系統軟件開發工作的人都知道,軟件開發過程中具有很多的不可預知性,這也是信息系統項目的一個特點。在開發過程中,如何將這種不可預知的東西變成可以預知的東西。對這一問題,項目管理就是最好的解決問題的工具。因此,在信息系統開發活動中引入規範、科學、系統的軟件項目管理方法是非常必要的。

本文認爲在軟件項目中引進項目管理時要注意軟件項目管理與其他管理相似,都是管理人員根據經驗、事實和原理做出決策。因此,在信息系統開發活動過程中實施項目管理時,應該接合實際,靈活運用項目管理方法和使用管理工具,切勿生搬硬套。

軟件項目需求及獲取方法

軟件系統的需求是指用戶對軟件的功能的要求,就是用戶希望軟件系統能做什麼事情,完成什麼樣的功能,達到什麼樣的性能。軟件需求不像硬件需求,有形的、客觀的、可描述的、可檢測的,軟件需求具有模糊性、不確定性、變化性和主觀的特點。

軟件需求包括功能需求、性能需求、環境需求、資源需求、成本消耗需求、開發進度需求、現實約束、預先估計以後系統可能達到的目標等。從項目開發的角度看,軟件需求主要包括兩大類型:功能需求和非功能需求。其中,功能需求是主要的需求,需要計算機解決的問題,就是對數據的處理的要求。功能需求規定了系統必須執行的功能。而非功能需求是一些限制性的要求,是對實際使用環境所做的要求,如性能要求、安全要求、可靠性要求等。非功能要求比功能要求更嚴格,更不容易滿足,這是因爲,如果不能滿足非功能的要求,系統將無法運行。

需求獲取作爲項目伊始的活動,是非常重要的。衆所周知,如果需求調研不充分、用戶需求描述不完整或不準確,項目成功的可能性幾乎等於零。因此,根據軟件項目特點,採取相應的需求獲取方法,是項目取得成功的關鍵因素。

在實際系統開發中,經常會發現,由於需求方缺乏軟件系統開發的專業知識和項目管理經驗,往往一開始自己也不知道要開發什麼樣的系統,儘管對業務很熟,但對數據、業務流程的整理和歸納上很難符合系統開發的要求,經常是走一步看一步,不斷地提出和更改需求,使得系統開發方難於應付。另一方面,開發方由於行業知識的缺乏和需求分析人員水平的低下,不能正確或完全理解用戶的需求說明,而又沒有加以嚴格的評審、確認,經常是以想當然的方法進行系統設計。系統開發出來後,與用戶的期望相差甚遠。因此,需求分析必須注重雙方理解和認識的一致,逐項逐條地進行確認。爲了作到這一點,根據項目特點採用合適的需求獲取方法就顯得非常重要。

軟件開發需求管理是軟件項目管理中一項十分重要的工作,在衆多失敗的軟件項目中,由於需求原因導致的佔相當大的比例,因此,需求管理將對軟件項目能否最終獲得成功產生至關重要的影響。但在實際軟件開發過程中,很多開發人對需求的認識還遠遠不夠。就本人的實際經驗來看,軟件開發工作不是簡單的技術工作,而是一項系統的軟件需求開發管理工作。項目管理人員要想做好軟件項目管理工作,就必須要研究如何利用需求管理理論和方法,獲取需求;採取什麼方法對軟件系統功能進行描述--需求建模。其目的是理解用戶的功能要求,澄清模糊的功能需求,使軟件工程師和軟件用戶對系統功能的理解達到一致。就實際工作經驗來說,不管採用什麼方法,都要體現以用戶爲中心的思想,因爲軟件最終的主人是用戶,這一點非常重要。

發佈了28 篇原創文章 · 獲贊 2 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章