架構漫談(四) 如何做好架構之架構切分

2021-09-08 19:50:23 字數 3481 閱讀 7014

架構漫談是由資深架構師王概凱kevin執筆的系列專欄,專欄將會以kevin的架構經驗為基礎,逐步討論什麼是架構、怎樣做好架構、軟體架構如何落地、如何寫好程式等問題。

本文是漫談架構專欄的第四篇,作者將會介紹架構的切分,並直戳切分的本質其實就是利益的調整。文中作者將會討論為什麼需要切分、切分的原則、切分與建模、切分的輸出和組織架構等問題。歡迎閱讀和反饋。

前一篇已經講了如何識別問題。在識別出是誰的問題之後,會發現,在大部分情況下,問題都迎刃而解,不需要做額外的動作。很多時候問題的產生都是因為溝通的誤解,或者主觀上有很多不必要的利益訴求導致的。但是總還有一部分確實是有問題的,需要做調整,那麼就必須要有所動作,做相應的調整。這個調整就是架構的切分。

相關廠商內容

我們要非常的清楚,所有的切分調整,都是對相關人的利益的調整。為什麼這麼說呢,因為維護自己的利益,是每個人的本性,是在骨子裡面的,我們不能逃避這一點。我們以第一篇文章裡面的例子為例來做解釋。

我們已經知道,隨著社會的發展,分工是必然的,為什麼呢? 這個背後的動力就是每個人自己的利益。每個人都希望能夠把自己的利益最大化,比如:生活的更舒適,更輕鬆,更安全,占用並享有更多的東西。但是每個人的能力和時間都非常的有限,不可能什麼都懂,所以自然需要捨掉一些自己不擅長的東西,用自己擅長的東西去換取別人擅長的東西。

對比乙個人幹所有的事情,結果就是大家都能夠得到更多,當然也產生了乙個互相依賴的社會,互相誰都離不開誰。這就是自然而然而產生的架構切分,背後的原動力就是人們對自己利益的渴望。人們對自己利益的渴望也是推動社會物質發展的原動力。

在這個模式下,比較有意思的是,每個人必須要捨掉自己的東西,才能夠得到更多的東西。有些人不願意和別人進行交換,不想去依賴於別人,這些人的生活就很明顯的差很多,也辛苦很多,自然而然的就被社會淘汰了。如果需要在這個社會上立足,判斷標準就變成了:如何給這個社會提供更好更有質量的服務。提供的更好更多的服務,自然就能夠換取更多更好的生活必需品。實際上這就是我們做人的道理。

當人們認識到要主動的去切分乙個系統的時候,毫無疑問,我們不能忘掉利益這個原動力。所有的切分決策都不能夠違背這一點,這是大方向。結合前一篇「識別問題」,一旦確定了問題的主體,那麼系統的利益相關人(用現代管理學語言叫:stockholder)就確定了下來。所發現的問題,會有幾種情況:

某個或者某些利益相關人負載太重。

情況1是切分的原因,情況2是切分不合理而導致的新的問題,最終還是要回到情況1。對於情況1,本質上都是時間上的負載。因為每個人的時間是有限的,怎麼在有限的時間內做出更多的事情?那麼只有把時間上連續的動作,切分成時間上可以並行的動作,在空間上橫向擴充套件。所以切分就要有幾個原則:

必須在連續時間內發生的乙個活動,不能切分。比如孕婦懷孕,必須要10月懷胎,不能夠切成10個人乙個月完成。

切分出來的部分的負責人,對這個部分的權利和義務必須是對等的。比方說媽媽10月懷胎,媽媽有權利處置小孩的出生和撫養,同樣也對小孩的出生和撫養負責。為什麼必須是這樣呢? 因為如果權利和義務是不對等的話,會傷害每個個體的利益,分出來執行的效率會比沒有分出來還要低,實際上也損害了整體的利益,這違背了提公升整體利益的初衷。

切分出來的部分,不應該超出乙個自然人的負載。當然對於每個人的能力不同,負載能力也不一樣,需要不斷的根據實際情況調整,這實際上就是運營。

切分是內部活動,內部無任怎麼切,對整個系統的外部應該是透明的。如果因為切分導致整個系統解決的問題發生了變化,那麼這個變化不屬於架構的活動。當然很多時候當我們把問題分析的比較清楚的時候,整個系統的邊界會進一步的完善,這就會形成螺旋式的進化。但這不屬於架構所應該解決的問題。進化的發生,也會導致新的架構的切分。

原則2是確保我們不能違反人性,因為維護自己的利益,是每個人的本性。只有權利和義務對等才能做到這一點。從原則2的也可以推理,所有的架構分拆,都應該是形成樹狀的結果,不應該變成有向圖,更不應該是無向圖。很多人一談架構,必談分層,但是基本上都沒意識到,是因為把乙個整體分拆為了一棵樹,因為有了樹,才有層。

從某種意義上來說,談架構就是談分層,似乎也沒有錯,但是還是知道為什麼比較好。從根節點下來,深度相同的是同一層。這個是數學概念,我就不展開了,感興趣可以去複習一下數學。

