自適應軟體開發 - 概念



在本章中,我們將瞭解自適應軟體開發的各種概念。

複雜自適應系統 (CAS) 理論

聖達菲研究所的布萊恩·亞瑟及其同事利用複雜自適應系統 (CAS) 理論徹底改變了對物理學、生物學、進化和經濟學的理解。

布萊恩·亞瑟花了二十多年的時間試圖說服主流經濟學家,他們以收益遞減、均衡和確定性動態的基本假設為主導的觀點,已經不足以理解現實。新世界是一個收益遞增、不穩定且無法確定因果關係的世界。

這兩個世界在行為、風格和文化上有所不同。它們需要:

  • 不同的管理技術
  • 不同的策略
  • 不同的理解

複雜的軟體開發

隨著軟體應用範圍的擴大,即使是軟體開發組織也積累了如上所述的類似矛盾。

  • 一個世界由確定性開發表示,該開發源於植根於穩定性和可預測性基礎的管理實踐(用亞瑟的話來說,這意味著收益遞減)。

  • 第二個世界由從收益遞減轉向收益遞增環境的行業代表,這些環境是不可預測的、非線性的和快速的。

為了解決這個第二世界的問題,吉格·海斯密斯提供了一個框架,即自適應軟體開發,它不同於確定性軟體開發。

自適應軟體開發專注於解決複雜系統:

  • 用於開發生命週期的自適應軟體開發。

  • 自適應管理技術要求與傳統專案管理實踐不同的思維方式。

在本教程中,您可以瞭解這兩種實現。

自適應軟體開發 (ASD) 基於兩種視角:

  • 基於複雜自適應系統 (CAS) 理論的概念視角,如本章第一節所述。

  • 基於以下內容的實踐視角:

    • 多年來使用確定性軟體開發方法的經驗。

    • 諮詢、實踐和撰寫有關快速應用開發 (RAD) 技術的文章;以及與高科技軟體公司合作管理其產品開發。

在本章中,您將瞭解自適應軟體開發的概念視角。

複雜自適應系統 (CAS) 概念

複雜自適應系統 (CAS) 理論包含許多概念。自適應軟體開發基於其中的兩個概念:

  • 湧現
  • 複雜性

湧現

在複雜的軟體產品開發專案中,結果本質上是不可預測的。但是,成功的產品始終從這樣的環境中湧現出來。

這可以透過複雜自適應系統 (CAS) 理論中說明的湧現來實現。可以透過一個簡單的例子來理解,例如鳥類的群體行為。

當你觀察一群鳥時,你會注意到:

  • 每隻鳥都試圖

    • 與環境中的其他物體(包括其他鳥類)保持最小距離。

    • 與鄰近的鳥類保持相同的速度。

    • 朝向其鄰近鳥類的感知質心移動。

  • 沒有關於群體行為的規則。唯一的規則是關於個體鳥類的行為。

  • 然而,存在一種湧現行為,即鳥類的群體行為。當偏離路線的鳥類急於追趕時,鳥群會在障礙物周圍分開並在另一側重新形成。

這表明了自適應開發中最困難的思維模型變化的要求——從管理和組織個體自由的方式到一個創造性的新秩序從自發的自我組織中不可預測地湧現出來的概念。

除了開發之外,湧現也是從管理角度來看最重要的概念。

複雜性

在軟體開發的上下文中,複雜性是指:

  • 團隊成員,例如開發人員、客戶、供應商、競爭對手和股東,他們的數量和速度。

  • 規模和技術複雜性。

自適應軟體開發實踐

自適應軟體開發對軟體管理實踐提供了不同的視角。在下面的部分中,您可以瞭解兩個重要的實踐:質量和 RAD,它們都對收集需求產生影響。

您可以在本教程的“自適應軟體開發實踐”章節中找到所有實踐的詳細資訊。

質量

在複雜的環境中,“第一次就把事情做對”的古老做法不起作用,因為您無法預測一開始什麼是正確的。您需要有一個目標來產生正確的價值。但是,在複雜的環境中,價值元件(如範圍(功能、效能、缺陷級別)、時間表和資源)的組合和排列是如此之多,以至於永遠不可能存在最佳價值。因此,重點是轉向在競爭市場中交付最佳價值。

RAD 實踐

RAD 實踐通常涉及以下內容的組合:

  • 演化生命週期
  • 客戶焦點小組、JAD 會議、技術審查
  • 時間盒專案管理
  • 持續軟體工程
  • 配備作戰室的專用團隊

RAD 專案具有內在的自適應、湧現特徵。許多 IT 組織反對 RAD。但是,微軟和其他公司已經使用與 RAD 相當的技術生產了難以置信的大型和複雜的軟體,因為它對他們的基本世界觀提出了質疑。

RAD 實踐和微軟流程都是自適應開發在行動中的例子。為它們貼上標籤(即自適應開發)並認識到存在越來越多的科學知識(即 CAS 理論)解釋了它們為何有效。這應該為更廣泛地使用這些實踐提供基礎。

廣告