系統設計原則

banq發表於2021-08-22

本指南概述了系統設計的關鍵原則。該指南應幫助您基本瞭解系統思維和複雜性理論中的關鍵概念,以及如何將這些概念應用於各種複雜系統的設計。
 

整體方法
系統方法是一種整體方法,這意味著我們主要在其所屬的整體的背景下尋求理解某事物。在開始更改部件之前,我們尋求瞭解部件存在的總體環境以及它們如何相互關聯以影響彼此和整個系統。系統設計同樣始於對我們有興趣設計的系統的整體考慮。

  • 一開始就理解部件如何與整體形式相互關聯  
  • 整合而不是分割它,聚集形成更大的整合系統,我們目前的設計和簡化方法工程透過將複雜問題分解為小的子問題,然後逐個解決它們,然後將這些解決好的子單元重組為整體分層總體規劃。這個結果是形成筒倉、邊界、缺乏水平資訊流,從根本上造成了瓦解的系統。系統方法強調組織原則;元件如何融入整個組織模式。它們需要被整合和水平連線而不是分解和在分層總體規劃中垂直重組。
  • 處理模式不是專注於具體部件:抽象是去除連續的來自表示的細節層,以便僅捕獲對所有實體通用的基本特徵、種類和獨立於它們的特定形式;模式形成是指一個連貫的過程 ,隨著時間的推移,元素之間的一組相關性開始形成並持續存在。作為系統設計師,我們主要感興趣的是在系統的整體格局中,形成、整合、  或這種模式的瓦解。 
  • 多維,不嘗試減少或下降到下一個級別處理所有系統的維度,我們要首先嚐試瞭解不同的整個系統的維度和質涉及不同的因素。例如,一個城市涉及社會 經濟、技術和環境方面的考慮。每個維度都有自己不同的內在邏輯和工作原理;我們不會試圖將一切都降低到一個層次。我們今天設計的大多數東西都是最佳化的單功能和輸出,認為透過簡化我們就可以提高產量和效率。然而,這個僅在對系統進行區域性觀察時才成立,例如,我們可以想到單一文化的農業,這在考慮純食物輸出時效率很高,但是當我們返回並開始考慮所有相關的環境和因素它看起來並不那麼有效。

 

