需求變更的表現(xiàn)形式是多方面的,如老板臨時改變想法、項目預(yù)算增加或減少、客戶對功能的需求改變等。在IT項目中,變更可能來自方案服務(wù)商、客戶或產(chǎn)品供應(yīng)商等,也可能來源于項目組內(nèi)部。雖然需求變更的表現(xiàn)形式千差萬別,但究其根本不外乎以下幾種原因:
1、需求變更的原因分析
(1)、范圍沒有圈定就開始細化
細化工作是由需求分析人員完成的,一般是根據(jù)用戶提出的描述性的、總結(jié)性的短短幾句話去細化的,提取其中的一個個功能,并給出描述(正常執(zhí)行時的描述和意外發(fā)生時的描述)。當(dāng)細化到一定程度后并開始系統(tǒng)設(shè)計時,范圍會發(fā)生變化,那細節(jié)用例的描述可能就有很多要改動。如原來是手工添人的數(shù)據(jù),要改成根據(jù)信息系統(tǒng)計算出來,而原來的一個屬性的描述要變成描述一個實體等。
(2)、沒有指定需求的基線
需求的基線是指是否容許需求變更的分界線。隨著項目的進展,需求的基線也在變化。是否容許變更的依據(jù)是合同以及對成本的影響,比如軟件整體結(jié)構(gòu)已經(jīng)設(shè)計出來是不容許改變需求范圍的,因為整體結(jié)構(gòu)會對整個項目的進度和成本有初步預(yù)算。隨著項目的進展,基線將越定越高(容許的變更將越少),其過程如下:變更請求à比較基線à變更實現(xiàn)。
(3)、沒有良好的軟件結(jié)構(gòu)適應(yīng)變化
組件式的軟件結(jié)構(gòu)就是提供了快速適應(yīng)需求變化的體系結(jié)構(gòu),數(shù)據(jù)層封裝了數(shù)據(jù)訪間邏輯,業(yè)務(wù)層封裝了業(yè)務(wù)邏輯,表示層展現(xiàn)用戶表示邏輯。但適應(yīng)變化必須遵循一些松禍合原則,各層之間還是存在一些聯(lián)系的,設(shè)計要力求減少會對接口入口參數(shù)產(chǎn)生變化。如果業(yè)務(wù)邏輯封裝好了,則表示層界面上的一些排列或減少信息的要求是很容易適應(yīng)的。如果接口定義得合理,那么即使業(yè)務(wù)流程有變化,也能夠快速適應(yīng)變化。因此,在成本影響的容許范圍內(nèi)可以降低需求的基線,提高客戶的滿意度。
2、如何控制需求變更
按照現(xiàn)代項目管理的概念,一個項目的生命周期分為啟動、實施、收尾三個過程。需求變更的控制不應(yīng)該只是項目實施過程考慮的事情,而是要分布在整個項目生命周期的全過程。為了將項目變更的影響降低到最小,就需要采用綜合變更控制方法。綜合變更控制主要內(nèi)容有找出影響項目變更的因素、判斷項目變更范圍是否已經(jīng)發(fā)生等。
進行綜合變更控制的主要依據(jù)是項目計劃、變更請求和提供了項目執(zhí)行狀況信息的績效報告。為保證項目變更的規(guī)范和有效實施,通常項目實施組織會有一
(1)、項目啟動階段的變更預(yù)防
對于任何項目,變更都無可避免,也無從逃避,只能積極應(yīng)對,這個應(yīng)對應(yīng)該是從項目啟動的需求分析階段就開始了。對一個需求分析做得很好的項目來說,基準文件定義的范圍越詳細清晰,用戶跟項目經(jīng)理扯皮的幌子就越少。如果需求沒做好,基準文件里的范圍含糊不清,被客戶抓住空子,往往要付出許多無謂的犧牲。如果需求做得好,文檔清晰且又有客戶簽字,那么后期客戶提出的變更就超出了合同范圍,需要另外收費。這個時候千萬不能手軟,這并非要刻意賺取客戶的錢財,而是不能讓客戶養(yǎng)成經(jīng)常變更的習(xí)慣,否則后患無窮。相對于需求來說,什么WBS、風(fēng)險管理、計劃進度都是次要的,只要需求做好了就會一帆風(fēng)順。
(2)、項目實施階段的需求變更
成功項目和失敗項目的區(qū)別就在于項目的整個過程是否是可控的。項目經(jīng)理應(yīng)該樹立一個理念——“需求變更是必然的、可控的、有益的”。項目實施階段的變更控制需要做的是分析變更請求,評估變更可能帶來的風(fēng)險和修改基準文件。控制需求漸變需要注意以下幾點:
需求一定要與投入有聯(lián)系,如果需求變更的成本由開發(fā)方來承擔(dān),則項目需求的變更就成為必然了。所以,在項目的開始,無論是開發(fā)方還是出資方都要明確這一條:需求變,軟件開發(fā)的投人也要變
。