監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
工程項目管理軟件系統(tǒng)

當前位置:工程項目OA系統(tǒng) > 建筑OA系統(tǒng) > 工程項目管理軟件系統(tǒng)

電子商務(wù)綜合管理:用敏捷方法應(yīng)對需求變化

申請免費試用、咨詢電話:400-8352-114

一、問題的提出
  筆者近幾年一直從事信息系統(tǒng)的開發(fā),特別是有關(guān)國家機關(guān)和企業(yè)信息系統(tǒng)的開發(fā)工作,取得了許多的經(jīng)驗和教訓(xùn)。其中一個深切的體會是,需求的不斷變化,如果不能很好的應(yīng)對,會導(dǎo)致整個項目的進度和質(zhì)量都難以控制,最終使整個系統(tǒng)失敗。特別是在我國,用戶對于如何應(yīng)用計算機軟件并沒有一個成熟的經(jī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ù)定的費用和進度下交付。在商用軟件產(chǎn)業(yè)中,這一現(xiàn)象尤為嚴重。
  因此如何從軟件工程的角度,通過采用適當系統(tǒng)設(shè)計方法和加強項目管理來解決需求不斷變化的問題,是各個軟件開發(fā)商的一個重要課題。通過實踐,感到采用敏捷方法的基本思想和原則來設(shè)計系統(tǒng)和處理需求變化問題,能夠產(chǎn)生較好的效果。
  下面就從系統(tǒng)設(shè)計和項目管理等方面談一下這方面的體會。
  二、需求變化帶來的問題
  作為軟件開發(fā)商,當接到一個項目后,一般的做法是首先由用戶提出需求,然后開發(fā)商根據(jù)用戶的需求作出一個系統(tǒng)實現(xiàn)方案,而用戶通常并沒有實質(zhì)地理解方案,隨即通過了方案,開始了軟件的開發(fā)工作。根據(jù)筆者所開發(fā)過的多個系統(tǒng),開發(fā)前期,大多數(shù)單位并沒有明確的想法,也提不出確切的需求,因為業(yè)務(wù)人員不了解計算機技術(shù)是怎樣實現(xiàn)業(yè)務(wù)流程的。用戶總是希望開發(fā)單位根據(jù)當前的業(yè)務(wù)流程先做出一個樣板來,然后再進行改造,而多數(shù)用戶認為軟件修改很容易。
  盡管已經(jīng)做好了系統(tǒng)規(guī)劃,簽訂了功能較明確的合同,然而隨著系統(tǒng)分析、系統(tǒng)設(shè)計和系統(tǒng)實施的進展,當客戶在項目部署后看到真正的軟件系統(tǒng)的界面及操作方式,客戶的需求就被激發(fā)起來,會根據(jù)自己的對軟件的理解和日常工作的習(xí)慣,對軟件的處理及操作方式提出修改,而這種修改往往比較隨意,因此導(dǎo)致開發(fā)方需要對流程、界面、以及相關(guān)文檔經(jīng)常的大量的修改,這些成為開發(fā)方的一個很大的負擔(dān),而這種負擔(dān)對用戶基本是看不見的。
  三、用敏捷方法方法應(yīng)對需求變化
  1.敏捷建模(Agile Modeling)進行系統(tǒng)設(shè)計
  軟件開發(fā)過程一般是要盡早完成需求分析,停止需求的變動,將這些需求作為設(shè)計的基礎(chǔ),然后開始構(gòu)筑系統(tǒng),這是瀑布方法————基于計劃的生命周期。這種方法是通過大量的前期工作來減少變化。一旦前期工作完成,當需求變化時,這樣的方法就會有很大的問題。
  另外一個重要原因是,許多單位的管理模式都處在探索階段,可能引起變動的因素很多,因此根據(jù)現(xiàn)行的管理模式設(shè)計出的信息系統(tǒng)將面臨使用單位管理模式的變化的考驗,包括許多的工作流程的細節(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)對需求的變化很有教益。
  主張簡單、遞增的變化、擁抱變化是敏捷建模方法的核心原則之中的三個。
  敏捷建模主張當從事開發(fā)工作時,最簡單的解決方案就是最好的解決方案,盡可能的保持模型的簡單。
  對無法在項目一開始就固化的需求進行演進型的設(shè)計。你現(xiàn)在不必要對這個系統(tǒng)進行過分的建模,只要基于現(xiàn)有的需求進行建模,隨著項目的進行,項目環(huán)境和需求發(fā)生變化時,再來完善和重構(gòu)這個系統(tǒng)??荚嚧笳?
  遞增的變化是指你不用在模型中包容所有的細節(jié),你只要開發(fā)一個小的模型或是概要模型,打下一個基礎(chǔ),然后慢慢的改進模型。
  敏捷建模采取不同的設(shè)計態(tài)度來“擁抱變化”。它認為需求時刻在變,人們對于需求的理解也時刻在變。隨著項目的進行,項目環(huán)境也在不停的變化,因此你的開發(fā)方法必須要能夠反映這種現(xiàn)實。對于用戶的反饋,要勇于對自己的代碼進行修改,丟掉壞的代碼。
  對于易變的需求,敏捷方法使用了一系列實踐。其核心則是迭代式開發(fā),尋求快速的反饋,用戶經(jīng)歷過一次或幾次的迭代之后,對軟件開發(fā)和業(yè)務(wù)需求如何實現(xiàn)已經(jīng)有了形象的認識,用戶提出的需求基本上可以代表他們的真實需求。這時,就可以將需求進行凍結(jié)。后面如果還有修改,將是細節(jié)的調(diào)整,不會對軟件的架構(gòu)產(chǎn)生重大的影響。
  按照上述的敏捷方法的原則來設(shè)計系統(tǒng),則能夠使我們正確的看待用戶需求的變動,從而較好的適應(yīng)需求的變動。如果項目管理者和程序開發(fā)人員真正的理解并貫徹這種方法,用這種思想去管理項目,那么就能有效的避免出現(xiàn)項目后期軟件架構(gòu)混亂、補丁加補丁、系統(tǒng)性能大大減低的情況。
  2.項目管理的作用
  1)推動技術(shù)與需求“匹配”
  上面提到要采用敏捷方法的迭代式開發(fā),盡快的凍結(jié)需求,那么通過項目管理的手段,可以控制和縮短需求凍結(jié)的時間。
  項目管理是一種管理手段,目的是在指定時間和資源的條件下,保質(zhì)、按時地完成預(yù)定的任務(wù)。作為一個項目管理人員,必須注意有些需求的變化是由于業(yè)務(wù)與設(shè)計的“不匹配”造成的,即用戶一方可能對信息系統(tǒng)的開發(fā)和實現(xiàn)方法,缺乏全面的了解,不懂得如何將傳統(tǒng)的業(yè)務(wù)模式轉(zhuǎn)換為信息系統(tǒng)所要求的處理模式。
  另一方面,也可能開發(fā)商對用戶方的需求、細節(jié)了解不充分等因素,使得用戶方與開發(fā)方對工程的理解從一開始就存在著差異。因為業(yè)務(wù)人員開始提不出實際的需求來,而只是把大致的工作流程介紹一遍。而這種認識上的差異與理解的不同往往在開發(fā)初期并沒有表現(xiàn)出來,當軟件基本成型,給用戶演示時,顯出較大的差異。
  作為開發(fā)商,過去經(jīng)常將開發(fā)的注意力集中在“技術(shù)”上,即計算機軟硬件、操作系統(tǒng)平臺和數(shù)據(jù)庫等技術(shù)實現(xiàn)上。而對于信息系統(tǒng)的開發(fā),則必須首先考慮到用戶的理念、方針和及其對技術(shù)方法的領(lǐng)會等各方面因素。往往這些因素對系統(tǒng)成敗所起的作用,比技術(shù)實現(xiàn)的因素更重要。
  首先,項目設(shè)計組人員要向需求方的領(lǐng)導(dǎo)及業(yè)務(wù)人員闡述信息系統(tǒng)是如何實現(xiàn)的,什么樣的業(yè)務(wù)模式適合于網(wǎng)絡(luò),怎樣處理和解決什么問題,需要在傳業(yè)務(wù)模式上做哪些改進,建立基本的操作規(guī)范等等。必須明確,信息系統(tǒng)改變了現(xiàn)行的工作管理模式,使工作人員失去了一定的靈活性和隨意性。如果不建立新的操作流程和規(guī)范,在傳統(tǒng)手工處理方式上,實現(xiàn)信息系統(tǒng)是不可能的。
  其次,詳細的了解全盤業(yè)務(wù)流程之后,用基本用戶界面原型向需求方演示和說明方案,使業(yè)務(wù)人員真正理解技術(shù)實現(xiàn)的思路,能夠及時發(fā)現(xiàn)與實際不吻合或存在的困難,這樣才可能從工作流程上或技術(shù)上來解決這些問題。
  當出現(xiàn)問題時,項目管理人員應(yīng)迅速分析問題,正確判斷哪些問題屬于不適應(yīng)新的工作模式引起的,哪些問題屬于操作不當引起的,哪些問題屬于系統(tǒng)本身不完善引起的。對于那些由于不適應(yīng)新的工作模式引起的問題,項目管理人員應(yīng)引導(dǎo)使用人員迅速適應(yīng)新的工作模式,必要時也要說服用戶方的決策層采用行政手段推動實施;項目管理人員時刻注意取得決策層的理解與支持,幫助工作人員盡快地適應(yīng)新的工作方式。
  項目管理者就像是一個樞紐,由他來決定需求的分類、工作量、需求變化對現(xiàn)有軟件的影響程度等因素,從而安排需求變更的計劃――是在本次迭代中完成,還是在下一次迭代中完成。
  2)開發(fā)文檔的更新
  軟件開發(fā)文檔對與軟件項目來說是一個很大的工作量。很多軟件項目的開發(fā),在初期文檔比較正規(guī),隨著項目的深入,特別是需求發(fā)生多次變化之后,要保持軟件開發(fā)文檔的一致性就感到非常困難了,因為需求改變的各種信息沒有記錄下來,最后不得不蒙混過關(guān),草草了之。
  但如果我們按照敏捷方法的原則,在需求凍結(jié)之前,不要過分的把精力投入到文檔的制作上,而是將有關(guān)的信息記錄和保留下來,在需求基本凍結(jié)之后,化一定的時間來創(chuàng)建和對文檔進行格式化。
  3)合同的考慮
  盡管按照敏捷方法的原則是擁抱變化,但還是應(yīng)該在簽定開發(fā)合同時,一方面對項目的費用和時間估計時一定要考慮用戶需求的變化,另一方面把用戶需求的改動的條款寫清楚,如果用戶增加或改動了需求,那么軟件的交付日期可以推遲,費用也應(yīng)增加。這樣可以限制用戶的隨意改動。
  三、結(jié)束語
  每個項目的開發(fā)環(huán)境及實施環(huán)境各不相同,在系統(tǒng)設(shè)計和項目管理方面所面臨的問題不盡相同,但需求發(fā)生變化是所有項目都會遇到的問題。信息系統(tǒng)的建設(shè)由于會改變原有的傳統(tǒng)工作模式,需求的內(nèi)容因而會隨時變動,給開發(fā)工作帶來很大的難度。本文提出了應(yīng)用敏捷方法的思想來應(yīng)對軟件開發(fā)過程中需求變化的問題,希望能對系統(tǒng)開發(fā)人員和項目管理人員有所幫助。
發(fā)布:2007-02-26 10:47    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:

泛普工程項目管理軟件系統(tǒng)其他應(yīng)用

項目管理工具 禪道項目管理軟件 夢龍項目管理軟件 微軟項目管理軟件 裝飾管理系統(tǒng) 裝修預(yù)算軟件 項目計劃軟件 項目進度管理軟件 軟件項目管理工具 材料管理軟件 工程項目管理軟件系統(tǒng) 項目管理系統(tǒng) 施工管理軟件 建筑工程項目管理軟件 工程管理軟件