一、問題的提出
筆者近幾年一直從事信息系統(tǒng)的開發(fā),特別是有關(guān)國家機(jī)關(guān)和企業(yè)信息系統(tǒng)的開發(fā)工作,取得了許多的經(jīng)驗和教訓(xùn)。其中一個深切的體會是,需求的不斷變化,如果不能很好的應(yīng)對,會導(dǎo)致整個項目的進(jìn)度和質(zhì)量都難以控制,最終使整個系統(tǒng)失敗。特別是在我國,用戶對于如何應(yīng)用計算機(jī)軟件并沒有一個成熟的經(jīng)驗,在項目進(jìn)行中用戶會頻繁的改變和增加各種要求。當(dāng)最終完成系統(tǒng)的建設(shè)時,卻發(fā)現(xiàn)企業(yè)的業(yè)務(wù)需求已經(jīng)發(fā)生了很大的改變,一方面是系統(tǒng)的設(shè)計已經(jīng)無法很好地滿足新的需求,另一方面是項目周期大大超過預(yù)期,項目發(fā)生虧損。
據(jù)美國軟件工程實施現(xiàn)狀的調(diào)查,軟件研發(fā)的情況也是很難預(yù)測,大約只有10%的項目能夠在預(yù)定的費用和進(jìn)度下交付。在商用軟件產(chǎn)業(yè)中,這一現(xiàn)象尤為嚴(yán)重。
因此如何從軟件工程的角度,通過采用適當(dāng)系統(tǒng)設(shè)計方法和加強(qiáng)項目管理來解決需求不斷變化的問題,是各個軟件開發(fā)商的一個重要課題。通過實踐,感到采用敏捷方法的基本思想和原則來設(shè)計系統(tǒng)和處理需求變化問題,能夠產(chǎn)生較好的效果。
下面就從系統(tǒng)設(shè)計和項目管理等方面談一下這方面的體會。
二、需求變化帶來的問題
作為軟件開發(fā)商,當(dāng)接到一個項目后,一般的做法是首先由用戶提出需求,然后開發(fā)商根據(jù)用戶的需求作出一個系統(tǒng)實現(xiàn)方案,而用戶通常并沒有實質(zhì)地理解方案,隨即通過了方案,開始了軟件的開發(fā)工作。根據(jù)筆者所開發(fā)過的多個系統(tǒng),開發(fā)前期,大多數(shù)單位并沒有明確的想法,也提不出確切的需求,因為業(yè)務(wù)人員不了解計算機(jī)技術(shù)是怎樣實現(xiàn)業(yè)務(wù)流程的。用戶總是希望開發(fā)單位根據(jù)當(dāng)前的業(yè)務(wù)流程先做出一個樣板來,然后再進(jìn)行改造,而多數(shù)用戶認(rèn)為軟件修改很容易。
盡管已經(jīng)做好了系統(tǒng)規(guī)劃,簽訂了功能較明確的合同,然而隨著系統(tǒng)分析、系統(tǒng)設(shè)計和系統(tǒng)實施的進(jìn)展,當(dāng)客戶在項目部署后看到真正的軟件系統(tǒng)的界面及操作方式,客戶的需求就被激發(fā)起來,會根據(jù)自己的對軟件的理解和日常工作的習(xí)慣,對軟件的處理及操作方式提出修改,而這種修改往往比較隨意,因此導(dǎo)致開發(fā)方需要對流程、界面、以及相關(guān)文檔經(jīng)常的大量的修改,這些成為開發(fā)方的一個很大的負(fù)擔(dān),而這種負(fù)擔(dān)對用戶基本是看不見的。
三、用敏捷方法方法應(yīng)對需求變化
1.敏捷建模(Agile Modeling)進(jìn)行系統(tǒng)設(shè)計
軟件開發(fā)過程一般是要盡早完成需求分析,停止需求的變動,將這些需求作為設(shè)計的基礎(chǔ),然后開始構(gòu)筑系統(tǒng),這是瀑布方法————基于計劃的生命周期。這種方法是通過大量的前期工作來減少變化。一旦前期工作完成,當(dāng)需求變化時,這樣的方法就會有很大的問題。
另外一個重要原因是,許多單位的管理模式都處在探索階段,可能引起變動的因素很多,因此根據(jù)現(xiàn)行的管理模式設(shè)計出的信息系統(tǒng)將面臨使用單位管理模式的變化的考驗,包括許多的工作流程的細(xì)節(jié)處理方式式否合乎工作人員的習(xí)慣等問題。
系統(tǒng)在設(shè)計時要充分考慮這些不確定因素,才能適應(yīng)這些變化。特別是數(shù)據(jù)結(jié)構(gòu)要以系統(tǒng)靈活性為主,其次才是考慮系統(tǒng)性能的提高。
在軟件開發(fā)出現(xiàn)工期或bug等問題時,開發(fā)人員常抱怨是由于需求的變化造成的,對于軟件的修改存在抵觸情緒。實際上在商業(yè)軟件開發(fā)領(lǐng)域,需求變化是很正常的,問題是我們該怎樣對待它。為了適應(yīng)需求的變化,必須采取不同的設(shè)計態(tài)度。這里介紹敏捷方法的幾點思想,對如何應(yīng)對需求的變化很有教益。
主張簡單、遞增的變化、擁抱變化是敏捷建模方法的核心原則之中的三個。
敏捷建模主張當(dāng)從事開發(fā)工作時,最簡單的解決方案就是最好的解決方案,盡可能的保持模型的簡單。
對無法在項目一開始就固化的需求進(jìn)行演進(jìn)型的設(shè)計。你現(xiàn)在不必要對這個系統(tǒng)進(jìn)行過
項目經(jīng)理勝任力免費測評PMQ上線啦!快來測測你排多少名吧~
http://m.opto-elec.com.cn/pmqhd/index.html