開放系統
複雜系統從根本上說是開放系統。網際網路、城市或社交網路都是開放的,任何人都可以加入或離開,它們的邊界是可滲透的。
例如,一個城市可能跨越很大的地理區域,因為不同的城市中心相互轉化。我們可以在地圖上畫線定義司法管轄區,但從設計的角度來看,它們是很大程度上是任意的。除此之外,元件正在離開並且在動態中加入、耦合和解耦系統 。
複雜系統的這一特性從根本上改變了我們應該如何設計它們,因為沒有邊界條件,我們無法像設計更簡單的系統時那樣進行控制。如果沒有能力直接將秩序強加給系統,我們就必須處理自組織和湧現的過程。 將秩序強加於系統要求作為設計師的我們學會處理上下文。(上下文為王

  • 複雜系統是網路的沒有任何固定邊界。
  • 系統設計涉及學習觀察和工作的上下文 ,為上下文設計,複雜系統沒有線性物理的因果關係 ,因此我們不能說,如果我這樣做,就一定會得到那個結果。這就改變了遊戲規則,需要我們重新思考,什麼時候系統是開放的,我們沒有許可權控制,而只是影響系統,我們可以透過改變上下文來影響它。
  • 瞭解動態使用自組織的流程,自組織是全球範圍內的自發創造最初之間區域性相互作用的連貫模式、獨立元件。想想人們穿越街道。有沒有一個精心策劃的過程?只是透過人與人之間的本地互動分化成一個獨特的模式,形成協調的人流向各個方向前進。沒有正式的設計和集中協調,元件以非線性網路方式互動。
  • 努力使秩序湧現,沒有設計師強加的自上而下的控制,複雜系統更像是生命系統,它們通常具有很多適應性 ,遵循自己議程的行動者,例如處於組織、運輸系統中的汽車或生產者、供應鏈。我們不試圖強加秩序,而是試圖為它的湧現emerge創造合適的條件,這些湧現是來自系統中代理本身的動作。我們不知道網際網路未來會怎樣?哪些新技術將建立在網路上,或者哪些技術將結合起來形成新技術的可能性。在這世界紛繁複雜,未來不只是未知。它可能很好但是不可知的,這種根本的不確定性改變了我們面向未來的整體方法。因為未來是不確定,我們需要以開放的方式設計系統 ,面向不同結果的湧現的開放。

 

關係法則
在連線性較低的情況下,定義實體只是關注其內部元素屬性集,但隨著連線性程度的提高,將整個組織定義為系統的部件之間的連線。在連線和整合的低水平上,系統的部件定義了關係和整體,但給定一個具有密集連線網路的整合系統,當部件由連線並在整體形成時,這種情況被顛倒了。在這個複雜的階段,我們必須切換到關係設計正規化,以開始檢視和設計連線網路。

  • 將正規化更改為我們為開放而設計的正規化系統,而不是約束良好的封閉系統,就不得不放棄控制、可預測性和完美秩序的設計,(banq注:這三種體現陷入因果確定性崇拜的焦慮強迫症潔癖)。在低水平的連通性下,定義一個實體的只是它的元素集,但作為連線性被開啟後,它是定義整體的部件之間的連線 (banq注:DDD聚合的設計原則),複雜性體現在我們必須切換到關係設計正規化才能開始檢視和設計網路的連線。(banq注:關聯式資料庫的核心價值所在) 
  • 協議設計,系統是從連線網路中湧現的東西Object, 要設計系統,我們需要設計連線,而連線受互動規則支配,有一些規則來管理時才能成功互動,這些規則稱為協議,定義協議我們可以更好地定義發生的互動以及會出現什麼結果。例如網際網路的HTTP協議就是一個好的協議設計。(banq:業務規則或演算法屬於一種協議)
  • 協同協議方法:一個整體,不同於其部分的簡單總和。一個協同設計方法是一種專注於組織內各部分之間的相互作用以識別並發展協同效應。透過系統設計,我們試圖將負面影響降至最低 ,協同作用並最大限度地發揮積極的協同作用。例如 噪音汙染是一種負協同作用,其中系統以破壞性的方式相互作用。我們的許多系統設計時只考慮有限的協同作用,結果是產生廢物和其他形式的系統汙染物。汙染物不是“壞東西”,而只是設計結果的產物,在錯誤的上下文中產生破壞性相互作用的東西,即負協同作用。當我們設計聯絡和協同作用,我們的目標是把事情放在一起共同努力,減少負面協同效應。 (業務流程是一種協同協作)
  • 非線性:設計複雜的系統需要高度的意識非線性,即許多系統的結果不是一些線性因果關係,而是許多的函式事物以網路方式互動。流程不僅僅需要沿著一個過程從頭到尾獨立地放置,而不是許多不同的過程和功能正在發生在一個並行架構,它們在程式之間和程式之間互動和域的網路方式。系統中的元件不僅僅是相互互動領域,也是跨尺度。複雜的工程系統是所謂系統的系統。它們具有多層層次結構。都市區是許多重疊的組合:來自交通和供水的並行基礎設施系統、到電網和電信網路。上下文設計是考慮許多不同的系統和關係以及它們如何以非線性協同方式相互作用產生湧現的結果。
  • 反饋迴圈設計:系統設計需要針對反饋進行設計,研究如何流程以迴圈設計模式連線。大部分我們目前的設計方法側重於最佳化筒倉內的零件,而沒有適當考慮跨整個系統的筒倉之間的流動。結果是:輸入資源到線性過程環境中的並將廢物輸出迴環境上下文。 


 

去中心化網路
當我們從一個連線水平相對較低的系統變成一個連線水平非常高的系統時,系統的構成和行為會發生根本性的變化。在相對孤立的系統中,我們的重點是元件及其屬性。由於互動成本高,系統通常被繫結到集中式單體配置中,以降低組織的整體交易成本。但是,當我們降低互動成本時——正如 IT 和其他創新所做的那樣——然後連線性增加,系統可以從這種集中式配置中分離出來,允許元件透過網路分佈和重新協調。
 

模組化設計
在設計系統時,我們的關鍵架構之一考慮將是決定我們是否正在建立一個同構系統或模組化系統。模組化設計是一種圍繞自主模組的思想構建的設計模式  。
可以獨立建立,易於配置,並且重新配置成不同的系統。這方面的例子可能包括由自主電氣單元製成的電子電路板或由連線在一起的預製模組製成的房屋。  
模組化是複雜工程系統的一個關鍵特徵 ,網際網路是模組化架構的典範。  
模組化設計的優點包括:

  • 它們可以使分散式協作和解決問題;
  • 模組可以無休止地重複使用,就像樂高積木一樣,我們可以組合和重新組合它們,使其更有可能成為迴圈可持續  
  • 作為解決方案;模組化系統更具通用性、適應性和可以更容易地定製;

模組化設計可以是一個非常重要的傳染機制,也應該更容易管理維護系統的生命週期作為元件可以很容易地換入和換出。 
 

服務網格設計
隨著連線性的激增,我們越來越遠離從獨立系統進入服務世界網路,系統設計師的工作是理解和使用這些動態網路、它們的結構以及如何這導致了它們的整體功能。在這種情況下系統 ,設計專注於整合網路的設計多樣化和自主的(通常是使用者生成的)模組 ,提供綜合服務。  
這需要開發具有協議的平臺  ,可以在一個共享的元件中整合不同的元件  ,連線和資料的基礎設施,同時使元件透過鬆散耦合保持其自主性。  
服務的設計模式就是最好的例證,面向分散式 架構的一種方法,採用鬆散耦合服務的系統架構,  標準化的介面和協議以提供無縫跨平臺整合。
 

進化的生命週期設計
複雜系統基本上是動態的、自適應的和不斷髮展的系統。這樣做的最終結果是系統可能會發生變化,並且不會決定遵循從搖籃到墳墓的線性生命週期。它可以學習、成長和適應內部和外部條件,以更新自己。如果我們想要可再生的、有彈性的和可持續的系統,我們就必須設計出隨著時間的推移而進化的系統。彈性為系統保持或返回正常執行的能力。

點選標題見原文PDF
 

相關文章