国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺談迭代開發(fā)在軟件開發(fā)中的應(yīng)用

2013-03-24 06:37
電子測試 2013年5期
關(guān)鍵詞:增量解決方案軟件

楊 鵬

(陜西工業(yè)職業(yè)技術(shù)學院,陜西咸陽 712000)

為了能夠在變幻莫測的現(xiàn)實環(huán)境中以可預期方式交付結(jié)果,“迭代”方法應(yīng)運而生?!安淮_定性”將持續(xù)存在,需要采用一種與之抗衡的技術(shù),這種技術(shù)就是迭代和增量開發(fā),借助這種技術(shù)賦予的力量,能夠克服不確定性,或至少能系統(tǒng)降低不確定性,使其處于可控范圍,以達到預期的目標。

迭代——反復說念和執(zhí)行動作。

增量——(1)增加量;(2)變大、增加。

1 迭代含義

如何在軟件開發(fā)領(lǐng)域應(yīng)用此方法呢?在某種意義上,軟件開發(fā)項目的很多方面是“理論”,更準確地講是需要予以評估的“斷言”?!坝媱潯北旧碛啥鄠€描述任務(wù)用時的斷言組成?!耙蟆笔敲枋鲞m當解決方案的特點的斷言。不能僅憑某些利益相關(guān)方或主題專家的判斷來確定要求是否有效。甚至,需要評估這些要求,判斷它們是否針對當前問題提出了合理的解決方案。

此推理引導采用這樣一種軟件開發(fā)風格:通過設(shè)計和開發(fā)多個可論證的系統(tǒng)版本,來反復驗證和評估計劃的斷言;會客觀地評估每一版本確認它是否降低了項目風險;在前一版本的基礎(chǔ)之上構(gòu)建新的版本,直至完成解決方案。

通常更多地將這種開發(fā)風格定義為迭代和增量開發(fā),它具有以下特點:

迭代運用一組活動來評估一組斷言、消除一組風險、完成一組開發(fā)目標,并逐步生成和提煉有效的解決方案。

之所以稱為“迭代”,是因為它通過反復運用核心開發(fā)活動,不斷增進對問題的理解程度、完善解決方案的定義和促進實現(xiàn)解決方案。

之所以稱為“增量”,是因為每經(jīng)歷一個迭代循環(huán),都可以增進對問題的了解,增強解決方案的能力。

通過連續(xù)多次應(yīng)用迭代循環(huán)來打造一個項目。

真正有效的開發(fā)活動必須兼具迭代和增量特點。如果開發(fā)活動僅有迭代特點,沒有增量特點,那么,雖然可以一次次地迭代執(zhí)行活動,卻不能朝著項目既定目標前進;換句話說,不能降低風險,也不能逐步構(gòu)建解決方案。循序漸進地降低風險和穩(wěn)步邁向項目目標是迭代和增量開發(fā)的品質(zhì)保證。

2 迭代式開發(fā)

1.軟件開發(fā)存在巨大的風險,但問題到底出在哪里呢?這對于問題的解決至關(guān)重要。

1)在沒有深刻理解業(yè)務(wù)需求的情況下就必須完成需求分析;

2)客戶在沒有弄明白自己的真正需求的情況下就被要求確定軟件的業(yè)務(wù)需求;

3)在沒有與客戶再次溝通的情況下埋頭苦干,直到完成開發(fā)并交付客戶。

2.既然問題出在這里,就可以制訂解決辦法:

1)業(yè)務(wù)需求的分析不再是一蹴而就,而是貫穿軟件開發(fā)的始終。一方面,在與客戶的持續(xù)溝通中加深業(yè)務(wù)領(lǐng)域的理解,進而加深對業(yè)務(wù)需求的理解,另一方面,客戶也在加深對軟件的理解,進而完善自己的需求。

2)軟件開發(fā)的過程不再是單反面的埋頭苦干,而是雙方的良性互動。定期的用戶體驗,可使用戶及時了解項目進度,發(fā)現(xiàn)軟件問題,并及時提出來予以糾正,使軟件的開發(fā)不斷朝著正確的方向前進。

這就是迭代式開發(fā)。它是對以往開發(fā)模式的一種革新,但不是對以往開發(fā)模式的完全否定與摒棄,而是一種改造。

以往的瀑布式軟件開發(fā)模式將整個軟件開發(fā)過程分為四個階段:需求分析、設(shè)計、開發(fā)、測試。與瀑布式軟件開發(fā)不同,迭代式軟件開發(fā)首先將整個開發(fā)過程分為一個又一個的小段,每個小段大概在20個工作日左右,被稱為“迭代(Iteration)”。一個迭代就是一個小的開發(fā)過程,如同瀑布式開發(fā)一樣被分為四個階段:需求分析、設(shè)計、開發(fā)、測試。

