前段時(shí)間,我出任項(xiàng)目經(jīng)理承接了一個(gè)中型軟件項(xiàng)目,公司再三叮嚀我一定要尊重客戶,充分滿足客戶需求。項(xiàng)目開(kāi)始比較順利,辛辛苦苦熬了幾個(gè)月的通宵,基本保持項(xiàng)目的正常進(jìn)度,客戶相當(dāng)滿意。但進(jìn)入后期以來(lái),客戶頻繁的需求變更卻帶來(lái)很多額外工作。
需求變更不但越來(lái)越多,更可怕的是為了節(jié)省時(shí)間,客戶不再向我申請(qǐng)變更,而是直接找程序員商量。程序員疲于應(yīng)付,往往直接改程序而不做任何記錄,很多相關(guān)文檔也忘記修改。很快就出現(xiàn)一個(gè)問(wèn)題,就是需求、設(shè)計(jì)和代碼無(wú)法保持一致,甚至沒(méi)有人能說(shuō)清楚現(xiàn)在系統(tǒng)到底改成什么樣。后來(lái)因頻繁出現(xiàn)改好的錯(cuò)誤又重新出現(xiàn),客戶投訴表示無(wú)法容忍這種低下的項(xiàng)目管理水平。這讓我很無(wú)奈,疑惑自己到底錯(cuò)在哪里。
什么是需求變更?
?。?)什么是需求分析?
要知道需求變更是什么,首先要知道什么是需求分析。
需求分析是一個(gè)復(fù)雜的問(wèn)題。作為軟件開(kāi)發(fā)人員,一定了解軟件工程學(xué),而這門科學(xué)的第一步就是需求分析。打開(kāi)任何一本軟件工程的書(shū)籍,翻看目錄就知道需求分析的地位。軟件需求分析是整個(gè)軟件開(kāi)發(fā)最關(guān)鍵的一個(gè)輸入。和傳統(tǒng)的生產(chǎn)企業(yè)相比較,軟件需求具有模糊性、不確定性、變化性和主觀性的特點(diǎn),它不像生產(chǎn)汽車、電腦等硬件的需求,是有形的、客觀的、可描述的、可檢測(cè)的。因此,軟件需求是軟件項(xiàng)目最難把握的問(wèn)題。
簡(jiǎn)單的說(shuō):需求分析是指理解客戶需求,就軟件功能與客戶達(dá)成一致,估計(jì)軟件風(fēng)險(xiǎn)和評(píng)估項(xiàng)目成本代價(jià),最終形成開(kāi)發(fā)計(jì)劃的一個(gè)復(fù)雜過(guò)程。需求分析主要包括:業(yè)務(wù)需求、客戶需求和功能需求三個(gè)部分。業(yè)務(wù)需求意為客戶對(duì)產(chǎn)品的目標(biāo)或者要求,客戶需求意為客戶在使用產(chǎn)品過(guò)程中需要完成的一系列任務(wù),功能需求則指定了產(chǎn)品系統(tǒng)必須提供的功能。
?。?)什么是需求變更?
在軟件開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)經(jīng)理所要面對(duì)的將是一系列和多方面的考驗(yàn)。其中,最讓開(kāi)發(fā)經(jīng)理頭痛的就是需求變更。根據(jù)軟件工程思想定義,需求說(shuō)明書(shū)一般要經(jīng)過(guò)論證,如果在需求說(shuō)明書(shū)經(jīng)過(guò)論證以后,需要在原有需求基礎(chǔ)上追加和補(bǔ)充新的需求,或?qū)υ行枨筮M(jìn)行修改和削減,均屬于需求變更。而且,客戶變更需求是軟件開(kāi)發(fā)與生俱來(lái)的特性,也是一個(gè)無(wú)法避免的事實(shí)。
需求變更好比是萬(wàn)惡之源,為項(xiàng)目的正常開(kāi)展帶來(lái)不盡的麻煩。需求變更的表現(xiàn)形式是多方面的,如客戶臨時(shí)改變想法、項(xiàng)目預(yù)算增加或減少、客戶對(duì)功能的需求改變等。需求變更問(wèn)題是每個(gè)開(kāi)發(fā)人員最頭痛的問(wèn)題。因?yàn)橐坏┌l(fā)生了需求變化,就不得不重新修改設(shè)計(jì)、重寫(xiě)代碼、修改測(cè)試用例、調(diào)整項(xiàng)目計(jì)劃等。這時(shí),如果開(kāi)發(fā)團(tuán)隊(duì)缺少明確的需求變更控制過(guò)程或采用的變更控制無(wú)效,很可能會(huì)造成開(kāi)發(fā)進(jìn)度拖延、成本超支、人員士氣低落,而且越往后的需求變更產(chǎn)生的風(fēng)險(xiǎn)將越大,甚至導(dǎo)致整個(gè)項(xiàng)目失敗。
需求變更無(wú)可避免
對(duì)于需求變更,我們總認(rèn)為能夠完全掌握它,可實(shí)際情況是——需求變更往往在所難免。以前出現(xiàn)這種情況時(shí),總覺(jué)得很沮喪,覺(jué)得自己的工作做得還不細(xì),有些內(nèi)容要讓用戶簽字確認(rèn)就好了??稍诮?jīng)過(guò)多次需求變更的痛苦后,才恍然大悟:軟件開(kāi)發(fā)的需求變更是無(wú)可避免的。
?。?)三極世界和需求變更的必然性
需求、客戶、開(kāi)發(fā)人員是一個(gè)三極世界。這三極的溝通是很不容易的??蛻粝蛭覀兲咸喜唤^地描述需求,開(kāi)發(fā)者聽(tīng)得頭暈?zāi)X脹,但又不得不根據(jù)這些來(lái)理解需求。有的時(shí)候我們也會(huì)派好幾撥人輪番折騰客戶,這樣客戶也暈頭轉(zhuǎn)向,巴不得趕快需求調(diào)研結(jié)束。這樣的需求調(diào)研像透過(guò)布滿小水珠的玻璃看世界一樣,即使能夠看清輪廓,但細(xì)節(jié)的丟失在所難免。
之所以這樣,是有原因的:第一,是因?yàn)榭蛻糇约簩?duì)需求進(jìn)行了過(guò)濾,有時(shí)是因?yàn)榭蛻魧?duì)需求的理解也不準(zhǔn)確,有時(shí)是客戶的視角
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html