iT邦幫忙

2025 iThome 鐵人賽

DAY 13
0
IT 管理

認識 Disciplined Agile:打造情境導向的敏捷之路系列 第 13

Day-13 Disciplined Agile 的生命週期:六種交付方式與應用情境

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20250923/20072027nlk4QMPWeJ.png

在敏捷的世界裡,我們經常被告知要「快速交付」、「持續學習」、「擁抱變化」。但問題是所有團隊都適合用同一種交付方式嗎?

想像以下三種情境:

  • 一個剛成立的新創團隊,還在探索市場是否真的存在。
  • 一個穩定運作的產品團隊,每週都要上線新功能給全球用戶。
  • 一組支援團隊,整天處理突發事件與技術債修補,規劃不出未來一週的實際任務。

這三種團隊,能套用一樣的迭代節奏、一樣的待辦清單管理模式嗎?顯然不行。

而這正是 Disciplined Agile(簡稱 DA)所要解決的問題。

DA 不認為有一體適用的交付流程,而是提供多種生命週期(Life Cycle)選項,讓團隊依據自身情境選擇最適合的工作方式(Way of Working, WoW)。這些生命週期就像是一組多功能工具箱,團隊可以根據自己所處的環境,自由選擇最合適的方式來進行工作。不但可以降低流程與文化的衝突,也更容易取得實際成效。

  • 想小步試驗、不確定方向:用探索式生命週期
  • 要穩定開發、有節奏交付:選 DA Agile 生命週期
  • 變動快速、任務即時處理:採 DA Lean 生命週期
  • DevOps 成熟、能夠自動部署和交付:試試持續交付 Agile 生命週期或 Lean 生命週期
  • 需要多團隊同步交付:進入 Program 生命週期

以下將逐一介紹這些生命週期的特性、適用情境、背後的設計原則,並說明如何根據專案階段與團隊成熟度做出最適選擇。因為在 DA 裡頭,「選擇最適合的交付方式」不是起點,更是一種持續進化的能力。

DA Agile 生命週期:擴充版的 Scrum 應用情境

https://ithelp.ithome.com.tw/upload/images/20250923/20072027B297qE8fJv.png

對多數剛接觸敏捷的團隊來說,Scrum 是最常見也最容易入門的做法。而 DA 的 Agile 生命週期,就是從 Scrum 出發,再加上更完整的實務考量,讓它能在現實情境中更穩定落地。

這個生命週期以時間盒迭代(Time-boxed iteration)為基礎,團隊會在固定的週期(例如兩週)內,完成一批具有價值的功能,並於迭代結束時進行驗收、回顧與規劃下一輪工作。乍看之下與 Scrum 非常相似,但實際上它做了幾項關鍵性的擴充:

更清楚的起始與結束階段

Scrum 著重於建構(Construction)階段,但在實務中,團隊在開始之前往往需要一些準備工作,例如組建團隊、釐清目標、設計整體架構等。在交付之後也可能還有一連串的部署、驗收與移交流程。

DA Agile 生命週期因此將專案劃分為三個主要階段:

  1. 啟動階段(Inception Phase):確認願景、規劃資源、探索範圍。
  2. 建構階段(Construction Phase):以迭代方式產出可交付的功能。
  3. 交付階段(Transition Phase):確保部署準備完成,並成功交付。

這樣的安排更貼近現實,也讓團隊在各階段能有明確的流程目標(Process Goals)與導引。

引入流程目標,更具彈性

在 Scrum 裡,流程是固定不可變動的:每天站會、每兩週一次迭代、回顧與展示等。但 DA 並不要求團隊照做流程,而是提供一系列的流程目標與選項,讓團隊可以根據情境作出最佳選擇。這些選項都以「目標導向」的方式組織,不只是教團隊「怎麼做」,而是先問「為什麼要做」,再引導「有哪些做法可選」。

支援 Scrum 以外的術語與做法

DA 是一個方法論的集合體,因此強調術語中立。在 DA Agile 生命週期中,雖然流程與 Scrum 類似,但不一定非得使用 Scrum 的語言,例如可以說「工作項目清單(Work Item List)」而不是「產品待辦清單(Product Backlog)」,也可以使用自己的命名與習慣,只要團隊有共識。這種設計降低了實施門檻,也讓不同背景的團隊能有更順暢的適應過程。

適用情境與建議條件

DA Agile 生命週期特別適合以下情境使用:

  • 團隊剛開始導入敏捷,熟悉 Scrum 或 XP 等方法。
  • 工作屬於有明確範圍的專案型任務。
  • 功能開發以新功能或擴充為主,可事先預估與排序。
  • 團隊規模不大,並且具備基礎敏捷儀式與角色知識。

