一個需求變更的典型案例:
Steven剛出任項目經(jīng)理,并承接了一個中型軟件項目。公司再三叮嚀他一定要尊重客戶,充分滿足客戶需求。項目開始比較順利,但進入到后期,客戶頻繁的需求變更帶來很多額外工作。Steven動員大家加班,保持了項目的正常進度,客戶相當滿意。但需求變更卻越來越多。為了節(jié)省時間,客戶的業(yè)務人員不再向Steven申請變更,而是直接找程序員商量。
程序員疲于應付,往往直接改程序而不做任何記錄,很多相關文檔也忘記修改。很快Steven就發(fā)現(xiàn):需求、設計和代碼無法保持一致,甚至沒有人能說清楚現(xiàn)在系統(tǒng)“到底改成什么樣了”。版本管理也出現(xiàn)了混亂,很多人違反配置管理規(guī)定,直接在測試環(huán)境中修改和編譯程序。但在進度壓力下,他也只能佯裝不知此事。但因頻繁出現(xiàn)“改好的錯誤又重新出現(xiàn)”的問題,客戶已經(jīng)明確表示“失去了耐心”。
而這還只是噩夢的開始。一個程序員未經(jīng)許可擅自修改了核心模塊,造成系統(tǒng)運行異常緩慢,大量應用程序超時退出。雖然最終花費了整整3天的時間解決了這個問題,但客戶卻投訴了,表示“無法容忍這種低下的項目管理水平”。更糟糕的是,因為擔心系統(tǒng)中還隱含著其他類似的錯誤,客戶高層對項目的質(zhì)量也疑慮重重。
隨后發(fā)生的事情讓Steven更加為難:客戶的兩個負責人對界面風格的看法不一致,并為此發(fā)生了激烈爭執(zhí)。Steven知道如果發(fā)表意見可能會得罪其中一方,于是保持了沉默。最終客戶決定調(diào)整所有界面,Steven只好立刻動員大家抓緊時間修改??珊髞懋斅犝f因修改界面而造成了項目一周的延誤后,客戶方原來發(fā)生爭執(zhí)的兩人這次卻非常一致,同時氣憤地質(zhì)問Steven:“為什么你不早點告訴我們要延期!早知這樣才不會讓你改呢!”Steven很無耐,疑惑自己到底錯在哪里了。
1、對軟件需求和需求變更的理解
軟件需求是整個軟件項目的最關鍵的一個輸入,和傳統(tǒng)的生產(chǎn)企業(yè)相比較,軟件的需求具有模糊性、不確定性、變化性和主觀性的特點,它不像生產(chǎn)汽車、電腦等硬件的需求,是有形的、客觀的、可描述的、可檢測的。
軟件需求是軟件項目最難把握的問題,同時又是關系項目成敗的關鍵因素,因此對于需求分析和需求變更的處理十分重要。需求變更會給項目帶來巨大的風險,會導致項目的成本費用增加、開發(fā)周期延長、產(chǎn)品質(zhì)量下降及團隊工作效率下降等不良后果,因而軟件開發(fā)項目中應該盡量減少需求變更的出現(xiàn)頻率。然而由于政府對特定軟件的相關要求、用戶部門市場戰(zhàn)略的調(diào)整、工業(yè)界的發(fā)展等因素都可能帶來需求的變更,而這些因素往往不可避免。在軟件開發(fā)過程中如果只有一條真理的話,那一定是:需求的變化是永恒的,需求不可能是完備的。因而,對于需求變更應該正確的對待,盡量將其負面影響降低到最低。
2、需求變更的原因
需求包括業(yè)務需求、用戶需求和功能需求。業(yè)務需求(Business Requirement )反映了組織機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標要求,用戶需求(User Requirement )描述了用戶使用產(chǎn)品必須完成的任務,功能需求(Functional Requirement )定義了開發(fā)人員必須實現(xiàn)的軟件功能。
會導致需求變更的原因會有很多,如老板臨時改變想法、項目預算增加或減少、客戶對功能的需求改變等。在IT項目中,變更可能來自方案服務商、客戶或產(chǎn)品供應商等,也可能來源于項目組內(nèi)部。在軟件系統(tǒng)開發(fā)過程中,有很多問題都是由于在需求分析階段沒有正確地收集、編寫、協(xié)商、修改產(chǎn)品真實需求而產(chǎn)生的,造成這樣的狀況有以下幾方面的基本原因:
?。?)對需求的理
項目經(jīng)理勝任力免費測評PMQ上線啦!快來測測你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html