采用迭代式開發(fā),就是將以往的一個瀑布,變成了數(shù)個循環(huán)往復的瀑布,使軟件以進化的方式逐漸推進。

最初的迭代,開發(fā)的是軟件最基本最主要的功能,經(jīng)過第一次迭代以后交付給客戶。這時候客戶看到的,不再是虛無縹緲的需求描述,而是實實在在的軟件界面。在此基礎(chǔ)上,客戶可能會認可設(shè)計,也可能提出一些改進意見。修改這些意見,開始進入第二次迭代。第二次迭代可能是在第一次迭代的基礎(chǔ)上進一步豐富和完善功能,也可能是進一步實現(xiàn)其它第一次迭代還未實現(xiàn)的功能,之后再次交付客戶。

如此循環(huán)往復,使不斷在需求分析、設(shè)計、開發(fā)、測試,以及交付中,推進軟件開發(fā)。這樣的開發(fā)過程,注定最終交付給客戶的是他們滿意的軟件。這就是迭代式軟件開發(fā)。

3 迭代特點

迭代開發(fā)的本質(zhì)是一種以團隊為基礎(chǔ)的解決問題和開發(fā)解決方案的方法。它需要各參與方(包括開發(fā)團隊、客戶團隊和管理團隊)采用多種協(xié)作技術(shù)。為了研究這種理念,需要考慮迭代開發(fā)對參與軟件開發(fā)項目的最常見角色的影響。

想一想?yún)⑴c軟件開發(fā)的角色,會發(fā)現(xiàn)這些角色分為三大類。

核心開發(fā)團隊 這些人員關(guān)注于按照要求設(shè)計和開發(fā)解決方案,包括應(yīng)用核心開發(fā)原理(架構(gòu)、分析、設(shè)計、實現(xiàn)和測試等)開發(fā)優(yōu)質(zhì)組件和解決方案。

客戶團隊 這些人員關(guān)注于確定要解決的問題以及要構(gòu)建的內(nèi)容(包括更改業(yè)務(wù)流);他們必須確保完成的解決方案為委托方提供足夠大的利益。

管理團隊 這些人員關(guān)注于確??蛻簟I(yè)務(wù)和開發(fā)目標是一致的,確定問題是正確的,構(gòu)建了解決這些問題的正確方案,開發(fā)工作正以高效和受控方式進行。

4 迭代的角度分析

1.站在核心開發(fā)團隊的角度分析迭代

站在核心開發(fā)團隊的角度分析項目的變化。該團隊負責應(yīng)用開發(fā)原理生成滿足客戶要求的系統(tǒng)的發(fā)布版本,開發(fā)原理包括分析、設(shè)計(包括架構(gòu))和實現(xiàn)(包括單元和集成測試)。即使分配客戶代表或業(yè)務(wù)分析師直接參與工作或永久加入開發(fā)團隊,也認為應(yīng)由客戶團隊提出要求。下一節(jié)將站在客戶團隊的角度分析迭代。

2.站在客戶的角度分析迭代

為了兌現(xiàn)迭代和增量開發(fā)的所有承諾,您必須確保這種實踐的影響超出了技術(shù)和開發(fā)社區(qū)。在理想情況下,應(yīng)用的迭代實踐將深入地、持續(xù)地影響到參與項目的所有業(yè)務(wù)人員,還從根本上改變了這些人描述、支付和實現(xiàn)商業(yè)利益(由成功開發(fā)軟件解決方案帶來)的方式。

如果迭代和增量開發(fā)的采用沒有影響到業(yè)務(wù),也不影響實現(xiàn)迭代開發(fā)解決方案提供的利益的方式。那么這種采用僅起技術(shù)保障作用,對開發(fā)團隊之外的圈子幾乎沒什么影響。為了釋放全部潛力,還必須改變項目與利益相關(guān)方的交互方式。

絕大多數(shù)迭代和增量開發(fā)文獻都濃墨重彩地分析開發(fā)人員和開發(fā)團隊領(lǐng)導者。雖然此方法對開發(fā)團隊的影響至關(guān)重要,但迭代和增量開發(fā)的真正價值在于其極大地提升商業(yè)效果的潛力。為了取得這樣的利益,客戶代表、業(yè)務(wù)分析團隊、系統(tǒng)的最終用戶、業(yè)務(wù)領(lǐng)導者(贊助方)等業(yè)務(wù)人員必須積極參與到項目中來,而且需要改變他們與開發(fā)團隊的交互方式。本節(jié)將分析這些變化及影響。將分別考慮這四類客戶的觀點,以及采用迭代和增量的變化如何對整個業(yè)務(wù)產(chǎn)生積極影響。

