2023/03/13

Gall’s Law

"A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: a complex system designed from scratch never works and can not be made to work. You have to start over, beginning with a simple system." - John Gall, systems theorist.

一個複雜的系統,是由簡單的系統慢慢演化而來的。如果要從無到有,設計出一個複雜的系統,是絕對不可能成功的,任何複雜的東西,都要從簡單(基本)做起。

一個外表看起來複雜的系統,如果仔細去分析內部的架構,會發現它是由很多簡單的結構組合而成的。沒有一個系統可以無中生有憑空產生。

這是系統分析要做的事情,系統分析就是要透過設計的方法,將一個完整複雜的系統,切割為多個可被容易理解的子系統/流程。但分析不能太過注意細節,系統與流程的實作細節,要交給系統設計去處理。因為一個太精細的系統分析結果,反而會讓人難以整合出整個系統全貌。

跟 Gall’s Law 類似的法則是 KISS Principle。

Keep it simple, stupid (KISS) 就是在進行系統設計時,要盡可能保持簡單。換句話說,就是不能做過度設計 over design,過度設計的系統,會因為多餘的考量,讓使用者難以理解,也會犧牲掉運作的靈活/流暢度。

另外還有一個類似的奧卡姆剃刀原則 Occam's Razor

「切勿浪費較多東西,去做『用較少的東西,同樣可以做好的事情』。」

「如無必要,勿增實體。」(Do not multiply entities beyond necessity.)

這幾個原則都有一些共同的代名詞:化繁為簡、避重趨輕、避繁逐簡、以簡御繁、避虛就實。

References

对开发人员有用的定律、理论、原则和模式 - 腾讯产业互联网学堂

KISS原則 - 維基百科,自由的百科全書

奧坎剃刀 - 維基百科,自由的百科全書

沒有留言:

張貼留言