如何有效實現(xiàn)軟件的需求管理(1)
之前把軟件工程中的測試部分,文檔管理部分都已經(jīng)做了一些簡單的介紹,因為都是我實際工作中經(jīng)常接觸的,所以也算是我的一些經(jīng)驗吧,不過我也不是每個部分都接觸得很深入,總是有些地方講得不太好的,也請大家諒解,希望大家能提出寶貴經(jīng)驗,呵呵。下面是之前講過部分的鏈接(點擊就可以訪問),如果之前沒看過我的文章的話,有空可以看看。
3、【談軟件開發(fā)過程管理系統(tǒng)、版本控制系統(tǒng)及它們之間的集成】
4、【文檔管理】
但是軟件工程中除了我已經(jīng)講過的部分,其實還有幾個部分還沒講了,因為我們公司是用 TechExcel 的 DevSuite 系統(tǒng)的,所以還是借用他們的軟件工程過程圖來給大家講一下。
看下圖,之前講了知識管理(文檔管理),測試管理,開發(fā)管理(任務(wù)跟蹤),PPM,這篇文章的話,我會講一下需求管理,至于其它幾個部分,比如項目規(guī)劃管理,我還在考慮之中,因為有些知識在前面幾篇文章里已經(jīng)部分提到了,所以講起來可能就重復(fù)了。Anyway,先不管了,反正我這篇“需求管理”還是會正常寫下去,謝謝大家閱讀!
編輯本段十三、PPM項目組合管理
PMI對組合管理的定義為“Project Portfolio management refers to the selection and support of projects or program investments. These investments in projects and programs are guided by the organization’s strategic plan and available resources .”,即項目組合管理是指在可利用的資源和企業(yè)戰(zhàn)略計劃的指導下,進行多個項目或項目群投資的選擇和支持。項目組合管理是通過項目評價選擇、多項目組合優(yōu)化,確保項目符合企業(yè)的戰(zhàn)略目標,從而實現(xiàn)企業(yè)收益最大化。
項目和項目組合管理(PPM)是項目型組織創(chuàng)新的系統(tǒng)化管理理論和實踐,過去項目管理的理論和工具都是基于單個項目管理的,解決的問題是項目如何使干系人滿意,如何按時、在預(yù)算內(nèi)成功交付項目。對于組織級層面如何管理項目,例如如何使項目目標與組織的業(yè)務(wù)目標一致,如何跨項目優(yōu)化利用組織的資金和資源等,一直沒有很好的理論和方法的支持。組合(Portfolio)管理是金融領(lǐng)域的方法論,在2000年左右被引入到項目管理領(lǐng)域,嘗試解決組織級項目管理問題。
自2002年初開始,PPM方法論首先在產(chǎn)品研發(fā)管理領(lǐng)域取得了重大成功,并逐漸擴展到IT治理和專業(yè)服務(wù)領(lǐng)域。這期間,歐美出現(xiàn)了一批非常成功的PPM獨立軟件廠商。從2005年開始,國際上PPM進入整合階段,IBM、CA、HP、Microsoft、Oracle、藍云軟件等國際知名IT企業(yè)陸續(xù)通過收購進入PPM領(lǐng)域。PPM是未來項目型組織,尤其是IT組織管理優(yōu)化的方向,這一點已成為業(yè)界共識。著名研究機構(gòu)Forrester Research指出:“PPM已經(jīng)成為IT企業(yè)的ERP”。
什么是軟件需求呢?為什么它需要管理呢?
軟件需求完全嚴格來解釋就是:
(1)用戶解決問題或達到目標所需條件或權(quán)能(Capability)。
(2)系統(tǒng)或系統(tǒng)部件要滿足合同、標準、規(guī)范或其它正式規(guī)定文檔所需具有的條件或權(quán)能。
(3)一種反映上面(1)或(2)所述條件或權(quán)能的文檔說明
也許看起來有點深奧,其實簡單來說,軟件需求就是一個軟件要實現(xiàn)的功能,當然這里所謂的“功能”可能分為兩種情況,一種是有形的,一種是無形的:
● “有形”的應(yīng)該很好理解,你實際可以用到的功能,比如在Word文檔里能把字加粗。
● “無形”的其實也好理解,雖然你平常用不到,但是還是能感受到的,比如說軟件的運行速度,穩(wěn)定性,還有比如這個軟件要達到什么目的(比如Word的目的是可以讓你處理文字信息)。
當然,其實最終所有“無形”的需求還是需要靠一個個的“有形”的需求來實現(xiàn),只是有些“有形“的需求即使實現(xiàn)了客戶也無法直接看到,只有設(shè)計、開發(fā)與測試才能看到它們。
那為什么要對需求進行管理呢?
軟件需求是隨著計算機的發(fā)展而發(fā)展的,在計算機發(fā)展早期,軟件規(guī)模很小,所以當時大家關(guān)注的是編碼,而對于需求并不怎么關(guān)注,后來隨著“軟件危機”的出現(xiàn),誕生了軟件工程,而需求階段就是其第一階段,至此,軟件需求(也稱之為需求分析)階段開始慢慢被關(guān)注。
大家都知道,“軟件危機”的原因是落后的軟件生產(chǎn)方式無法滿足迅速增長的計算機軟件需求,軟件系統(tǒng)的規(guī)模越來越大,復(fù)雜程度越來越高,軟件可靠性問題也越來越突出,原來的個人設(shè)計、個人使用的方式不再能滿足要求,迫切需要改變軟件生產(chǎn)方式,提高軟件生產(chǎn)率,軟件危機開始爆發(fā)。
而軟件需求分析階段作為軟件工程的第一階段,需要為一個軟件的開發(fā)搭好最初的框架并且還要考慮好后面可能的修改,所以對于軟件可靠性、易用性、可擴展性和可維護性來說,需求分析階段是及其重要的,直接關(guān)系到一個軟件是否能夠成功。
如果一個產(chǎn)品在需求分析階段沒有被設(shè)計好的話,在以后的各個階段,開發(fā)與維護的成本就會非常高,導致最后失敗的可能性就會非常大,著名的例子比如微軟的Vista,設(shè)計初期沒有考慮好兼容性與硬件,導致發(fā)布以后發(fā)現(xiàn)與其他軟件的兼容性很差,而且硬件要求又很高,很多客戶不買他們的賬,所以最后匆匆收場,趕緊推出Windows 7來,要知道Vista的開發(fā)成本估計要接近百億美金了,都還沒怎么賺錢就趕緊推出另外一個產(chǎn)品,足見其失敗了。
所以軟件需求分析階段對于軟件工程而言,已經(jīng)成為至關(guān)重要的階段,其實按照我的理解,它已經(jīng)成為軟件工程最重要的階段,記住,不是之一。(當然,我這里說的需求分析階段是包含軟件的設(shè)計階段的)
一個軟件的成功與否,在需求分析與設(shè)計階段已經(jīng)可以基本上預(yù)見了,因為需求分析與設(shè)計階段從概念上其實已經(jīng)把這個產(chǎn)品做出來了,而之后的編碼階段只是去實現(xiàn)它,讓產(chǎn)品能真正可以去用。那這個“實現(xiàn)”階段其實相對來說就不會那么重要了,所以現(xiàn)在很多跨國公司只在總部保留設(shè)計部門,研發(fā)部門都外包出去,就是這個原因。 “蘋果”就是這樣一個公司,把需求分析與設(shè)計工作做好,讓臺灣人去把產(chǎn)品做出來,最后得到一個完美的產(chǎn)品。
既然軟件需求階段已經(jīng)變成如此重要,那對它的管理也就相應(yīng)的變得特別重要了,只有把需求設(shè)計做好了,產(chǎn)品才有可能成功,所以我們就需要對這個階段進行有效的管理,而且是非常有效的管理!