Posted on 2008-02-10 23:49
Norvid 閱讀(632)
評論(0) 編輯 收藏 所屬分類:
讀書筆記
基本概念
迭代開發(fā)(iterative development)是UP和大多數(shù)其他現(xiàn)代方法中的關(guān)鍵實踐。在這種生命周期方法中,
開發(fā)被組織成一系列固定的短期(如三個星期)小項目,成為迭代(iteration);每次迭代都產(chǎn)生經(jīng)過測試、集成并可執(zhí)行的局部系統(tǒng)。
每次迭代都具有各自的需求分析、設(shè)計、實現(xiàn)和測試活動。
在迭代的過程中一步步增量式地發(fā)展完整系統(tǒng),這種方法也成為迭代和增量式開發(fā)(iterative and incremental development)。
迭代的輸出不是實驗性的或?qū)G棄的原型,迭代開發(fā)也不是構(gòu)造原型。與此相反,其輸出式最終的產(chǎn)品子集。
早期反饋具有極高的價值。“不錯……但是……”這種早期反饋并不是失敗的標(biāo)志,與此相反,早期頻繁地在“不錯……但是……”中循環(huán),正是改進軟件和發(fā)現(xiàn)什么對涉眾有真正價值的使用方式。
迭代除了可以明確需求外,還將有助于及早地解決和驗證具有風(fēng)險的、關(guān)鍵的設(shè)計決策。
大部分迭代方式建議迭代時間在2~6周之間。短時迭代為上。
迭代的一個關(guān)鍵思想是
時間定量,或時長固定。即必須嚴(yán)格依照時間表來集成、測試和穩(wěn)定局部系統(tǒng)——拖延實踐則違約。如果覺得難以滿足期限要求,則應(yīng)將本次迭代任務(wù)進行拆解,抽出一部分放到下一次迭代中完成,而不是推遲完成的時間。
不要讓瀑布思維侵蝕迭代或UP項目。
進行迭代開發(fā)的步驟:
- 在第一次迭代之前,召開第一個時間定量的需求工作會議,進行高階需求分析,如僅僅確定用例和特性的名稱,以及關(guān)鍵的非功能性需求。在高階需求列表中選取10%具有架構(gòu)意義、高業(yè)務(wù)價值的需求進行功能和非功能性需求的詳細(xì)分析;
- 在第一次迭代錢,召開迭代計劃會議,從做好初步詳細(xì)分析的用例中選擇本次迭代的任務(wù)目標(biāo);
- 在三到四周內(nèi)完成第一次迭代,并嚴(yán)格遵守時間;
- 在第一次迭代即將結(jié)束時,召開第二次需求工作會,對上一次會議的所有材料進行復(fù)查和凈化。然后選擇具有重要架構(gòu)意義和高業(yè)務(wù)價值的另外10%到15%的用例,用一到兩天對其進行詳細(xì)分析;
- 于第一次迭代結(jié)束最后一天舉行下一次迭代的迭代計劃會議;
- 以相同步驟進行第二次迭代;
- 反復(fù)進行四次迭代和五次需求工作會,這樣在第四次迭代結(jié)束時,可能已經(jīng)詳細(xì)記錄了約80%~90%的需求,但只實現(xiàn)了系統(tǒng)的10%;
- 大約推進了整個項目的20%,這是細(xì)化階段。此時根據(jù)分析以及早期反饋、早期編程及測試,已經(jīng)可以獲取系統(tǒng)的概貌和各種風(fēng)險,可以把握住開發(fā)并能估計出需要多長時間來結(jié)束;
- 此后,一般不需要再召開工作會,需求已經(jīng)穩(wěn)定了,接下來時一些列為期三周的迭代。
UP提倡風(fēng)險驅(qū)動(risk-driven)與客戶驅(qū)動(client-driven)相結(jié)合的迭代計劃。這意味著早期的迭代目標(biāo)要能夠
識別和降低最高風(fēng)險,并且能
構(gòu)造客戶最關(guān)心的可視化特性。
敏捷宣言:個體和迭代,超越過程和工具;工作的軟件,超越完整的文檔;客戶協(xié)作,超越合同談判;響應(yīng)變更,超越履行計劃。
UP項目將其工作和迭代組織為四個主要階段:
初始,細(xì)化,構(gòu)造,移交。