本文由夏雪(@simnba糊塗)投稿於伯樂線上,也歡迎其他朋友投稿。提示:投稿時記得留下微博賬號哦 ~
軟體架構設計需要以長遠的眼光以巨集觀視角從整體出發,深入分析外部環境、競爭對手與內部資源,明晰各方面的關注點,並平衡他們之間的利益,使大家可以明確目標,達成共識,解決主要矛盾。這些要求和做法同建立、治理一個國家是十分相似的,下面我將從架構的角度去分析三國中蜀漢的歷史,並總結由此帶來的架構思考與啟發。
求架構“三顧茅廬”, “隆中對”定架構方略
東漢末年,國企衰敗,各地湧現了大量新建企業。其中一個,就是劉備。劉備旗下擁有技術大牛關羽、張飛、趙雲,一直活躍在後漢時期,也順利完成了剿滅黃巾軍專案中的子任務。但由於缺少整體經營思路,一直在平原縣、徐州等地以手工作坊式的工作模式做著臨時專案,後來因為政府關係惡化(鞭笞督郵)、無法與強大的競爭對手(曹操、呂布)抗衡而不能穩固市場,先後投奔公孫瓚、曹操、袁紹、劉表,過著顛沛流離、寄人籬下的生活。經理劉備迷失了,我到底應該做怎樣的定位,要制定怎樣的戰略方針,又如何去實現它呢?對,他現在急需的是一名架構師,在徐庶、司馬徽的推薦下,劉備三顧茅廬欲聘諸葛亮為架構師。
孔明那份特殊的簡歷在劉備登門之前就已經準備好了,在面試過程中,他向劉備展示了他為其量身定製的架構概覽。
他首先分析了當前大環境:
自董卓已來,豪傑並起,跨州連郡者不可勝數。
然後又分析了主要競爭對手:
曹操比於袁紹,則名微而眾寡。然操遂能克紹,以弱為強者,非惟天時,抑亦人謀也。今操已擁百萬之眾,挾天子而令諸侯,此誠不可與爭鋒。孫權據有江東,已歷三世,國險而民附,賢能為之用,此可以為援而不可圖也。
那麼機會有哪些:
荊州北據漢、沔,利盡南海,東連吳會,西通巴、蜀,此用武之國,而其主不能守,此殆天所以資將軍,將軍豈有意乎?益州險塞,沃野千里,天府之土,高祖因之以成帝業。劉璋闇弱,張魯在北,民殷國富而不知存恤,智慧之士思得明君。
我們的優勢在哪裡:
將軍既帝室之胄,信義著於四海,總攬英雄,思賢如渴。
架構決策:
如果能佔據荊、益兩州,守住險要的地方,和西邊的各個民族和好,又安撫南邊的少數民族,對外聯合孫權,對內革新政治;
願景:
霸業可成,漢室可興!
這番分析深深打動了劉備,他即刻成立蜀漢專案組,專案近期目標為取得荊州、益州,外交策略為結好孫權,遠期目標是壟斷全國,並正式聘請諸葛孔明為架構師。
實施戰略架構一:孔明巧析關注點,說孫權共同抗曹
“外結好孫權”是劉備集團戰略架構中重要的外交策略。時下正值曹操揮師南下取了荊州,揚言要順流而下,席捲江東,諸葛亮認為此時正是聯合孫權的時機。對於是否抗曹孫權集團內分為兩種意見,一方是以張昭為首的迎曹派,建議投降曹操,而另一方是以周瑜、魯肅為首的抗曹派,堅決主張抗曹。孫權是戰是降拿不定主意。要說服孫權集團聯盟,首先得找出集團真正的決策者。“內事不決問張昭,外事不決問周瑜”反映了孫權集團的頂層組織關係,張昭、周瑜只是被“問”的,而真正“決”的,還是孫權。於是孔明深入分析這位主要干係人,摸清他的主要關注點:
1、孫權繼承父兄基業,是要成就一番霸業的,肯定不甘屈服於曹操。
2、曹操來勢洶洶,兵多將廣,孫權擔心戰敗。
針對第一點,孔明巧用激將計,聲稱曹操勢大,如果孫權猶豫不決,還不如早早投降了好,至於我家主公劉備是皇氏宗親,是有氣節的,寧肯失敗也是不會投降的。在這樣的刺激下,激發出孫權內心不願投降的想法,當即表示一定要抗曹。
但是,劉備能出多少力?我們勝算如何呢?孔明接下來分析了雙方戰力,劉備雖然新敗於新野,但還有兵士萬人,侄子劉琦也有萬人,曹操雖然兵多,但遠來疲憊,又不善於水戰,而且軍隊中還有很多荊州兵其實是被逼上前線的老百姓,軍心不穩,如果您能派幾萬精兵,與劉備共同抗曹,肯定可以打敗他。如此打消了孫權的顧慮,堅定了只要孫劉聯合,就可以打敗曹操的信心。
孔明通過深入分析主要干係人的關注點,並利用優秀的溝通技巧使對方認同瞭解決方案,成功建立了孫劉聯盟,最終取得了赤壁之戰的勝利,為劉備贏得了寶貴的喘息之機,並爭取到了反攻荊州的機會。
實施架構戰略二:得荊州、奪益州
赤壁之戰打敗曹操之後,劉備迅速將矛頭指向了架構中的第一軍事目標:荊州。雖然環境與架構決策時已經發生了變化,荊州已經被曹操攻佔,但由於曹操新得荊州民主不穩,並且赤壁新敗士氣低落,另外主要兵力還被東吳牽制,所以劉備很順利地攻下了荊州四郡:長沙、零陵、桂陽、武陵。後來又向盟友孫權“借”得南郡,從而佔得荊州七郡中的五郡,實現了架構目標:荊州。
隨後,又以荊州為根據地,由諸葛亮、關羽鎮守,劉備以協助劉璋抗擊張魯為名協軍師龐統發兵西川。劉備以張鬆、法正為內應,駐紮當地收服人心,後與劉璋決裂,奪下了益州。並且果然如“隆中對”中“智慧之士思得明君”的判斷,攻蜀期間先後有大量蜀將投降,使劉備整體實力大增。至此,劉備又實現了另一個架構目標:益州。
荊州、益州是劉備集團整體發展架構的兩個軍事要點,集團上下在架構實施過程中目標明確,時機得當,由龐統、法正、諸葛亮三位著名架構師直接參與,並堅持“外結好孫權”的戰略方針,於是順利地實現了架構方案,實現了奪取荊州、益州的架構目標,形成了三足鼎立的局面。
忽略架構戰略,關羽、劉備先後殞命
劉備集團奪取荊州、益州之後,成功搭建起了“隆中對”中的物理架構,為統一中原、匡復漢室的終極目標奠定了基礎,但同時,又帶來了新的危機。劉備的強大,引起東吳老闆孫權的密切關注,如果劉備背信棄義,掉轉槍頭向我開火怎麼辦?此時,主要干係人的利益發生了變化,劉備變強,等於孫權變相地變弱了,原來把荊州借給劉備是要當防守曹操的盾,現在卻要小心變成劉備進攻自己的矛。於是在關羽攻打樊城時孫權下了一著棋來試應手,他想與關羽聯姻,娶關羽的女兒當兒媳婦,但關羽不但不答應,還辱罵了使者,這使孫權大怒,派呂蒙趁虛夜襲荊州,殺了關羽。丟了荊州和關羽的劉備大怒。不顧蜀漢諸大臣的勸告,興全國之兵進攻東吳,結果被陸遜火燒連營,命喪白帝城。
“外結好孫權”是蜀漢戰略架構的重要方針,違反這一架構方針是荊州、夷陵兩戰失敗的主要原因。當外敵強侵之時,兩股弱小的勢力結為聯盟是互惠互利的做法,但當一方變強時,這種平衡即被打破,原來的架構就會受到衝擊,這就需要架構師去平衡各方面的利益,使大家重新達成共識,使大家能夠維持穩定的架構格局。從事後來看,這兩戰沒有勝者,由於盟友反目,大戰又使雙方國力受損,最終蜀漢和東吳被先後滅國,這恐怕是孫劉聯盟所有干係人都不願意看到的結果。遺憾的是,此兩戰諸葛亮都沒有直接參與,甚至也沒有拿出關鍵意見去平衡各干係人的利益,保證架構方案的貫徹實施,使實現偏離了架構設計,打了兩場大敗仗,蜀漢實力大損。
不穩定的架構,諸葛亮“死而後已”
蜀漢發展到後主時期,經過荊州、夷陵兩戰,戰略架構已經遭到了嚴重破壞。首先,丟失了重要元件荊州。荊州本是蜀漢重要的戰略要地,是戰略架構中的重要元件。因為荊州四通八達,與益州成犄角之勢,在進攻時可以同益州一齊做併發處理,在防守時互為援助起到負載均衡的效果。丟失了它,進攻就只能從益州單程式發起,路途崎嶇遙遠,不利於供給,同時防守又少了牽制點,使益州直接面對對方的壓力。再者,荊州之戰、夷陵之戰瓦解了孫劉聯盟。東吳作為蜀漢架構中的合作伙伴外部系統,是重要的外部IT資源,它可以分擔蜀漢在攻防兩端的效能壓力,沒有它,蜀漢就只能獨立地完成攻防任務。除此之外,蜀漢還面臨著人才青黃不接、人口稀少、土地面積較小等問題,如果按正常發展,魏蜀之間差距將越來越大,亡國將成定局。是維持現狀執行?還是打破原架構思想尋找突破?諸葛亮作出了主動北伐的架構調整,希望能夠找到新的機會,但很遺憾,實力強大的北魏堅持司馬懿穩固防守的架構策略,最終把諸葛亮慢慢拖死了,蜀漢也最終走向了滅亡。
架構的調整,需要付出巨大的成本和代價,所以需要在初期充分論證,設計穩固、易擴充套件的架構體系,並且需要在架構實施階段積極跟進,保證架構方案被正確理解、正確實現,否則,千里之堤毀於蟻穴,任何違反架構思想的做法都是一顆顆定時炸彈,等到它們爆炸時,無論繼續持續現狀還是重新調整都很難再得到理想的效果。
架構思考
從蜀漢的歷史我們可以看出架構對國家發展的重要意義,前期優秀的架構設計+充分有效地執行讓流浪的劉備有了根據地,有了雄據一方三足鼎立的實力,但中期違背架構方針使蜀漢付出了慘痛的代價,損失了君主、名將和精兵、損失了戰略要地,後期已經很難再對已被破壞的架構做出調整,勉力支撐一段時間後,最終亡國。
通過以上的思考與分析,我認為架構師在架構工作中,有以下幾個方面是需要特別注意的:
1、在初期,應站在全域性出發,瞭解客戶的願景和目標,深入分析客戶所處的大環境、分析其主要競爭對手、分析現有資源、分析合作伙伴,明確實現目標的關鍵成功因素有哪些,這樣才能夠作出適合客戶的架構解決方案。
2、善於分析組織,找出真正的決策者,站在他的立場去了解、理解、分析他的關注點,他的目標和顧慮,通過優秀的溝通能力使他理解你的設想,對目標達成共識,接受你的解決方案。
3、架構是一種平衡的藝術,干係人之間的利益有可能是有衝突、有矛盾的,這就需要架構師多換幾種思維角度,從長遠出發?從全域性出發?從他實質的內心需求出發?……找出平衡點,使干係人達成共識是架構師的目標,是架構是否穩定、能夠準確執行的基礎。
4、架構師必須參與到架構的實施過程中,保證架構方案可以從售前階段順利平滑過渡到實施階段,確保客戶解決方案按照設計思路實施,避免錯誤的實施給架構造成破壞,帶來額外的成本和風險。
作者:夏雪 。微博:@simnba糊塗
本文由夏雪投稿於伯樂線上,也歡迎其他朋友投稿。提示:投稿時記得留下微博賬號哦 ~
【如需轉載,請標註並保留原文連結、譯文連結和作者/譯者等資訊,謝謝合作!】