DA Agile 生命週期也是最常被用來作為敏捷轉型初期的起點,在熟悉流程與觀念之後,日後可以再轉換成其他生命週期,例如 DA Lean 生命週期或持續交付生命週期等。

DA Lean 生命週期:持續流動式的拉動系統

https://ithelp.ithome.com.tw/upload/images/20250923/20072027IxXIfvwW1I.png

不是每個團隊都適合用「固定兩週為一輪」的迭代方式運作。

有些團隊面對的需求來得快、變得也快,根本沒時間規劃完整的迭代。有些團隊的任務無法事先估算工作量,只能邊做邊調整節奏。還有些團隊工作性質就像是流水線,當誰有空誰就做,做完就交付,不需要等到迭代結束才交付。

這時候,DA Lean 生命週期會是一個更好的選擇。

拉動式工作流程,取代時間盒節奏

DA Lean 生命週期不再使用固定週期的「迭代(Iteration)」概念,而是以拉動式(Pull-based)的工作機制為核心。只要團隊有空,就從工作池中拉取(Pull)下一項任務進來處理。

也就是說,團隊不是根據「現在第幾週」,而是根據「有沒有空、有沒有完成」來決定什麼時候開始新工作。

不同工作有不同節奏,靈活應對變化

傳統迭代方式,會把規劃、設計、編碼、測試、展示、回顧等活動都綁在同一個節奏上。但在 DA Lean 生命週期中,這些活動可以各自照自己的節奏進行。

  • 有的工作在剛接手時就需要先討論清楚,立刻規劃
  • 有的工作完成後可以馬上釋出,不用等整批完成
  • 有的展示會議可以等一段時間再做,不用每週開會

這讓團隊可以依實際狀況安排節奏,而不是為了配合迭代而「硬湊流程」。

從「產品待辦清單」改為「工作池」

在 Scrum 中,工作會排成一個待辦清單(Product Backlog),由產品負責人排好優先順序,再依序拉進迭代中。

而在 DA Lean 生命週期中,工作來源變得更彈性,稱為「工作池(Work Item Pool)」。這個池子中可能有:

  • 高優先的需求變更
  • 立刻要處理的緊急問題
  • 固定排程的任務
  • 某些具有時效性的法規或合約項目
  • 無形價值的改善任務

有些任務還必須插隊處理,有些可以等一等,這就需要團隊透過明確的「拉動規則」來管理。

使用看板(Kanban)進行流程控制

為了讓這種流動式的流程能夠順利運作,DA Lean 生命週期通常會搭配看板系統:

  • 每個工作項目會依狀態進入不同欄位(待辦、處理中、測試中、已完成)。
  • 限制每一欄的在製品(Work in progress, WIP)數量,避免工作堆積。
  • 讓整體流程可視化,隨時掌握進度與瓶頸。

這也是 DA 工具箱中強調「視覺化價值流程」與「限制 WIP」的實務應用。

適用情境與建議條件

DA Lean 生命週期特別適合以下情境:

  • 維運團隊、客服團隊、基礎建設團隊等無法預測任務的團隊。
  • 常常需要處理緊急插單,需求變化快。
  • 目標是穩定交付而非衝刺完成特定目標。
  • 團隊希望以最少流程約束運作,提高彈性。

不過前提是團隊具備有一定的自主管理能力,否則容易因流程過於鬆散而無法掌握節奏。

DA 持續交付 Agile 生命週期:迭代式的頻繁部署節奏

https://ithelp.ithome.com.tw/upload/images/20250923/200720274SgPNXoSDf.png

對於成熟的產品型團隊來說,單靠固定的迭代節奏已經不夠敏捷。若每次迭代都還要再等待一段時間才能部署到生產環境,不僅會延遲價值交付,也會增加部署風險與複雜度。

這就是為什麼 DA 提供了持續交付 Agile(Continuous Delivery: Agile)的生命週期選項,讓團隊不只能「每兩週交付一次」,而是能夠「每兩週部署一次」,甚至更頻繁。

從 Scrum 出發,邁向穩定的部署節奏

DA 持續交付 Agile 生命週期是在 Scrum 式迭代節奏的基礎上,加強 DevOps 與品質自動化能力,使團隊能夠在每次迭代結束時,將完成的功能直接釋出到正式環境中,而不再只是內部驗收。這代表:

  • 每次迭代的產出都是可立即部署的產品增量。
  • 團隊已具備穩定的測試自動化與部署機制。
  • 部署的時間點不再依賴專案階段或手動整合作業。

