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