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