敏捷開發方法

2022-12-17 08:12:03 字數 2657 閱讀 2052

常見的敏捷開發流程比較

2010-07-13**:網路

速度是企業競爭致勝的關鍵因素,軟體專案的最大挑戰在於一方面要應付變動中的需求,一方面要在緊縮的時程內完成專案,所以軟體團隊除了在技術上必須日益精進,更需要運用有效的開發流程,以確保團隊能夠發揮綜效。這正是agile process (敏捷的軟體開發流程)於近年來興起的主要原因,本文將介紹數種廣為接受的軟體開發流程,及其在運用上的建議。1 agile process -敏捷的開發流程

幾乎所有的軟體專案都會在起始階段面臨選擇開發流程的困難,一種是完備的開發流程,另一種是簡易輕便的流程。雖然我們了解採用完備的開發流程可以提高軟體的品質,但是因為欠缺人力、工具與時間,我們常會被迫採用簡化的流程,但事與願違,大部分的情況我們仍然難以在預算內及時完成專案。

agile process (敏捷的開發流程)是一種軟體開發流程的泛稱,agile process具有下列幾項共通的特性:

1).客戶與開發人員形成密切合作的團隊,因為客戶無法於初期定義完整的規格,而開發人員於開發過程中也常常無法知悉外在環境或業務的變動,所以需要兩者密切合作方能開發適用的軟體。2).

專案最終的目標是可執行的程式,因此所有的中間產品必須經過審慎評估,確認有助於最終目標,才需要製作中間產品。

3).採用iterative與incremental方式分階段進行,密集review是否符合需求。4).流程可以簡單,但規劃與執行必須嚴謹。

5).強調團隊合作,賦予高度的責任,團隊有自主權得以因應變化做調整。2 rup開發流程- rational unify process

rup為ibm rational公司經過多年的研發與經驗所提出的軟體開發流程,其內容含蓋businessmodeling, requirement modeling, logical design, implementation, testing, deployment等軟體開發生命週期的直接工作,與project management, change & configuration management,environment support等支援性工作。rup的內容非常豐富,不同的專案需要不同調整,ibm rational提供rup workbench工具,方便調整rup,並公布於web,方便專案成員遵循統一的流程規範進行工作。rup的主要精神為:

1.專案進行採用iterative程式分階段漸進地完成專案功能;

2.廣泛使用visual modeling於商業需求分析、系統分析與系統設計;

3.強調架構設計;

4.對每項工作所需要的技術、工具、做法、範本、檢查專案均有詳細的定義,架構完備且具有可調整的彈性。

因為rup的流程規範與相關技術較複雜,所以匯入時必須注意幾個因素:1.主管的支援以確保足夠的資源投入;2.分階段匯入;

3.適當的訓練與密切的顧問諮詢;

4 .使用modeling技術時需要考量coding的實作環境;5.良好團隊的管理,以溝通、耐心與堅持解決變革的人性阻力。3 xp開發流程- extreme programming

xp亦稱為終極流程,是最輕量級的開發流程,其最主要的精神是『在客戶有系統需求時,給予及時滿意的可執行程式』,所以最適合需求快速變動的專案。xp經過6年的實作與修改,已演化為精緻的開發流程,但仍不失其精簡的特性,它強調客戶所要的是workable的執行碼,所以把與撰寫程式無關的工作降至最低,並要求客戶與開發人員最好以side-by-side的方式一起工作。xp開發流程的基本步驟為:

1.開發人員隨時可以和客戶進行有效溝通,撰寫user stories以確認需求。

2.簡易快速的系統設計,撰寫獨立的驗證程式以解決特殊困難的問題,找出演演算法即可丟棄驗證程式。

3.規劃多次小型階段的專案計畫,以最快速度完成每一階段的程式交付客戶,客戶負責acceptancetests;

4. coding前必須完成unit test與acceptance tests程式,所有模組整合前都須經過unit tests;5.開發人員必須快速回應bug與需求變更;

6.要求二人一組使用一台電腦設計程式,當一人coding時,另一人負責思考與設計;7.程式必須符合程式規範,並常做程式的重整(refactoring)。

xp屬於較精簡的流程,於匯入應注意幾件事情:1.最好有顧問給予協助;

2.持續的review;

3.可適當調整流程,但不可失去其基本精神。4 scrum開發流程

scrum開發流程是agile process的一種,以英式橄欖球爭球隊形(scrum)為名,基本假設是『開發軟體就像開發新產品,無法一開始就能定義final product的規程,過程中需要研發、創意、嘗試錯誤,所以沒有一種固定的流程可以保證專案成功』。scrum將軟體開發團隊比擬成橄欖球隊,有明確的最高目標,熟悉開發流程中所需具備的最佳典範與技術,具有高度自主權,緊密地溝通合作,以高度彈性解決各種挑戰,碓保每天、每個階段都朝向目標有明確的推進,因此scrum非常適用於產品開發專案。

scrum開發流程通常以30天為乙個階段,由客戶提供新產品的需求規格開始,開發團隊與客戶於每乙個階段開始時挑選該完成的規格部份,開發團隊必須盡力於30天後交付成果,團隊每天用15分鐘開會檢視每個成員的進度與計畫,了解所遭遇的困難並設法排除。scrum與傳統開發流程及專案管理差異較大,於匯入時最好有顧問協助。5總結

agile process的精神已經成為共識,但是沒有一種固定的流程可以重複使用在不同的專案上。而且不管是rup、xp、scrum、或其他的開發流程都允許相當大的彈性,我們必須按專案性質的不同,調整或混合出適合的開發流程,並允許團隊於進行中做必要的彈性修改,方能達成目標。

敏捷開發與敏捷測試

敏捷開發 1.敏捷型方法是 適配性 而非 預設性 重型方法試圖對乙個軟體開發專案在很長的時間跨度內作出詳細的計畫,然後依計畫進行開發。這類方法在計畫制定完成後拒絕變化。而敏捷型方法則歡迎變化。其實,它們的目的就是成為適應變化的過程,甚至能允許改變自身來適應變化。2.敏捷型方法是 面向人 的 peop...

專案的敏捷開發與敏捷測試

敏捷開發 1.敏捷型方法是 適配性 而非 預設性 重型方法試圖對乙個軟體開發專案在很長的時間跨度內作出詳細的計畫,然後依計畫進行開發。這類方法在計畫制定完成後拒絕變化。而敏捷型方法則歡迎變化。其實,它們的目的就是成為適應變化的過程,甚至能允許改變自身來適應變化。2.敏捷型方法是 面向人 的 peop...

關於敏捷軟體開發

4 團隊成員進行故事點的細分,將故事點劃分為佔據0.5 4天的工作點,工作點貼條,並進行時間估算。5 將寫有任務和時間的貼條張貼到計畫板上。會議流程 1 會議之前,列印本次迭代過程中需要完成的feature,團隊成員會前需要閱讀各項feature 2 會議開始,由團隊po講解各項feature。完後...