這不但減少了等待與延遲,也讓使用者能更快體驗到價值。

頻繁部署的關鍵:技術與流程能力

要實現這種部署節奏,團隊必須同時具備以下幾項能力:

  • 自動化測試:包括單元測試、整合測試與回歸測試,確保每次變更都不會影響既有功能。
  • 持續整合(Continuous integration, CI):所有程式碼變更都能自動整合與驗證,避免分支地獄。
  • 持續部署(Continuous deployment, CD):具備一鍵部署、版本控管、部署日誌與回滾機制。
  • 可觀測性(Observability):部署後可立即監控系統狀態、錯誤率與使用情況,確保品質穩定。

若缺乏這些基礎,就算流程規劃再敏捷,部署仍然可能成為瓶頸。

部署週期可短至每日、週週部署也很常見

持續交付 Agile 生命週期並不是強調「每天一定要上線」,而是具備隨時部署的能力,並根據產品與業務情境設定合適的頻率。

常見的部署節奏包括:

  • 每週一部署
  • 每兩週部署一次(與迭代結尾同步)
  • 每天合併完成即部署(前提是工作夠細、風險控管到位)

重點在於:部署不再是特別的事,而是日常的一部分。

適用情境與建議條件

DA 持續交付 Agile 生命週期適合以下團隊使用:

  • 長期穩定的產品型團隊。
  • 工作以功能增量交付為主,非一次性大專案。
  • 已建立成熟的 DevOps 能力及流程與自動化的工具鏈。
  • 希望能頻繁釋出新功能給用戶,快速取得回饋。

從迭代式交付,走向真正的持續流動

DA 持續交付 Agile 生命週期是一個過渡階段。當團隊進一步打通組織內部的批准流程、環境配置與基礎架構協作,便可以再向上升級為:

  • 持續交付 Lean 生命週期:拉動式、無節奏限制的交付節奏
  • Program 生命週期:多團隊協作下的大規模持續交付

這代表,從持續交付 Agile 生命週期出發,是推動組織敏捷與 DevOps 能力成熟的關鍵起點。

DA 持續交付 Lean 生命週期:快速、頻繁地推向市場

https://ithelp.ithome.com.tw/upload/images/20250923/20072027ZPIUOqSaV4.png

當團隊已經建立起完整的 DevOps 能力與自動化部署流程後,就不再需要等到「一個迭代結束」才部署。只要有價值,就可以隨時交付。

DA 持續交付 Lean(Continuous Delivery: Lean)生命週期就是專為這類高度成熟團隊設計的生命週期。它取消了固定的節奏限制,讓團隊可以用最小單位持續交付價值,甚至達到每天多次上線的能力。

從「準備交付」到「隨時交付」

不同於 Scrum 式的迭代交付,DA 持續交付 Lean 採用的是流動式工作模式,每個工作項目一完成就可以部署。

這種模式強調:

  • 無節奏限制:不用再等到迭代結束或專案階段才交付。
  • 最小批次單位:將功能切到最小商業增量(Minimum Business Increment, MBI)。
  • 部署即交付:交付就是價值實現,不需再另行安排發行日期。

這讓整個交付流程變得更加即時,也讓市場回饋更快速。

穩定快速的交付靠的是背後的工程能力

能夠實踐持續交付 Lean 的團隊,通常具備以下成熟能力:

  • 持續整合(CI)與持續部署(CD)流程完善。
  • 自動化測試高度普及,可在每次提交時完成驗證。
  • 自動部署與監控機制完備,部署後能即時觀察系統行為。
  • 微服務架構或模組化設計,讓單一變更不會影響整體系統。
  • 以價值流為核心的工作拆解能力,確保每次交付都具有用戶價值。

這些基礎建設與工作習慣的養成,往往需要幾年時間逐步演進,並非一蹴可幾。

像呼吸一樣自然的交付節奏

在持續交付 Lean 生命週期模式下,部署節奏不是規定出來的,而是自然流動的結果。以下是常見的模式:

  • 開發完成、測試通過、自動部署後使用者便能立刻使用。
  • 單日部署次數可能多達數十次(例如:大型雲端產品)。
  • 系統具備功能切換(Feature Toggle)機制,可控制哪些功能是否釋出。
  • 異常發生時可快速回滾,並自動生成版本記錄與報告。

換句話說,部署會變成一種日常背景作業,而不是需要特別通知、準備或配合的「大事」。

