系統分析與綜合思維相結合:又見森林又見樹木 - hjorteland

發表於2021-04-07

在軟體和IT領域,我們通常將問題域分解為一個個乾淨的部件,並分別進行了處理。我們認為,這是處理複雜性的“分而治之”的方法,但是:

“一個系統不僅僅是其各個部分的總和;它是一個不可分割的整體。拆開後,它會失去其基本效能。” ―羅素·阿科夫Russell Ackoff)

儘管亞里士多德在古代暗示了整體可能大於其一部分的事實,但我們的歷史主要是關於通過分解和孤立地研究其元素來理解我們周圍的任何事物。至少自科學革命以來,這一直是黃金標準,並且在我們根深蒂固,以至於我們所有人都認為分析是洞察力的唯一途徑。

這種方法的成功是毋庸置疑的,通過採用這種簡化主義的思想,我們已經取得了所有的創新和進步,但是它建立在一個簡單的概念上,即零件可解釋整體。

在許多情況下,這種思維方式就足夠了,該模型的解釋能力足以推動我們前進,但是該模型的實用性與任何模型一樣都有其侷限性。在某些時候做出的所有簡化假設,在種類繁多時假定同質性,還是僅關注某些部分,都將阻礙進一步的發展和更深刻的見解。

複雜性到處都是,特別是在涉及人的任何系統中,例如軟體開發,我們都需要更好的工具來處理這些複雜性。

 

系統思維

系統思維的一個核心思想是在我們的分析方法工具箱中新增綜合方法。綜合法並不是作為分析法的替代品,而是作為探索可幫助處理複雜性的額外維度。

從某種意義上講,綜合法與分析法的方向相反:它是綜合問題,而不是分解問題,然後再解釋各個部分並用其來解釋整個問題,綜合法首先要確定並解釋當前所包含的問題,然後看問題如何解決。在哪種環境下並在哪種情況下進行解釋。

系統思維從某種意義上說就是:先寬乏再深入。首先進行綜合,然後進行分析。

“分析側重於結構;它揭示了事情是如何工作的。綜合注重功能;它揭示了事情為什麼如此運轉。因此,分析產生知識;綜合產生理解。” ―羅素·阿科夫(Russell Ackoff)

 

在軟體和IT領域,我們採用處理複雜性的“分而治之”的方法,但是,在分解的任何層次上,我們首先需要首先了解包含的整體,並瞭解各個部件在每個層次上的作用、目的和相互聯絡。部件不僅解釋了整體,整體也解釋了部件。

在構建新的軟體產品時,您需要了解它所包含的上下文,環境是什麼,包括客戶群,使用者個人資料,業務上下文,其目標和目的。您需要獲得由內而外的視角 ,只有到那時,您才準備好真正掌握產品必須處理的複雜性,並設計出既適用於目標性,又具有彈性和可持續性的系統。

“每個軟體密集型系統都有一個體繫結構:一些是故意的;一些是偶然的;大多數是emgent的” ―格雷迪·布赫(Grady Booch)

(參考:康威定律的作者:什麼是"湧現"分析建模方法?

  

這聽起來好像我們必須回到瀑布式設計的前期設計和漫長的交貨時間,但是正如系統思維所表明的那樣,應該將綜合和分析結合起來,並且在這兩者之間進行迭代是一個好的方法。最好經常地,縮短學習產品效能的反饋迴圈。下圖摘自Barton和Haslett論文,很好地說明了這一點。

系統分析與綜合思維相結合:又見森林又見樹木  - hjorteland

這樣,我們可以將整體自上而下的方法與敏捷設計的自下而上的原理相結合,在其中我們可以儘可能頻繁地在綜合和分析之間進行迭代。愛德華多·達席爾瓦(Eduardo da Silva)撰寫了一篇很棒的文章和演講,介紹瞭如何實現此目標:使用社交技術架構發展由技術驅動的組織

 

相關文章