同樣我們看乙個組織架構,也可以做乙個粗略的判斷,如果乙個企業的組織架構出現了「圖」,比方說多線匯報,一定是對stakeholder的利益分析出現了問題,這就會導致問題2的發生。問題2一旦出現,我們必須馬上要意識到,如果這個問題持續時間長,會極大的降低企業的運作效率,對相關stakeholder的利益都是非常不利的,同樣對於企業的利益也是不利的。必須快速調整相關stakeholder的職責,使得企業的組織架構成為乙個完美的樹狀,並且使得數的層數達到盡可能的低。只有平衡數可以比較好的達到這個效果。

當然如果某個節點的能力很強,也可以達到減小樹的高度的結果。技術的提公升,也是可以提公升每個節點的能力,降低樹的層數。很多管理學都在討論如何降低組織架構的層數,使得管理能夠扁平化,原因就在於此,這裡就不展開討論了。從這裡也基本可以得出乙個結論,乙個好的組織的領導,一定也是乙個很好的架構師。

實際上切分的過程就是建模的過程,每次對大問題的切分都會生成很多小問題,每個小問題就形成了不同的概念。這也是系列第二篇文章嘗試表達的。這些不同的概念大部分時候人們自發的已經建好了,架構師更多的是要去理解這些概念,識別概念背後所代表的的人的利益。比如人類社會按照家庭進行延續,形成了家族,由於共享一片土地資源,慢慢形成了村莊,村莊聯合體,不同地域結合,形成了國家。由於利益分配的原因,形成了政權。每次政權的更迭,都是利益重新分配的動力所決定的。

同樣對於乙個企業也是一樣的,一開始乙個人幹所有的事情。當業務量逐漸變大,就超過了乙個人能夠處理容量,這些內容就會被分解出來,開始招聘人進來,把他們組合在一起,幫助處理企業的事務。整個企業的事務,就按照原則2,分出來了很多新的概念:營銷,售前,售中,售後,財務,hr等等。企業的創始人的工作就變成了如何組合這些不同的概念完成企業的工作。如果業務再繼續增大,這些分出來的部分還要繼續分拆,仍然要按照原則2才能夠讓各方達到利益最大化。如果某個技術的提公升,提高了某個角色的生產力,使得某個角色可以同時在承擔更多的工作,就會導致職責的合併,降低樹的層數。

架構切分的輸出實際上就是乙個系統的模型,對於乙個整體問題,有多少的相關方,每個相關方需要承擔哪些權利和義務,不同的相關方是如何結合起來完成系統的整體任務的。有的時候是從上往下切(企業),有的時候是從下往上合併,有的時候兩者皆有之(人類社會的發展)。而切分的結果最終都會體現在組織架構上,因為我們切分的實際上就是人的利益。

從這方面也可以看出,任何架構調整都會涉及到組織架構,千萬不可輕視。同樣,如果對於stakeholder的利益分析不夠透徹,也會導致架構無法落地,因為沒有入願意去損壞自己的利益。一旦強制去執行,人心就開始潰散。這個也不一定是壞事,只要滿足原則2就能夠很好的建立乙個新的次序和新的利益關係,保持組織的良性發展,長久來看是對所有人的利益都有益的,雖然短期內有對某些既得利益者會有損害。

架構的切分的導火索是人的負載太重。

架構的切分實際就是對stakeholder的利益進行切分或合併,使得每個stakeholder的權責是對等的,每個stakeholder可以為自己的利益負責。

架構切分的最終結果都會體現在組織架構上,只有這樣才能夠讓架構落地並推進。

架構切分的結果一定是乙個樹狀,這也是為什麼會產生分層。層數越多溝通越多,效率越低,分層要越少越好。盡可能變成一顆平衡樹,才能讓整個系統的效率最大化。

架構漫談(四) 如何做好架構之架構切分

前一篇已經講了如何識別問題。在識別出是誰的問題之後,會發現,在大部分情況下,問題都迎刃而解,不需要做額外的動作。很多時候問題的產生都是因為溝通的誤解,或者主觀上有很多不必要的利益訴求導致的。但是總還有一部分確實是有問題的,需要做調整,那麼就必須要有所動作,做相應的調整。這個調整就是架構的切分。我們要...

架構漫談(四) 如何做好架構之架構切分

2016 02 23 王概凱 聊聊架構 架構漫談是由資深架構師王概凱kevin執筆的系列專欄,專欄將會以kevin的架構經驗為基礎,逐步討論什麼是架構 怎樣做好架構 軟體架構如何落地 如何寫好程式等問題。本文是漫談架構專欄的第四篇,作者將會介紹架構的切分,並直戳切分的本質其實就是利益的調整。文中作者...

架構漫談(四) 如何做好架構之架構切分

前一篇已經講了如何識別問題。在識別出是誰的問題之後,會發現,在大部分情況下,問題都迎刃而解,不需要做額外的動作。很多時候問題的產生都是因為溝通的誤解,或者主觀上有很多不必要的利益訴求導致的。但是總還有一部分確實是有問題的,需要做調整,那麼就必須要有所動作,做相應的調整。這個調整就是架構的切分。切分就...