適用情境與建議條件

DA 持續交付 Lean 生命週期特別適合下列類型的團隊或組織:

  • 已經高度產品化、模組化的系統架構。
  • 技術與業務具備高度協作能力,能隨時釋出新功能。
  • 面對競爭激烈的市場,需要快速回應使用者需求。
  • 部署成本與風險已被降到最低,變更頻繁不再是問題。

典型案例如雲端服務平台、行動應用團隊、API 開發服務等。

探索式生命週期:從 Lean Startup 到產品化

https://ithelp.ithome.com.tw/upload/images/20250923/20072027TzMJJcajAX.png

不是每個專案在一開始就知道「要做什麼」。有時候,我們只是有一個模糊的想法,想解決某個問題、嘗試某個商機,或者只是想測試一個假設。這種情境下,若一開始就投入大量人力開發,風險極高,很可能會花了很多錢,卻發現方向錯了。

探索式生命週期(Exploratory Life Cycle) 正是為了解決這種「經驗知識不足」的情境而設計。它融合了 Lean Startup 的實驗精神與敏捷開發的迭代回饋機制,幫助團隊在最小投入下快速學習,逐步驗證想法,直到確認可以進入產品化階段。

不以交付為目標,而以學習為目標

與其他生命週期強調「交付可用產品」不同,探索式生命週期的重點在於:

  • 釐清問題是否真實存在。
  • 確認市場是否真的需要這個解法。
  • 驗證使用者是否願意為此付費。
  • 找出可行的商業模式或技術路徑。

這些問題無法透過規劃會議回答,只能透過實驗與實作學習而來。每一次實驗就像是在試探地圖上的一條路徑是否可行。

以最小可行實驗逐步探路

在探索式生命週期中,我們不做完整產品,而是設計一連串的「最小可行實驗(Minimum Viable Experiment, MVE)」,每次只驗證一個核心假設:

  • 有人真的遇到這個問題嗎?
  • 這個解法能吸引目標客群嗎?
  • 使用者是否願意採用甚至付費?
  • 使用者行為是否與我們預期一致?

這些 MVE 通常會以著陸頁(Landing Page)、互動原型、假功能測試(Fake Door Testing )、手動服務、AB 測試等形式呈現,重點不是功能完整,而是快速獲得真實反饋。

驗證四個核心面向:問題、需求、解法、價值

探索式生命週期的驗證邏輯通常會依序經過以下四個層次:

  1. 問題是否值得解決?
    若沒人覺得有問題,就不需要解法。

  2. 需求是否有市場?
    有幾個人需要,不重要,重要的是「夠不夠構成一個市場」。

  3. 解法是否被接受?
    解法可能合理,但若使用者不願使用,也無法落地。

  4. 使用者是否願意付出代價?
    真正的價值驗證,是用戶願意用時間、金錢、信任來交換成果。

唯有通過這些驗證,我們才具備足夠信心,讓產品從「實驗」走向「產品化」。

從探索走向產品化的轉換時機

探索不會無限期持續,當團隊完成足夠的驗證後,就會轉入其他生命週期,切換至 DA Agile 生命週期或 DA Lean 生命週期,進行建構與交付。這樣的設計讓探索階段不只是試水溫,而是正式納入交付節奏中的一環,與其他生命週期自然銜接。

適用情境與建議條件

探索式生命週期適合以下情境:

  • 新創團隊:手上只有一個想法,尚未建立起產品或市場。
  • 創新實驗室:需要快速測試商業構想或技術可行性。
  • 新功能開發前期:想先確保方向正確再擴大投入。
  • 使用者需求不明確、市場假設未被驗證。

這類團隊通常需要高度的學習意願、數據分析觀念,以及快速實驗與決策的能力。

Program 生命週期:多團隊協作的架構治理

https://ithelp.ithome.com.tw/upload/images/20250923/200720275etpJ0dwMh.png

當單一團隊無法獨立完成產品交付時,就需要多個團隊協作。但只要牽涉到跨團隊,就不只是工作分配問題,而是整體架構、節奏、責任與決策的協調問題。這正是 Program 生命週期的角色:為多團隊協作建立一個有節奏、有治理的運作架構,確保大家朝著同一個產品願景共同前進,同時維持各自的敏捷性。

一個產品,多個團隊,不同的工作方式

在 Program 生命週期模式下,不同的子團隊(Sub-teams)可能採用不同的生命週期:

  • A 團隊用 DA Agile 生命週期,以迭代開發功能模組
  • B 團隊用 DA Lean 生命週期,持續處理平台維運工作
  • C 團隊採探索式生命週期,試驗新功能的市場需求

