by 高煥堂 蘋果公司前CEO喬布斯(Steve Jobs)曾說:”你必須相信今日所做的(決策)會影響你的未來。” 所以,今日決策的未來性攸關個人或企業的未來發展。 今日決策的未來性 架構師(Architect)是重要的決策者。他要透過架構<設計>來創造<目前(今日)決策>的未來性。對企業而言,所謂未來性就是未來競爭主導性。所以,架構設計不僅要適應未來的變化,而且要讓企業、產品或系統在未來多變的需求趨勢、時尚空間里取得市場的競爭話語權。 架構師的職責是致力于現在決策,并讓它能包容未來的變化,也就是讓<目前決策>具有未來性。架構師不是去預測未來(的標準),不是去關心<未來決策>、去替未來做決策。架構<設計>不是要去實現<需求>。需求是善變、市場主導權之競爭也往往如流水般不可測;也就是因為它的未來的不可測性,所以我們需要優越的架構設計。 架構師的核心思維有4個元素:愿景、組合、創新、未來性。對于客戶(或企業)而言,愿景是目標,組合創新是手段;然而對于架構師而言,愿景則是手段,組合創新是目的。至于需求(Requirements)代表現實性。愿景和需求都隨時間而變,所以架構決策必須具有未來性。 例如,在約20多年前,臺北市興建地鐵時,必須做出當時的<目前決策>:地鐵出口該高出街道幾公分;必須具有未來性:避免未來大雨淹水。如果你是架構師(即地鐵建筑設計師)會如何思考呢? 可惜,當時的設計師只依賴統計數字(依過去400年來臺北市區平均水位+60公分高)來<預測未來>,沒有斟酌當時<目前決策>的未來性。果然在一回臺風過境時,臺北市地鐵全部成為大水溝,不幸損失了數百億元新臺幣。 Mapping from vision to reality 架構師清晰的愿景(Vision)并非要準確預測世界的未來景象,未來世界是不可知的。但是我們的目前決策會影響世界未來的發展軌跡。所以愿景是期望的未來景象;對架構師而言,它是手段,不是目的。真正目的是:要找出有助于實現愿景的目前決策,這樣的決策才真正具有未來性。所以,架構師的主要活動(Action)是: “從愿景回顧到現實” (Mapping from vision to reality.) 關于這項活動,可以聽聽蘋果公司前CEO喬布斯的敘述,他說: “你不可能在眺望未來時把生活中的每個點連接起來,只有回顧時能才連點成線。” 他所提的就是架構師的關鍵活動:找到愿景與現實之間的連線。這是架構師必備的修練。 愿景是人們對未來情境的期待。然而,對架構師而言,尋找愿景并非最關鍵之事。反而是透過「從未來回顧現在」的動作來找到從愿景到現實之間的<連線>(或稱途徑)才是最關鍵的事情。所以,不是等到找出真正的愿景之后,才進行”Mapping from the vision to today’s reality”動作;反而是在持續不斷地”Mapping”過程中,逐漸尋覓連線和修正愿景。換句話說,進行”Mapping”活動是迭代的(Iterative or Spiral)、實時的,隨著時間的推移,現實持續變化,連線持續尋覓,愿景不斷修正,整體團隊對于愿景愈清晰、對于連線愈有信心、愈樂在其中。 架構師不斷在尋覓多條行得通的途徑(連線),然后選擇一條<較具有未來性>的途徑給開發團隊施工。由于是一條具有未來性的途徑,其意味著繼續走下去,遇到阻力時,會有足夠的轉圜空間。所謂阻力,就包括各方既得利益者的阻礙。因之,架構師會持續不斷地尋找<無異走廊(Corridors of indifference)>;經由這走廊,開發團隊可以邁向(主人的)目標,但避免傷害伙伴(如客戶)或別人的私利而招惹阻力。 雖然初期愿景可以從別人而來,但架構師也需要培養自己的愿景和洞察力。不然,如果只是一心一意實踐企業或客戶的愿景或需求;而不是去實踐自己的愿景的話。架構師就沒環境來培養愿景了,于是,沒有愿景的架構師可能就不是有效架構師了;反而是一位初階的開發者呢! <軟硬整合>架構設計的未來性 以軟、硬件標準化為例 架構師專注的不是未來決策,而是目前決策的未來性。于是,表現在軟件架構設計(即決策)的未來性上,其最為明顯之處就是:要充分包容未來硬件的創新差異化。君不見,在當今智能終端廠商里,軟硬整合做得愈好的,其競爭主導權愈大,獲利愈豐,架構師的地位也愈高。 許多人問我:如何(How to)實踐<軟硬整合>呢? 我要強調:軟硬整合是狀態(State)、美好情境(Vision);不是如何做(How-to)。就像孫子兵法所說的<知彼知己>是狀態,而不是指先知己、后知彼等的步驟(How-to)。 例如,在標準化的迷思上;許多學、研單位的專家們最喜歡談標準化,并且容易獲得政府各單位的支持。身為架構師,該支持這標準化論點嗎? 事實上,崇尚標準化是一個陷阱。因為推行標準,就會排除不標準,也排除了創新,將嚴重傷害產業邁向高峰的機會。反而,架構師應該追求<包容>不標準才對。因為,架構師的職責是致力于現在決策,并讓它能包容未來的變化,也就是讓<目前決策>具有未來性。架構師不是去預測未來(的標準)、也不是去關心未來決策。過去的標準,會成為現在的不標準;現在的標準會成為未來的不標準;于是架構師致力于制定有效的目前決策,去包容未來的標準與不標準。 再如,無論是智能家庭或智慧城市,幾乎都是標準、非標準、開放、非開放并存的空間;所以仰賴高度標準化、寄望完美開放;可能都是烏托邦。如何擘劃一個能包容標準、非標準、開放、非開放… 的有機(Organic)架構,來展現未來性,適應未來一切環境變化,才是正道。 以包容通信協議為例 架構師的基本決策之一是:目前如何挖空,以開創產品或系統的未來性。老子曾說過:”無之以為用,有之以為利”。如果把<無>當動詞用,就是挖空的意思。把它挖空,才能創造未來的多用途效益。其實,大家都知道房屋墻壁要挖<空>成為門窗,這房屋未來才有用。還有畚箕也要先挖空,將來才能用來裝泥土或其它東西。所以目前決定如何挖空,這個決策大大影響整個產品或系統的未來效益,是架構師深具未來性的決策。其中,空與無的涵意非常接近,中國哲學談無,佛學談空。 基于這個<挖空>的決策,展現出未來性,讓軟、硬件能適應未來的環境變化。茲試想,有兩個軟件模塊:C模塊與S模塊;而且兩者之間透過網絡通信機制來互通。此時一般人會先去尋找標準的通信機制(如協議),然后才開發C和S軟件模塊。這就是預測未來(通信途徑)了,會讓軟件架構失去未來性,所以不是有效的軟件架構設計思維! 其解決之道是什么呢? 很簡單,只要<挖空>來包容通信協議的未來變化,就行了,如下圖所示: 于此,我來引用著名軟件架構師Fred George的話,他曾說: “Kent Beck曾經寫道:<代碼就是設計與殘酷現實的黎明交匯>。他的意思是,我們能畫出許多美好的設計,但最好的設計僅僅是被翻譯為優雅代碼的那些。一個無法將愿景(即Vision)帶入代碼(即Reality)的架構師將無法洞悉這個急速變化行業所呈現的面貌! 結語 架構師是決策者(Decision-Maker),管理學大師比得.杜拉克(Peter F. Drucker)指出:<決策往往不是從真相開始的,而是從想法開始。>一位架構師對于他在行的領域,如果不產生想法的話,表示他沒有敏銳的愿景和洞察力。沒有想法,而只能依賴需求分析、從中尋找真相,然后采取行動,是極為危險的。 由于機會存在于未來的復雜變化中;唯有簡單,才能理解復雜;谏鲜龅拿翡J洞察力,我們能從復雜設計出簡單,再從簡單掌握復雜。復雜與簡單彼此息息相關,在其交錯變化韻律中,抓住想不到的機會,創造絢爛的未來。(請參閱<<架構設計造形的簡單性>>文章) |