天天看點

一次疊代式開發的研究:需求變更的關鍵步驟

前面我們提到了需求變更。當客戶提出了需求變更,經過與我們的需求人員的詳細讨論與分析,最後确定下來了變更内容和修改方案。但這時草率地開始進行設計和開發是不正确的,它将成為項目後期的一個巨大的風險,一顆定時zhadan,為什麼呢?我們來詳細分析分析。

每當發生需求變更的時候,不管是大是小,項目的許多因素都會相應地發生變化。首先發生變化的是工作量。每次的變更必然造成工作量的增加,到底增加了多少呢?我們需要對其進行評估。同時,我們還要對增加的工作進行優先級評估。一般來說,新增加的工作往往優先級都是最高的,是客戶急切想看到結果的部分,那麼其它的工作的優先級就會收到影響,優先級就會有所下降。當工作量的增加與優先級的調整完成後,随後的工作就是項目計劃的調整。

前面我們說過,疊代式開發的項目計劃與傳統的項目計劃是存在巨大差異的。疊代式開發的項目計劃其核心,就是如何将各項任務合理配置設定到各個疊代期中去。任務就像一個個大小不一的石子,疊代期就如同一個個網格,項目計劃就是将石子分發到各個網格中,雖然有一些空隙,但大體是滿的。現在新任務來了,就如同要将新的石子放到已滿的網格中,有幾種可能:石子很小,利用網格的空隙就可以填滿了;石子太大了,如果要把這個石子放進這個網格中,就必須将裡面的某個石子取出來,放到别的網格裡。現在項目計劃的變更就是這樣。

如果新的工作量很小,往下一個疊代期擠一擠,即使超了1、2天也能擠下,那就擠擠吧,但這個疊代期可能會延期,後面工作的時間節點也必然随之調整;如果新的工作量還不小,優先級還比較高,那麼隻能将下一個疊代期中已有的任務取出,調整到其它疊代期中,這可能會導緻後面整個的工作計劃都将調整。不論怎樣調整,我們都應當将調整後的工作計劃告知客戶。

[b]不論業務需求怎樣變更,不論項目計劃怎樣調整,通知客戶,讓客戶了解,并與我們共同承擔項目延期的風險[/b],這是從無數失敗的項目中總結出來的血的教訓。一定要讓客戶明白,你們可以改需求,可以提出修改意見,但必須與我們一同承擔風險。當客戶意識到這一點時,也許他們就會慎重考慮了,甚至一下變更需求就會被取消。

在變更項目計劃的同時,另一項重要的工作就是變更我們的産品需求說明書。在項目管理中,需求文檔往往分為兩個:原始需求和産品需求說明書。原始需求是客戶編寫的,站在客戶角度描述的業務需求,而産品需求說明書是我們在對原始需求分析、了解、調研以後,剔除那些技術無法實作的内容,最後形成的文檔,是我們的軟體最終做成什麼樣的依據性文檔(需求文檔其實很多,如需求規格說明書、産品規格說明書等等,但都大同小異)。産品需求說明書是程式開發的依據,軟體測試的依據,使用者驗收的依據,貫穿整個軟體開發的核心。是以,當業務需求發生變更之後,産品需求說明書一定要進行相應的變更,并做好變更的記錄,與客戶簽字确認。這樣做的另一個好處就是防止客戶随意變更需求,使客戶對變更的提出更加慎重。

另外一個需求變更中常常出現的尴尬局面就是,當所有情況都清楚告訴客戶以後,客戶提出需求必須要變更,但最終傳遞時間卻不能改變。這着實是一個相當沖突的問題,變更必然造成工作量增加,工作量增加必然影響最終傳遞時間,但傳遞時間又不能變,這聽起來既不合情又不合理,但在現實的項目中經常發生,而且各有個的充分理由,我們這怎麼辦呢?其實解決這種情況的辦法就是在制訂項目計劃之初就提前考慮到。記得我們前面提到,我們在制訂項目計劃時應當在時間上留有一定的富餘。如何制訂項目計劃,《越獄》這部電影給了我們很多的啟示。如何成功越獄,主人公在越獄過程中的每個風險點都制訂了風險規避和補救的辦法,項目計劃也是這樣。項目需求變更就是一個風險點,是以項目經理應當在制訂計劃之初就應當做好準備,并提前預留出相應的時間,當項目進行過程中風險出現時才能從容應對。

總之,需求變更不是什麼洪水猛獸,也不是一個項目可以完全規避得了的。我們提前準備好,從容應對之,就不是什麼大不了的事情。

[url=http://fangang.iteye.com/blog/1183114]一次疊代式開發的研究:軟體開發的風險[/url]

[url=http://fangang.iteye.com/blog/1183103]一次疊代式開發的研究:什麼是疊代式開發[/url]

[url=http://fangang.iteye.com/blog/1183789]一次疊代式開發的研究:怎樣進行疊代式開發[/url]

[url=http://fangang.iteye.com/blog/1185117]一次疊代式開發的研究:疊代開發從這裡開始[/url]

[url=http://fangang.iteye.com/blog/1185132]一次疊代式開發的研究:準确的工作量評估[/url]

[url=http://fangang.iteye.com/blog/1185461]一次疊代式開發的研究:功能的優先級評估[/url]

[url=http://fangang.iteye.com/blog/1185462]一次疊代式開發的研究:一個疊代式項目計劃[/url]

[url=http://fangang.iteye.com/blog/1185831]一次疊代式開發的研究:開始真正的工作[/url]

[url=http://fangang.iteye.com/blog/1208221]一次疊代式開發的研究:從容應對需求變更[/url]

[url=http://fangang.iteye.com/blog/1213670]一次疊代式開發的研究:需求變更的關鍵步驟[/url]

[url=http://fangang.iteye.com/blog/1222687]一次疊代式開發的研究:Where you are[/url]

[b](續)[/b]

繼續閱讀