軟件項(xiàng)目管理的一般過(guò)程
軟件項(xiàng)目管理有四個(gè)階段:項(xiàng)目啟動(dòng)、項(xiàng)目規(guī)劃、項(xiàng)目跟蹤控制、項(xiàng)目結(jié)束。每個(gè)階又有各自的過(guò)程。
啟動(dòng)是項(xiàng)目管理的第一個(gè)階段,該階段主要確定項(xiàng)目的目標(biāo)和范圍。其中包括項(xiàng)目開(kāi)發(fā)的周期,軟件要完成的主要功能,軟件的限制條件、性能、穩(wěn)定性。這一階段,項(xiàng)目的范圍要進(jìn)行明確的定義,項(xiàng)目目標(biāo)必須可實(shí)現(xiàn)度量。這一階段如果管理的不好,將會(huì)導(dǎo)致項(xiàng)目的終失敗。項(xiàng)目規(guī)劃是建立項(xiàng)目行動(dòng)指南的基準(zhǔn),該階段包括軟件項(xiàng)目的估算、風(fēng)險(xiǎn)分析、進(jìn)度規(guī)劃、項(xiàng)目參與人員的選擇與配備。項(xiàng)目跟蹤控制包括按計(jì)劃執(zhí)行項(xiàng)目和控制項(xiàng)目,以便使項(xiàng)目在預(yù)算內(nèi)、按進(jìn)度、使用戶滿意的完成。這階段包括:測(cè)量實(shí)際的進(jìn)度,并與計(jì)劃進(jìn)度相比較。項(xiàng)目結(jié)束階段主要是確認(rèn)項(xiàng)目實(shí)施的各項(xiàng)成果,進(jìn)行項(xiàng)目的接交合清算,同時(shí)對(duì)項(xiàng)目進(jìn)行后的評(píng)審,并對(duì)項(xiàng)目進(jìn)行總結(jié)。軟件管理的四個(gè)階段,其中規(guī)劃、跟蹤控制理論上認(rèn)為是軟件項(xiàng)目管理的核心和重點(diǎn),本文則認(rèn)為啟動(dòng)階段是軟件項(xiàng)目管理中的重點(diǎn)。
萬(wàn)事開(kāi)頭難,做任何事情如果有個(gè)好的開(kāi)端,可以起到事半功倍的效果。古希臘哲學(xué)家柏拉圖說(shuō)過(guò):“開(kāi)端是工作重要的環(huán)節(jié)。”良好的開(kāi)端好比一把開(kāi)啟智慧的鑰匙,好比通向成功之路的鋪路石,良好的開(kāi)端是成功的一半。如果說(shuō)成功是一把火,那么良好的開(kāi)端是火種;如果說(shuō)成功是河流,那么良好的開(kāi)端是水之源。
軟件項(xiàng)目啟動(dòng)階段,首先要確定軟件項(xiàng)目范圍和需求。項(xiàng)目范圍管理和需求管理都是軟件管理中的重要過(guò)程。項(xiàng)目范圍是軟件項(xiàng)目的基本框架,是項(xiàng)目管理者和建設(shè)者系統(tǒng)地、邏輯地分析項(xiàng)目關(guān)鍵問(wèn)題的要素,也是項(xiàng)目相關(guān)人項(xiàng)目建設(shè)內(nèi)容達(dá)成一致的重要依據(jù)。如果在啟動(dòng)階段項(xiàng)目范圍模糊不清,必將造成項(xiàng)目在啟動(dòng)后進(jìn)行不斷的變更,因此項(xiàng)目風(fēng)險(xiǎn)不斷增加,而且在項(xiàng)目驗(yàn)收階段缺乏驗(yàn)收依據(jù)。啟動(dòng)軟件項(xiàng)目的原因是由于軟件需求存在,軟件需求是每個(gè)軟件開(kāi)發(fā)過(guò)程中的基礎(chǔ)。需求是一個(gè)軟件項(xiàng)目的開(kāi)端,是項(xiàng)目建設(shè)的基石。因此,一個(gè)軟件項(xiàng)目成功的關(guān)鍵因素是對(duì)需求分析把握的準(zhǔn)確程度,如果項(xiàng)目需求分析不準(zhǔn)確,獲取的軟件需求不真實(shí),必將給軟件開(kāi)發(fā)埋下隱患,軟件開(kāi)發(fā)成功是很難想象的。
啟動(dòng)階段要進(jìn)行項(xiàng)目團(tuán)隊(duì)建設(shè),團(tuán)隊(duì)建設(shè)包括項(xiàng)目經(jīng)理的選擇、項(xiàng)目參與人員的確定等。人是軟件項(xiàng)目中重要的因素,是其他的一切基礎(chǔ),因此啟動(dòng)階段的團(tuán)隊(duì)建設(shè)非常重要。在啟動(dòng)階段如果沒(méi)有重視團(tuán)隊(duì)的建設(shè),項(xiàng)目經(jīng)理選擇不當(dāng),項(xiàng)目成員專業(yè)結(jié)構(gòu)不合理或業(yè)務(wù)能力不能勝任此軟件項(xiàng)目,軟件開(kāi)發(fā)的效率將極其低下,開(kāi)發(fā)出的軟件項(xiàng)目,其質(zhì)量將大打折扣,軟件失敗風(fēng)險(xiǎn)將大增。
因此,本文認(rèn)為在軟件開(kāi)發(fā)管理的重點(diǎn)應(yīng)放在軟件項(xiàng)目的啟動(dòng)階段,在啟動(dòng)階段要注重軟件項(xiàng)目的需求分析,注重項(xiàng)目的風(fēng)險(xiǎn)評(píng)估,注重項(xiàng)目的業(yè)務(wù)背景研究。
軟件項(xiàng)目管理在具體業(yè)務(wù)軟件系統(tǒng)開(kāi)發(fā)中的重要作用
信息系統(tǒng)項(xiàng)目的開(kāi)發(fā)過(guò)程不同于其他產(chǎn)品的制造過(guò)程,在很大程度上,信息系統(tǒng)開(kāi)發(fā)是計(jì)算機(jī)技術(shù)、通信技術(shù)、信息技術(shù)加上具體的業(yè)務(wù)工作交叉的實(shí)踐性工程項(xiàng)目。系統(tǒng)能否開(kāi)發(fā)成功,不僅取決于成熟技術(shù)和先進(jìn)的開(kāi)發(fā)方法,本文認(rèn)為更重要的取決于參與開(kāi)發(fā)的技術(shù)人員的能力,參與開(kāi)發(fā)的業(yè)務(wù)人員的業(yè)務(wù)素質(zhì)和對(duì)本專業(yè)掌握的水平。經(jīng)常從事系統(tǒng)軟件開(kāi)發(fā)工作的人都知道,軟件開(kāi)發(fā)過(guò)程中具有很多的不可預(yù)知性,這也是信息系統(tǒng)項(xiàng)目的一個(gè)特點(diǎn)。在開(kāi)發(fā)過(guò)程中,如何將這種不可預(yù)知的東西變成可以預(yù)知的東西。對(duì)這一問(wèn)題,項(xiàng)目管理是好的解決問(wèn)題的工具。因此,在信息系統(tǒng)開(kāi)發(fā)活動(dòng)中引入規(guī)范、科學(xué)、系統(tǒng)的軟件項(xiàng)目管理方法是非常必要的。
本文認(rèn)為在軟件項(xiàng)目中引進(jìn)項(xiàng)目管理時(shí)要注意軟件項(xiàng)目管理與其他管理相似,都是管理人員根據(jù)經(jīng)驗(yàn)、事實(shí)和原理做出決策。因此,在信息系統(tǒng)開(kāi)發(fā)活動(dòng)過(guò)程中實(shí)施項(xiàng)目管理時(shí),應(yīng)該接合實(shí)際,靈活運(yùn)用項(xiàng)目管理方法和使用管理工具,切勿生搬硬套。
軟件項(xiàng)目需求及獲取方法
軟件系統(tǒng)的需求是指用戶對(duì)軟件的功能的要求,是用戶希望軟件系統(tǒng)能做什么事情,完成什么樣的功能,達(dá)到什么樣的性能。軟件需求不像硬件需求,有形的、客觀的、可描述的、可檢測(cè)的,軟件需求具有模糊性、不確定性、變化性和主觀的特點(diǎn)。
軟件需求包括功能需求、性能需求、環(huán)境需求、資源需求、成本消耗需求、開(kāi)發(fā)進(jìn)度需求、現(xiàn)實(shí)約束、預(yù)先估計(jì)以后系統(tǒng)可能達(dá)到的目標(biāo)等。從項(xiàng)目開(kāi)發(fā)的角度看,軟件需求主要包括兩大類型:功能需求和非功能需求。其中,功能需求是主要的需求,需要計(jì)算機(jī)解決的問(wèn)題,是對(duì)數(shù)據(jù)的處理的要求。功能需求規(guī)定了系統(tǒng)必須執(zhí)行的功能。而非功能需求是一些限制性的要求,是對(duì)實(shí)際使用環(huán)境所做的要求,如性能要求、安全要求、可靠性要求等。非功能要求比功能要求更嚴(yán)格,更不容易滿足,這是因?yàn),如果不能滿足非功能的要求,系統(tǒng)將無(wú)法運(yùn)行。
需求獲取作為項(xiàng)目伊始的活動(dòng),是非常重要的。眾所周知,如果需求調(diào)研不充分、用戶需求描述不完整或不準(zhǔn)確,項(xiàng)目成功的可能性幾乎等于零。因此,根據(jù)軟件項(xiàng)目特點(diǎn),采取相應(yīng)的需求獲取方法,是項(xiàng)目取得成功的關(guān)鍵因素。
在實(shí)際系統(tǒng)開(kāi)發(fā)中,經(jīng)常會(huì)發(fā)現(xiàn),由于需求方缺乏軟件系統(tǒng)開(kāi)發(fā)的專業(yè)知識(shí)和項(xiàng)目管理經(jīng)驗(yàn),往往一開(kāi)始自己也不知道要開(kāi)發(fā)什么樣的系統(tǒng),盡管對(duì)業(yè)務(wù)很熟,但對(duì)數(shù)據(jù)、業(yè)務(wù)流程的整理和歸納上很難符合系統(tǒng)開(kāi)發(fā)的要求,經(jīng)常是走一步看一步,不斷地提出和更改需求,使得系統(tǒng)開(kāi)發(fā)方難于應(yīng)付。另一方面,開(kāi)發(fā)方由于行業(yè)知識(shí)的缺乏和需求分析人員水平的低下,不能正確或完全理解用戶的需求說(shuō)明,而又沒(méi)有加以嚴(yán)格的評(píng)審、確認(rèn),經(jīng)常是以想當(dāng)然的方法進(jìn)行系統(tǒng)設(shè)計(jì)。系統(tǒng)開(kāi)發(fā)出來(lái)后,與用戶的期望相差甚遠(yuǎn)。因此,需求分析必須注重雙方理解和認(rèn)識(shí)的一致,逐項(xiàng)逐條地進(jìn)行確認(rèn)。為了作到這一點(diǎn),根據(jù)項(xiàng)目特點(diǎn)采用合適的需求獲取方法顯得非常重要。
軟件開(kāi)發(fā)需求管理是軟件項(xiàng)目管理中一項(xiàng)十分重要的工作,在眾多失敗的軟件項(xiàng)目中,由于需求原因?qū)е碌恼枷喈?dāng)大的比例,因此,需求管理將對(duì)軟件項(xiàng)目能否終獲得成功產(chǎn)生至關(guān)重要的影響。但在實(shí)際軟件開(kāi)發(fā)過(guò)程中,很多開(kāi)發(fā)人對(duì)需求的認(rèn)識(shí)還遠(yuǎn)遠(yuǎn)不夠。本人的實(shí)際經(jīng)驗(yàn)來(lái)看,軟件開(kāi)發(fā)工作不是簡(jiǎn)單的技術(shù)工作,而是一項(xiàng)系統(tǒng)的軟件需求開(kāi)發(fā)管理工作。項(xiàng)目管理人員要想做好軟件項(xiàng)目管理工作,必須要研究如何利用需求管理理論和方法,獲取需求;采取什么方法對(duì)軟件系統(tǒng)功能進(jìn)行描述--需求建模。其目的是理解用戶的功能要求,澄清模糊的功能需求,使軟件工程師和軟件用戶對(duì)系統(tǒng)功能的理解達(dá)到一致。實(shí)際工作經(jīng)驗(yàn)來(lái)說(shuō),不管采用什么方法,都要體現(xiàn)以用戶為中心的思想,因?yàn)檐浖K的主人是用戶,這一點(diǎn)非常重要。