什麼是敏捷開發

反覆進行數週左右的短期迭代,每次都做出可運作的軟體、納入使用者的意見,並配合變化的需求重新檢視計畫之開發方式的總稱。代表性的方法有 Scrum 與極限程式設計(XP)。

日文名稱: アジャイル開発

「敏捷開發」出現在1領域的2道練習題中(軟體開發與專案管理等)。

這個名詞所屬的領域: 軟體開發與專案管理

敏捷軟體開發宣言

敏捷開發的思維整理在2001年發表的敏捷軟體開發宣言中。宣言表示:個人與互動重於流程與工具,可用的軟體重於詳盡的文件,與客戶合作重於合約協商,回應變化重於遵循計畫。它承認右側的項目也有價值,但更重視左側的項目,因此並不代表文件或計畫是不需要的。

與瀑布式模型的差異

在瀑布式模型中,先確定需求再以一次的流程完成整體,因此使用者要到開發接近尾聲時才能看到可運作的東西。敏捷開發從優先度高的功能開始一點一點地做,並以短間隔展示可運作的東西,因此能及早察覺需求的誤解或變化。相對地,最終範圍與費用不易在一開始確定,需要合適的合約形式,以及使用者持續參與開發的體制。哪一種較好,取決於需求的確定程度與變更所需的成本。

在接近硬體之開發中的用法

晶片或電路板重做需要龐大的費用與時間,因此硬體本身的開發以及早確定規格的計畫型做法為主。另一方面,韌體、驅動程式、EDA 腳本、驗證環境等軟體,常結合持續整合與自動測試,以敏捷方式開發。在還沒有實機的階段,會先在模擬器或 FPGA 原型上執行軟體,將硬體的時程與軟體的迭代結合起來推進。

練習敏捷開發的題目

在極限程式設計(XP)等敏捷開發中進行的,不改變程式從外部看到的行為,將內部結構整理得容易理解且容易修改的作業為下列何者?

  1. A結對程式設計
  2. B逆向工程
  3. C重構
查看答案與解析

正確答案:C. 重構

重構是透過合併重複的程式碼、拆分過長的函式、使名稱更易懂等方式,在不改變功能的前提下改善程式碼結構的作業。為了確認行為沒有改變,會準備自動化測試,每做一點修改就執行測試。結對程式設計是兩人在一台電腦上一起撰寫程式的 XP 實踐。逆向工程則是分析既有程式以釐清其規格與設計。

常見問題

敏捷開發就不寫設計文件嗎?

並非不寫。敏捷軟體開發宣言表示可用的軟體重於詳盡的文件,但也承認文件的價值。維護或說明安全性所需的文件,會在需要的範圍內撰寫,並與軟體一起更新。

敏捷開發與 Scrum 是同一回事嗎?

Scrum 是敏捷開發的代表性框架之一。敏捷開發是以短期迭代交付價值之思維的總稱,除了 Scrum 之外,還有具備測試驅動開發、結對程式設計等實踐的極限程式設計(XP)等。

解析中的「敏捷開發」

出現「敏捷開發」的題目(2題)

  1. 在極限程式設計(XP)等敏捷開發中進行的,不改變程式從外部看到的行為,將內部結構整理得容易理解且容易修改的作業為下列何者?
  2. 關於軟體開發的瀑布式模型,下列何者是其特徵?

相關名詞

瀑布式模型 工作分解結構(WBS) 分支涵蓋率 白箱測試 要徑法(CPM) 測試驅動開發(TDD) 等價類劃分 黑箱測試 實獲值管理(EVM) 邊界值分析

前往名詞解釋列表