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

作者: 王概凱  來源: InfoQ  發布時間: 2016-04-17 21:59  閱讀: 20612 次  推薦: 12   原文鏈接   [收藏]  

  上篇:架構漫談(三):如何做好架構之識別問題

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

  切分就是利益的調整

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

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

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

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

  為什么需要切分?

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

  1. 某個或者某些利益相關人負載太重。
  2. 時間上的負載太重。
  3. 空間上的負載太重,本質上還是時間上的負載太重。
  4. 某個或者某些利益相關人的權利和義務不對等。

  切分的原則

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

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

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

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

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

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

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

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

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

  切分與建模

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

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

  切分的輸出和組織架構

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

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

  總結一下

  1. 架構的切分的導火索是人的負載太重。
  2. 架構的切分實際就是對stakeholder的利益進行切分或合并,使得每個stakeholder的權責是對等的,每個stakeholder可以為自己的利益負責。
  3. 架構切分的最終結果都會體現在組織架構上,只有這樣才能夠讓架構落地并推進。
  4. 架構切分的結果一定是一個樹狀,這也是為什么會產生分層。層數越多溝通越多,效率越低,分層要越少越好。盡可能變成一顆平衡樹,才能讓整個系統的效率最大化。

  下篇:架構漫談(五):什么是軟件

12
4
 
標簽:架構
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()