當我們談論軟體開發的「生命週期」時,指的其實是一條從構想到交付的路徑。對 Disciplined Agile(簡稱 DA)來說,這條路徑不是單一路徑,而是一個可以因應不同情境調整的架構。
但無論團隊選擇的是 DA Agile、DA Lean 還是探索式(Exploratory)的生命週期,DA 都會把這個路徑劃分成四個主要階段:
啟動(Inception)
建構(Construction)
交付(Transition)
持續(Ongoing)
很多人看到這種「階段式」劃分,就會誤以為 DA 是傳統瀑布的包裝版。但實際上,這四個階段不是線性的流程步驟,而是用來幫助我們理解「此刻團隊的工作重心在哪裡」。
以 DA Agile 為例,一個迭代的前期可能是「啟動」(先對某個功能做設計與規劃),中期是「建構」(實作與測試),尾聲是「交付」(上線與回饋),這些階段可以在一個迭代中交錯出現。DA 的強項就在於:它不規定團隊一定要怎麼走,而是提供清楚的指引幫助團隊選擇怎麼走。
如果沒有這樣的階段概念,團隊就很容易出現以下狀況:
透過這四個階段,我們可以更清楚掌握團隊當下應該聚焦的任務,也更容易協調角色分工與資源投入。
DA 的生命週期架構不是流程圖,而是一種幫助思考與選擇的地圖。團隊可以從中找到方向,但不被綁住。可以在需要時調整節奏,也能在不同階段聚焦真正重要的任務。這樣的架構,正是 DA 「選擇你自己的工作方式(Choose your WoW)」背後的底層設計。
當一個團隊準備啟動一項新任務,不管是專案還是產品開發,第一步都不能是「直接動手寫程式」。否則就是沒看地圖就出發,迷失方向是遲早的事。
在 DA 中,我們把這個「起步之前的準備」稱為啟動階段,也可以理解成「構想階段」或「定錨階段」。目的是讓團隊朝著同一個方向出發,並有足夠的資訊來做出良好的第一輪決策。
可以用一個簡單的問題來提問:「我們準備好了嗎?能不能開始動手做了?」。如果答案是「不知道」,那就表示啟動階段的任務還沒完成。
常見需要在開發前釐清的問題包括:
DA 強調精實而有價值的起步準備,不是要求團隊在啟動階段就規劃出完整藍圖,否則就又掉回瀑布式專案的老路。
可以把啟動階段想成是一場「協同啟動會議」(Collaborative inception workshop),由團隊和關鍵利害關係人一起進行幾個核心任務:
建立共同願景
確認大家對「這件事的目標與價值」有共識。
初步探索範圍
利用使用者故事、工作項目或原型概念來界定大方向。
確認技術與架構風險
找出可能造成失敗的技術不確定性與限制條件。
評估利害關係人與合作關係
誰會影響我們?我們要取得誰的支持?
建立基本工作方式(WoW)
團隊初步討論如何協作、如何規劃與追蹤工作。
規劃第一輪交付
包含最小商業增量(Minimum Business Increment, MBI)與預期的時間節奏。
啟動階段的重點不在於「有沒有做」,而是要做到什麼程度才算足夠。這會依照團隊的情境而不同,例如:
在 DA 中,我們會透過「流程目標(Process Goals)」來評估每個階段是否達成目的。對啟動階段而言,最關鍵的檢查點就是:
如果這些問題大致都有答案,表示已經具備「有方向地開始」的條件。啟動階段是為了讓團隊有信心出發,而不是拖延起跑的理由。只要準備達到「足夠清楚可以開始行動」的程度,就可以從啟動階段進入到建構階段。
在 DA 的生命週期中,建構階段是最具「產出感」的時期。這時候,團隊已經完成了啟動階段的初步準備,要開始動手「把解決方案做出來」,並且持續打造出可交付的成果。
但這並不代表我們只是埋頭寫程式。建構階段真正的核心,是以使用者價值為中心,逐步交付高品質的可用產品。
這個階段不只是寫程式,更包含整體的產品建構活動。所有這些工作,都是為了確保每一階段都能產出具備價值的東西。
不同於傳統瀑布方法將建構集中在中期、最後才驗收,DA 強調的建構是一種持續交付、快速回饋、持續學習的過程。有以下兩種模式來推進建構階段:
迭代式(Agile)
每隔一至兩週交付一次可用功能。像是 Scrum 的 Sprint。
流動式(Lean)
沒有固定時間框架,只要功能完成就立即交付。
不論哪種模式,關鍵都在於每次交付都要有實質可用的東西,而不只是「進度」或「文件」。
在這個階段,團隊會重複進行以下任務,並透過實作與回饋不斷優化:
計畫迭代或拉取工作項目
實作與測試
定義完成準則(Definition of Done)
展示與回饋(Demo / Iteration Review)
持續改善(Retrospective)
在建構階段,團隊天天都在「完成工作」,但什麼叫做「完成」?又什麼叫做「可以交付」?
如果這兩件事沒有明確定義,那團隊的進度很容易變成假象,甚至導致品質不穩、回饋延遲,最終傷害產品信任感。
DA 提醒我們:
要打造真正的價值,不能只做到「看起來完成」,而是要做到「真的可交付」。
在敏捷開發中,最常聽到的名詞之一就是 Definition of Done(DoD),也就是「完成的定義」。
它不是某個人心中的感覺,而是整個團隊對『完成』所設定的客觀標準,通常會包含:
只有當所有條件都達成,這項工作才算「真正完成」,否則就是「只做一半」。
即使工作完成了,也不代表就能馬上交付。「交付」的重點在於:這項成果是否能被使用者實際使用,並產生價值?
在 DA 中,我們強調產出的是可消費的解決方案,意思是:
判斷是否「可交付」的幾個條件:
一個功能只有在這些條件都備齊時,才真的稱得上「可以交到客戶手上」。
在建構階段,定義什麼叫做「完成」與「可交付」,不只是技術上的問題,更是團隊協作與品質保證的關鍵。這兩個定義就像是產品建構的共同語言,幫助大家對齊標準、減少誤會、提高穩定性,讓「持續交付價值」成為可能。
在 DA 的生命週期中,交付階段就是那個關鍵時刻:要把團隊花了數週甚至數月打造的成果,正式交到使用者手中。
但把產品部署出去這件事,不是按個按鈕那麼簡單。如果準備不足、步驟混亂、協作斷線,就可能導致:
在交付階段,目標不是「盡快上線」,而是安全、穩定、可預期地把價值釋出。換句話說,交付階段的核心目的就是:
確認我們的成果「準備好了」,並且「能成功部署出去」。
這個階段包含兩個流程目標:
確認產品已準備就緒(Ensure Production Readiness)
要上線的東西是不是夠穩?夠完整?大家都準備好了嗎?
實際部署解決方案(Deploy the Solution)
部署過程有沒有自動化?有沒有應變方案?使用者體驗是否順利?
這兩個任務看似簡單,其實涵蓋了流程、技術、品質、風險、跨部門溝通等各層面。若處理不當,很容易讓團隊陷入「功能寫好了卻無法交付」、「部署完才發現大問題」的災難場景。
在部署之前,確保產品技術上是穩定的、商業上是可接受的、營運上是能支援的。該做的事包含:
測試完成且通過
包括單元測試、整合測試、使用者驗收測試。
無重大缺陷遺留
任何高級別的缺陷都已修復或有明確替代方案。
文件與支援資訊到位
包含使用手冊、發佈公告、FAQ、客服應對準備。
法規與安全性合規
若牽涉金融、個資、法規等要求,確認都已符合。
資料與設定正確
測試資料清除、實際資料初始化、設定檔正確無誤。
基礎架構準備完成
環境已建置、效能測試通過、監控機制準備完善。
利害關係人資訊同步
包含業務、客服、行銷、客戶代表等人已同步了解並接受變更內容。
這不只是開發團隊的工作,而是一場跨角色、跨部門的集體確認行動。否則再完美的功能,也可能因為客服不知道怎麼回應,或是使用者不知道怎麼操作,而讓產品落入「準備好但沒人用」的結局。
不是只是「成功部署」,而是讓使用者能在正確的時間、地點和方式下,無痛體驗產品價值。對於部署策略的選擇與準備可以考慮以下策略:
全量部署
小型系統或重大版本重構,可快速一次到位,但風險集中、若無法回滾版本時要特別小心。
分批釋出
多地區/多用戶群漸進導入,可觀察回饋、控制影響範圍,但實作上較複雜,需設計控制機制。
藍綠部署
部署時不中斷服務,可快速切換版本、方便回滾,但成本較高、需要雙環境支援。
灰度部署(Gray Release) / 金絲雀佈署(Canary Release)
想先驗證特定用戶反應,進行低風險的探索性上線,需要配合流量導向與監控機制。
功能切換(Feature Toggle)
功能可隨時開關控制,並佈署未開啟功能、隨時切換。需要管理好旗標狀態,避免技術債累積。
交付階段的兩大任務,不是技術團隊一頭熱地「把東西丟出去」就好,而是:
團隊可以選擇,但要根據所面對的複雜度與風險,選擇一條最適合的路徑。這才是現代軟體交付應該有的成熟與彈性。畢竟沒有穩定的交付,就談不上真正的敏捷。
在 DA 的生命週期中,除了啟動、建構、交付這三個主要階段之外,還有一個經常被忽略但極其重要的維度,叫做持續。
這些工作不像功能開發那樣有明確的起訖時間,但它們貫穿整個生命週期,是維持團隊運作穩定、品質可控、持續改善的基礎。
所謂的持續,並不是某個特定時間點發生的任務,而是:
在整個產品或專案生命週期中,必須持續關注與執行的活動。
這些活動通常不會出現在產品待辧清單裡,也很少有專人提醒該做,但若忽視它們,就會讓團隊效率下降、風險升高、品質崩盤。
DA 將持續的任務歸納為九個主要的流程目標:
培育團隊成員(Grow Team Members)
提供學習與成長機會,讓團隊能持續提升專業與合作能力。
協調活動(Coordinate Activities)
確保團隊內外的工作能順暢銜接,減少等待與重工。
風險應對(Address Risk)
及早識別、透明化並處理風險,降低失敗的可能性。
演進工作方式(Evolve Way of Working)
持續檢視並改進團隊的做法,找到更合適的工作方式。
善用並優化既有基礎設施(Leverage and Enhance Existing Infrastructure)
重複利用組織現有工具與平台,必要時加以改良,而非一切從零開始。
治理團隊(Govern Team)
透過適度的規範、指標與支持,確保團隊運作符合組織目標。
工作接收(Intake Work)
建立明確的方式來接收與篩選新工作。
組織度量指標(Organize Metrics)
決定要追蹤哪些數據,確保能反映出團隊與產品的真實狀況。
衡量成果(Measure Outcomes)
不只看輸出(Output),更要關注是否真正創造價值(Outcome)。
想像團隊是架飛機,啟動是起飛、建構是飛行中建構系統、交付是安全降落,而持續就是整趟航程的導航、維護、補給與通訊系統。
如果忽略這些持續的工作,將會造成:
缺乏成長機會
團隊成員的能力會停滯不前,士氣低落。
缺乏協作機制
外部團隊溝通不良,造成依賴卡關。
沒有持續改善
一直重複不順的流程,卻沒人願意提出調整。
缺乏風險意識與處理能力
同樣的風險一直不斷重演。
缺乏治理與回報機制
組織對團隊的信任與支持逐漸流失。
持續的工作之所以重要,是因為它支撐了整個團隊的韌性與成熟度。如果把 DA 的各階段比喻為不同任務的主線,那持續就是始終在線、從不下線的底層運作邏輯。
在真正的高效團隊中,流程不是憑感覺走、成員不是憑本能活、交付不是靠衝刺撐,而是靠這些細水長流的持續任務穩穩推進。
在 DA 生命週期的四大階段:啟動、建構、交付、持續,雖然每個階段都有其獨立的任務與焦點,但真正成熟的團隊,並不把這些階段當成「斷裂的階段任務」,而是視為一條持續流動的價值交付之路。
如果沒有善加銜接這些階段,就可能出現:
因此,讓階段之間能自然過渡、資訊與責任能平順傳遞,是打造高效能團隊不可或缺的能力。
但這並不表示每個階段一定要做出什麼文件,而是團隊應該根據階段任務與過渡需求,自定義出屬於自己的連接機制,像是:
這些都可以融入團隊的工作方式中,變成可執行、可改善、可持續演化的跨階段協作方式。
高成熟度的敏捷團隊,不只擅長在某個階段中交付成果,更能提前準備下一階段的需要,延續上一階段的智慧與脈絡,並且讓價值從起點一路順流到終點。
這樣的流動性,讓每一次交付不是一場臨時集結,而是一次又一次循環進化的自然節奏。而這種「無斷裂、自然流動」的團隊節奏,就是 DA 真正想幫助建立的敏捷力。