自適應軟體開發 - 生命週期



自適應軟體開發源於快速應用開發 (RAD) 實踐。團隊方面也新增到這些實踐中。從紐西蘭到加拿大的公司,針對各種專案和產品型別,都使用了自適應軟體開發。

Jim Highsmith 於 2000 年出版了《自適應軟體開發》一書。

自適應軟體開發實踐能夠適應變化,並能夠在動盪的環境中適應產品演變,而無需過多的規劃和學習。

ASD 生命週期階段

自適應軟體開發與進化模型一樣是迴圈的,階段名稱反映了複雜系統中的不可預測性。自適應開發生命週期中的階段包括:

  • 推測 (Speculate)
  • 協作 (Collaborate)
  • 學習 (Learn)

這三個階段反映了自適應軟體開發的動態特性。自適應開發明確地用湧現 (Emergence) 取代了確定性 (Determinism)。它不僅僅是生命週期的改變,更是管理風格的更深層次的改變。自適應軟體開發具有動態的“推測-協作-學習”生命週期。

自適應軟體開發生命週期關注結果,而不是任務,結果被識別為應用程式功能。

Adaptive Software Development Lifecycle

推測 (Speculate)

術語“計劃”過於確定性,表明對預期結果具有相當高的確定性。對計劃一致性的隱含和顯式目標限制了管理者將專案引向創新方向的能力。

在自適應軟體開發中,術語“計劃”被“推測”取代。在推測過程中,團隊並沒有放棄計劃,而是承認複雜問題中存在不確定性的現實。推測鼓勵探索和實驗。鼓勵進行短週期的迭代。

協作 (Collaborate)

複雜的應用程式不是構建的,而是演變的。複雜的應用程式需要收集、分析和應用大量資訊來解決問題。動盪的環境具有高資訊流速率。因此,複雜的應用程式需要收集、分析和應用大量資訊來解決問題。這導致了多樣化的知識需求,只有透過團隊協作才能處理。

協作需要能夠共同努力以產生結果、共享知識或做出決策的能力。

在專案管理的背景下,協作描繪了在使用傳統管理技術與建立和維護湧現所需的協作環境之間的平衡。

學習 (Learn)

生命週期中的“學習”部分對於專案的成功至關重要。團隊必須不斷增強他們的知識,使用以下實踐:

  • 技術評審
  • 專案回顧
  • 客戶焦點小組

每次迭代後都應進行評審。開發人員和客戶都檢查他們的假設,並使用每個開發週期的結果來了解下一個方向。團隊學習:

  • 關於產品變更

  • 關於產品開發方式的基本假設的更根本的改變

迭代需要簡短,以便團隊可以從小錯誤而不是大錯誤中學習。

推測-協作-學習週期作為一個整體

從上面給出的“推測-協作-學習”週期可以看出,這三個階段是非線性的並且是重疊的。

我們從自適應框架中觀察到以下幾點:

  • 如果沒有學習就很難協作,如果沒有協作就很難學習。

  • 如果沒有學習就很難推測,如果沒有推測就很難學習。

  • 如果沒有協作就很難推測,如果沒有推測就很難協作。

廣告