成為跨領域的「解決方案架構師」需要什么素養?
本文來自作者 凱哥 在 GitChat 上分享 「成為跨領域的“解決方案架構師”需要什么素養?」,
在架構師這個職業路線上,筆者理解的路徑是這樣的:
從一個相對專注的架構師到解決方案架構師,再到更抽象,全面,具有企業頂層設計能力的企業級架構師,這個過程中,解決方案架構師 (SA) 這個級別,是很重要的,也是走向企業級架構師 (EA) 的必由之路。
維基百科對于解決方案架構師的解釋如下:
- A solution architect, in information technology,is a practitioner of solution architecture.
- Typically part of the solution development team, the solution architect translates requirements created by functional analysts into the architecture for that solution and describing it through architecture and design artifacts.
- The rest of the development team then uses those artifacts to implement the solution.
- The solution architect’s process typically involves selecting the most appropriate technology for the problem.
好的解決方案架構師能夠快速,全面,透徹的理解業務需求,從繁雜紛亂的業務需求和問題現象中抽絲剝繭,提煉和設計解決方案,從而幫助客戶把想法,問題,需求落地成一個可以執行實施的項目。
為什么是跨領域的解決方案架構師,這里的跨領域很重要。一個資深的解決方案架構師,同時擁有橫向和縱向兩種能力,縱向是在某一領域的沉淀深度,而橫向則是跨業務領域的。而解決方案的范圍越廣,融合性和可跨越性越強,
就像下面的圖,涉及的業務領域越窄邊界越清晰,而系統和范圍越大,則可能的跨界就越多。
一個自身的解決方案架構師經常會在方案設計過程中碰到多種領域的綜合分析和設計的場景。
如何能夠成為一個跨領域的解決方案架構師呢,凱哥基于過去十幾年的經驗,總結了如下能力模型:
筆者講跨領域的解決方案架構師的素養分成心態、能力、方法三個維度:
一、心態
1.永不言敗 (Courage)
解決方案架構師在實際工作中,承擔著很重要的角色,要沖鋒在***線去了解客戶需求,要配合銷售進行售前交流,要做方案設計,要和內部項目團隊介紹方案,跟進項目實施的結果,保障整體交付質量沒有偏離設計的目標。
所以,好的解決方案架構師首先需要有一個好的心態,心放到位了,事情才能做好。
首先***個心態就是勇氣,麥肯錫在新員工入職培訓時***個教授的就是要有永不言敗的精神。
作為專業的咨詢服務人員,要隨時能夠應對各種行業,各種風格的客戶,在你坐到客戶對面以前,你永遠不知道他會給你拋出什么樣的問題和挑戰。
任何時候都要有勇氣,都要相信沒有什么問題是不能夠被分解,被解決的。
解決方案架構師要永遠記住,解決方案這四個字的核心就是解決問題,你的存在就是要為問題找到一個解決的方法,變成一個成體系的方案。
經常看到的解決方案架構師出現的現象是給自己設限:
- 認為客戶的需求超出了銷售跟他講的內容,覺得這不是這個項目的職責;
- 認為客戶的想法不是自己的專業(即使真的解決不了,也要對接上其他的資源來予以跟進,這也是一種解決辦法)。
一旦自己給自己劃了圈,那么你的視野就會變窄,你的動力就會被削弱,就會有一個小人在旁邊時刻告訴自己,算了吧,這個事情不是你的事情,放棄吧。
而一個好的解決方案架構師,***個特質就是永不言敗,越挑戰越激動,越新鮮越感興趣,有著如饑似渴的動力,從不給自己設限。
2.快速學習的心態 (Fast Learning)
光有永不言敗的勇氣是不夠的,好的解決方案架構師要有快速學習的能力。
快速學習,指的是能夠在很短的時間內快速找到需要解決問題的知識、方法和工具。比如說我們做數字化咨詢服務的解決方案架構師,當我們拿到一個需求的時候。
很多時候,這個需求是非常模糊的,甚至有的時候,凱哥所知道的就是一個公司的名字,或者連名字都不特別清楚,只能通過只言片語知道這是一個什么行業,大概干什么的公司。
這種情況下,我們要有一個學習的框架,比如從行業到企業到業務領域,分層去全面掌握這個需要解決的問題的背景。
同時,為了加深了解可能的面對的問題,我們要做一些問題的預設,然后帶著這些預設的問題去搜索,去查找對應的知識,比如說競爭對手,行業趨勢,相關產業鏈等。
快速學習的心態是一個好的跨領域解決方案架構師的能量的源泉。而很重要的就是在不斷地學習和實踐中要積累一套適合自己的快速學習框架。
3.虛懷若谷的開放心態
這一點非常重要,還是凱哥所提到的,心到位了,一切都好做了。很多時候,架構師在面對交流對象時,把自己放到一個很高,絕對正確的立場。
客戶都是***,別人都不懂技術,當有了這樣的心態后,我們就像一個***,甚至看不到明顯的問題。更談不上很好的交流了。
一個虛懷若谷的開放心態,意味著,客戶講的東西一定都是有根源的,有原因的,都是解決問題過程中的線索。
所以凱哥經常說,所有客戶講過的話,發過的郵件或者文檔,尤其是 RFI,至少要讀三遍,才能夠動手做方案。
二、能力
1.抽象能力 (Abstraction)
架構師區別于一般的技術或者業務人員,最核心的一個能力就是抽象能力。
架構師最核心的能力是能夠從紛亂復雜的表象中,總結提煉抽象出最本質的問題的關鍵,然后將它體系化,結構化,變成一個架構,一個模型,呈現給其他人。
擁有了這樣的能力,架構師就可以從看上去一團亂麻一樣的各種復雜問題中,快速抓住主干的問題,和解決問題的辦法,然后將主干的問題解決方案變成架構,把解決問題的方法變成實施路線。
好的架構師能夠總結,提煉,包裝方法論和概念。比如我司的老馬,微服務這種實踐其實在很多年前,一些牛的程序員就已經在實踐,但是只有他能夠將這些分散的實踐總結出來,抽象出來,然后給他起一個最合適,容易被記住的名字。
比如在實施一個大型項目的時候,我們經常看到什么幾個一工程,什么”371”,“186”,等。這個工作和廣告營銷公司的策劃是類似的,總的來講,凱哥認為需要的是以下的實踐和能力:
1.1 對問題的深刻的理解能力
高度的抽象,并不是文字游戲,而是基于對客戶的需求,對問題的深度理解,能夠抓大放小,透過現象看本質,抓住問題的本質和最重要的部分。
1.2 全局思維能力
經常我們的架構師容易陷入一些細節,“只緣身在此山中”,無法站在更高的層面俯視問題和需求的全貌,所以在這種情況下,抽象出來的方案只是局部,更不要提能夠洞察本質。
1.3 對文字(表達方式)的總結利用的能力
***,文字(表達方式)的總結利用能力也是很重要的,這里不僅是文字。比如我們在寫技術方案的時候,架構圖就是一種常用的表達方式。
抽象能力來自于平時的實踐和信息量。沒有大量的實踐和信息量,沒有充分的練習,是很難建立高度的抽象能力的。
筆者經常能聽到朋友抱怨說一個問題想了很久都無法找到解決的方法,就像一句俗話所說,“狗咬泰山”。
這個時候,筆者就會告訴他,不論這個問題多么模糊,復雜,你先把它用 PPT 一步一步的描述出來,能寫多少寫多少。因為只是在腦子里想,那是最簡單的事情,但是一旦要把它畫出來,每畫一步就是一次抽象,一次提煉,一次練習。
2.溝通交流能力 (Communication)
溝通交流能力是一個資深的跨領域的解決方案架構師必備的技能。這個角色經常性的要和客戶交流,和團隊交流,面對各種復雜的交流場景。
當然,講如何提高溝通交流能力的文章和書有太多太多,這里凱哥講幾個作為一個好的解決方案架構師所需要的重點能力:
2.1 以問題為核心的引導能力
不論是對外還是對內,在交流過程中,解決方案架構師要時刻牢記自己交流的目的,是為了解決問題。
所以一定要讓交流的過程和內容圍繞問題進行,而不要偏題或被別人帶走。
2.2 換位思考的互動能力
凱哥經常見到架構師在介紹方案的時候,就是推方案,那真的是推。不管客戶將什么問題,提什么意見,總是把自己預設好的方案推銷給用戶。
要站在客戶的角度,從他們的價值觀,從他們的立場上思考問題,并且要能夠在理解他們的基礎上,牽引這客戶互動到我們認為正確的方案上,獲得客戶的認可,達成方案的一致。
3.業務能力 (Business)
一個好的解決方案架構師一定具備要一定的業務能力。在業務方面,從一個 BA(Business Analyst) 到 BA(Business Architect) 再到解決方案架構師的成長是這樣的:
這里的業務能力就包括對領域的理解,分析和設計的能力。
作為一個解決方案架構師,要掌握一些業務設計能力的典型框架,比如 DDD(Domain Driven Design)
4.技術理解能力 (Technology)
對于一個軟件行業的解決方案架構師來講,技術能力的表現是他知道,并理解行業里的技術,產品,開源框架的作用,并且能夠將它們應用到對應的業務需求上去。
但是是不是意味著,如果你不是程序員出身,不是做軟件行業出身就做不了解決方案架構師呢?
凱哥的答案是,不是的。
就像《天龍八部》里的王語嫣,她不會武功,手無縛雞之力,但是卻在高手對決的時候能夠洞若觀火,洞察雙方的招數,并且快速給出對應的制衡之法。原因就是她了解這些招數的作用。
解決方案架構師的最重要的能力是將需求理解后設計成總體的方案,然后分解到業務和技術架構師去進行詳細設計和執行。
所以解決方案架構師這個層面,他需要的是掌握常用的,領先的邏輯技術實現方式,然后將這些方式銘記于心,以技術的需求的方式描述出來。
5.實施能力 (Implement)
以上講的技術能力,業務能力是專業能力,但是作為一個好的解決方案架構師,他最終的目的是為了幫助客戶解決一個問題。
光有好的業務方案,技術架構是不夠的,最重要通過實施方案去落地。
一般而言,好的解決方案架構師需要把這個實施的整體方案做出來,就像拍電影,業務方案架構師就是編劇,而技術方案架構師就是燈光、現場、道具、美工等,最終是由制片人、導演來將電影最終組織并實現出來的。
一個好的解決方案架構師,能夠運用成熟的架構體系為客戶做出全面的解決方案。這里凱哥介紹一個業界普遍認可的架構框架,TOGAF。
TOGAF 是 The Open Group Architecture Framework 的簡稱。現在大的咨詢公司的方法論,比如 ADM(Accenture Delivery Methodology) 就吸取了 TOGAF 的很多內容。
三、方法
1.戰略思考 (Strategic Thinking)
戰略思考是解決方案架構師區別于具體實現人員的***的思考方法。戰略思維的概念和方法論很多,但是以下三點是凱哥認為最重要的點:
1.1 頂層思考
頂層思考能力,是好的解決方案架構師所必須具備的。比如說在進行用戶訪談調研的時候,你一定要站的比用戶給你講的視角要高,從而能夠一覽眾山小,去發現缺失的部分,引導需求方說出更多的問題。并且時刻腦子里要有一個全景圖。
1.2 系統思考
結構化思維,系統思考,簡單來說就是對事情全面思考,不只就事論事。是把想要達到的結果、實現該結果的過程、過程優化以及對未來的影響等一系列問題作為一個整體系統進行研究。
系統思考重要的因素是:整體性,動態性,立體型,綜合性,結構性。
1.3 敏銳洞察
敏銳的洞察能力,不僅關注現象,同時關聯發現相關的信息。這里很重要的表現就是聯想能力和對問題本質的洞察。最簡單的辦法就是多問自己幾個為什么。
2.設計思維 (Design Thinking)
設計思維作為一種思維的方式,它被普遍認為具有綜合處理能力的性質,能夠理解問題產生的背景、能夠催生洞察力及解決方法,并能夠理性地分析和找出最合適的解決方案,核心就是人性化設計。
解決方案架構師要熟悉一些常用的設計方法和理念,并且能夠以用戶體驗為一個視角去看待和架構解決方案
成為一個跨領域的解決方案架構師,除了以上的素養之外,就需要充分的實踐,這里的實踐包括體系的總結包裝實踐,比如說我們的售前活動,也包括具體的項目實施。
一個好的解決方案架構師一定是出去能夠講故事,回來能夠寫方案,然后可以帶項目做實施的,這三個環節缺一不可。
參考文獻:
http://watersfoundation.org/systems-thinking/what/;
https://en.wikipedia.org/wiki/Solution_architect;
http://strategyskills.com/Articles_Samples/What_is_Strategic_Thinking.pdf;
https://hbr.org/2008/06/design-thinking。
【本文為51CTO專欄作者“凱哥”的原創稿件,轉載請通過作者微信公眾號shikai590獲取授權】