3.站在管理團隊的角度分析迭代

前面介紹了在一系列迭代(專注于提供業(yè)務(wù)價值)中開展協(xié)作的業(yè)務(wù)團隊和開發(fā)團隊,下來需要站在管理人員的角度分析迭代,并了解這種做法的重要性。

首先,設(shè)想一個缺乏管理指導的軟件開發(fā)項目(可能親身經(jīng)歷過這樣的項目)的場景。這樣的項目通常缺少中長期發(fā)展規(guī)劃,進展方向隨意而為,幾乎沒有哪個團隊成員了解要去往何方。如果沒有迭代計劃,將無從了解項目將在何時結(jié)束,完成項目需要哪些資源,或者何時需要這些資源。沒有估算系統(tǒng)來幫助判斷項目成本,客戶和投資方只會為最小的項目注資,人們幾乎不知道項目如何發(fā)展,以便達到交付解決方案的目標。

落入理想主義的陷阱將認為,如果團隊致力于實現(xiàn)目標,將會自行組織、履行對組織的所有承諾,并快速高效地交付高質(zhì)量的軟件。在現(xiàn)實中,即便是最優(yōu)秀的團隊也需要進行必要的監(jiān)督才能確保日復一日的工作向著長期目標邁進。更重要的是,通過管理才能將團隊擰成一股繩。

缺乏管理往往是造成很多項目失敗的根本原因。人們(特別是那些非管理者)很容易誤認為,管理基本上就只需要一些官僚主義,管理者的職責就是保持這種官僚色彩,而讓其他團隊成員去努力工作。實際上,許多平庸的管理者在一定程度上也確實是這樣做的;如果管理者所做的就是這些,項目將很可能失敗。

管理不僅是做筆記、監(jiān)督時間表和留意預算;領(lǐng)導力和工作方向是取得成功的基礎(chǔ)。正確的管理為以下基本問題給出了清晰的答案。

“正在解決正確的問題嗎?”

“有資源交付解決方案嗎?”

“正在做正確的事嗎?正在逐漸靠近最終目標嗎?”

“在愚弄自己,誤認為們真的可以在規(guī)定的時間內(nèi),使用分配的資源交付解決方案嗎?”

規(guī)劃和評測不會自行發(fā)揮作用,它們是幫助管理者回答上述問題的工具。有人會指出,優(yōu)秀的管理者是懷有進取心的懷疑論者:他們找出問題并在問題仍處于管理和控制范圍時克服問題。管理是一門智能預測藝術(shù)。

5 小結(jié)

采用迭代和增量的開發(fā)技術(shù)不完全是技術(shù)決策,不只影響參與到項目中的開發(fā)人員和其他技術(shù)人員。它代表項目構(gòu)思和進展方式的根本變革,變化影響著參與項目的每個人。迭代開發(fā)要求改變整個項目團隊的工作和交互方式,其中包含改變項目管理方式。

在開發(fā)團隊成員看來,迭代和增量開發(fā)賦予他們力量,使他們能使用自認為最恰當?shù)姆绞椒e極主動地消除項目風險和挑戰(zhàn)。通過設(shè)定清晰目標和客觀度量結(jié)果(而非規(guī)定活動細節(jié))來管理迭代,確保開發(fā)成員找到交付結(jié)果的最佳途徑。

從客戶和商業(yè)團隊角度看,由于引入了清晰、有意義的目標,而且能夠評審可演示的結(jié)果,新軟件的最終使用者將在項目開發(fā)中扮演積極角色,并與開發(fā)團隊共享所有權(quán)。迭代對于所有參與到項目的商業(yè)人士都有著深遠持久的影響,從根本上改變了他們指定、支付和實現(xiàn)軟件解決方案的商業(yè)利益的方式。

在管理團隊看來,每個項目都分成了一系列較小項目(稱為迭代),后一個迭代基于前一個迭代的結(jié)果進行構(gòu)建,以循序漸進地實現(xiàn)宏觀項目目標。這種劃分方法引入了可以按標準方式加以評估的里程碑,使項目一直在正確軌道上前進,同時使開發(fā)團隊能夠創(chuàng)建具有革新意義的高效解決方案,盡量確保項目取得成功。

猜你喜歡
增量解決方案軟件
導彈增量式自適應(yīng)容錯控制系統(tǒng)設(shè)計
提質(zhì)和增量之間的“辯證”
禪宗軟件
解決方案和折中方案
簡潔又輕松的Soundbar環(huán)繞聲解決方案
“價增量減”型應(yīng)用題點撥
軟件對對碰
基于均衡增量近鄰查詢的位置隱私保護方法
即時通訊軟件WhatsApp
7大睡眠問題解決方案