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