,也能夠快速適應(yīng)變化。因此,在成本影響的容許范圍內(nèi)可以降低需求的基線,提高客戶的滿意度。
三、需求變更控制
前面已經(jīng)說過了,在軟件開發(fā)項目開始之前,就要消除“絕不允許發(fā)生需求變更”的思想。在項目進(jìn)行,一旦發(fā)生需求變更,更不要不一味的抱怨,也不要去一味地迎合客戶的“新需求”,而是要管理和控制需求變更。
1、分級管理客戶需求
軟件開發(fā)項目中,“客戶永遠(yuǎn)是對的”和“客戶是上帝”并不完全的正確,因為在已經(jīng)簽定的項目合同中,任何新需求的變更和增加除了影響項目的正常進(jìn)行以外,還影響到了客戶的投入收益,所以有的時候項目經(jīng)理反倒應(yīng)該為客戶著想。
對于項目中的需求,可以實行分級管理,以達(dá)到對需求變更的控制和管理。
。一級需求(或變更)是關(guān)鍵性的需求,這種需求如果不滿足,意味著整個項目不能正常交付使用,前期工作也會被全部否定。這個級別的需求是必須滿足的,否則就意味著否定自已的項目成員和成員的所有努力,所以定為“Urgent”。這通常是屬于補救性的debug類型,要救火。
。二級需求(或變更)是后續(xù)關(guān)鍵性需求,它不影響前面工作內(nèi)容的交付,但不加以滿足,新的項目內(nèi)容無法提交或繼續(xù),所以是“Necessary”。一般新模塊關(guān)鍵性的基礎(chǔ)組件,屬于這個級別。
。三級需求是后續(xù)重要的需求,如果不被滿足會令整體項目工作的價值下降,為了體現(xiàn)項目價值,也是開發(fā)人員自已的技術(shù)價值的證明,所以定為“Needed”。一般性的重大的有價值的全新模塊開發(fā),屬于這個級別。項目管理者聯(lián)盟,項目管理問題。
以上三個等級是應(yīng)該實施的,但時間性上可以作優(yōu)先級的排列。
。四級需求是改良性需求,沒有滿足這類需求并不影響已有功能的使用,但如果實現(xiàn)了則會更好,定級為“Better”。界面和使用方式的需求,一般在這個檔次。
。五級需求是可選性需求,更多的是偶是一種設(shè)想,以及一種可能,通常只是客戶的的一種個人喜好而已,定級為“Maybe”。
對于四級需求,如果時間和資源條件都允許的話,不妨做下去。對于五級需求,正如對它的描述一樣,做與不做是“Maybe”。
2、全生命周期的需求變更管理
各種規(guī)模和類型的軟件項目的生命周期大致可以分為三個階段,即項目啟動、項目實施、項目收尾。不要以為需求變更的管理和控制只是發(fā)生在項目實施階段,而是要貫穿在整個項目生命周期的全過程中。
站在全局角度的需求變更管理,需要采用綜合變更控制的方法。
(1)項目啟動階段的變更預(yù)防
正如前面強調(diào)的,對于任何軟件項目,需求變更都無可避免,也無從逃避,無論是項目經(jīng)理還是開發(fā)人員只能積極應(yīng)對,而這個應(yīng)對應(yīng)該是從項目啟動的需求分析階段就開始了。
對一個需求分析做得很好的項目來說,基準(zhǔn)文件定義的范圍越詳細(xì)清晰,用戶跟項目經(jīng)理提出需求變更的幾率就越小。如果需求沒做好,基準(zhǔn)文件里的范圍含糊不清,被客戶發(fā)現(xiàn)還有很大的“新需求空間”,這時候項目組往往要付出許多無謂的犧牲。
如果需求分析做得好,文檔清晰且又有客戶簽字,那么后期客戶提出的變更就超出了合同范圍,需要另外收費。這個時候,項目經(jīng)理一定要據(jù)理力爭,此時這并非要刻意賺取客戶的錢財,而是不能讓客戶養(yǎng)成經(jīng)常變更的習(xí)慣,否則后患無窮。
(2)項目實施階段的需求變更
成功的軟件項目和失敗項目的區(qū)別就在于項目的整個過程是否是可控的。
項目經(jīng)理應(yīng)該樹立一個理念,即“需求變更是必然的、可控的,并且是有益的”。項目實施階段的變更控制需要做的是分析變更請求,評估變更可能帶來的風(fēng)險和修改基準(zhǔn)文件。
控制需求漸變需要注意以下幾點:
。需求一定要與投入有聯(lián)系,如果需求變更的成本由
!-->