每個子團隊可依自身情境選擇最適合的工作方式(WoW)。但在此之上,需要一個統一的「Program 層治理」來整合節奏、技術架構與交付計畫。

Program 層要解決的核心問題

  • 架構一致性
    每個團隊做的模組都要能整合成一個完整的系統,不能各自為政。

  • 交付節奏協調
    雖然各團隊節奏不同,但仍需有共同的整合和釋出時機,避免落差過大。

  • 跨團隊依賴管理
    功能與功能之間往往互有依賴,需有人持續追蹤、調整與協調優先順序。

  • 利害關係人對齊
    商業面、技術面、使用者端需定期整體溝通,避免只聽到個別團隊的聲音。

  • 整體可視化與決策透明
    包括整體進度、風險、品質、財務與目標的追蹤與調整。

Program 團隊的典型角色

在 Program 生命週期模式中,除了各個交付子團隊外,還需設置一個專責的 Program 團隊,負責整合與治理,典型角色包括:

  • Program Manager(或稱 Release Train Engineer):協調整體節奏與團隊協作,排除大型障礙。
  • Chief Product Owner / Product Manager:負責統整產品策略、路線圖與跨團隊產品待辧清單。
  • Architecture Owner / Enterprise Architect:協助子團隊遵循整體架構原則,兼顧一致性與演進性。
  • 跨職能代表(如 QA、Security、Compliance):支援 Program 層級的整體性品質要求。

不等於「大型 Scrum」,而是分層治理與協作機制

Program 生命週期模式不是把 Scrum 放大,也不是讓每個團隊硬塞在同一個節奏裡。而是透過讓團隊各自敏捷(Loosely Coupled)但整合節奏點(Tightly Aligned),治理但不干涉細節,而是關注整體流動與價值的方式進行分層協作。

這樣才能真正實現「多團隊自主、整體協作高效」的交付能力。

適用情境與建議條件

Program 生命週期特別適合以下情境:

  • 同一個產品需要三個以上團隊共同開發。
  • 涉及多模組、複雜架構或多平台整合。
  • 有明確的整體願景,但交付需分段、分團隊進行。
  • 各團隊已有一定的敏捷成熟度,但需要一個上層的整合機制。
  • 有大型利害關係人(如企業高層、外部合作夥伴)需要整體進度掌握與對齊。

常見的例子包括:企業級內部系統平台開發、大型電商網站重構、跨國開發專案等。

選擇生命週期,是敏捷成熟的起點,不是終點

DA 最大的特色,就是它不會說「應該怎麼做」,而是幫團隊找到「什麼最適合團隊」。這個觀念在選擇交付生命週期時尤其重要。因為不同的團隊、不同的產品階段、不同的技術成熟度與市場需求,都可能需要不同的交付方式。沒有一種做法能通吃所有情境。

在選擇生命週期之前,可以先自問這三個問題:

  1. 我們對產品要做什麼,有多明確?

    是已經確認的產品?還是剛開始探索方向?

  2. 團隊能多快把功能變更部署到使用者手上?

    是靠手動部署?還是已有完整自動化流程?

  3. 目前的開發團隊人數與結構?

    是單一團隊就能搞定?還是需要多個團隊協作?

這些問題能幫助團隊判斷自己目前所處的成熟度與情境,進而找到對應的生命週期選擇。

最重要的是,選擇生命週期不是一次性的決定,而是一個隨著情境演進而不斷調整的過程。DA 鼓勵團隊每隔一段時間就檢視現況、分析成效,並思考是否該調整工作方式。這種心態,才是持續改善的根本。所以不用擔心一開始選錯答案,重點是有沒有能力與意識去「選擇、試驗、調整、再選擇」。

敏捷團隊之間的差異,不只是規模或工具的不同,更是交付節奏、工作特性、組織責任與學習方式的根本差異。因此交付生命週期不該只有一種選擇,也不應該永遠只用一種方式。真正有彈性的團隊會根據學習結果調整生命週期配置,甚至在一個大型產品中同時運行多種生命週期,並透過流程目標與 WoW 改進機制,持續優化整體交付流程。

敏捷不是做法,而是一種思維方式。DA 用一系列實用的生命週期,幫助團隊將這種思維轉化為日常工作習慣,從而建立真正有適應力的組織文化。



上一篇
Day-12 建立工作協議與持續改善:團隊如何自我演進 WoW
系列文
認識 Disciplined Agile:打造情境導向的敏捷之路13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言