Posted on 2007-11-18 21:50
canonical 閱讀(456)
評(píng)論(1) 編輯 收藏 所屬分類:
雜感
由于各個(gè)公司的領(lǐng)域,規(guī)模,人員配備等差異很大,形形色色的公司中頂著架構(gòu)師頭銜的諸般人等所從事工作的內(nèi)容以及所承擔(dān)的責(zé)任也是大相徑庭。務(wù)虛者有之,務(wù)實(shí)者也有之, 難以一概而論。甚至關(guān)于架構(gòu)一詞的具體含義在不同語境下也是很難達(dá)成共識(shí)的。然而作為架構(gòu)師,他應(yīng)該做什么,能夠做什么,卻是我在自己的職業(yè)生涯中需要加以回答的問題。
軟件公司中的工作大致分為銷售,技術(shù),財(cái)務(wù),打雜這幾類。架構(gòu)師所從事的工作大致上屬于技術(shù)這一攤,應(yīng)該是一種高度專業(yè)化的技術(shù)工作。在我看來,一般所謂架構(gòu)師的工作主要是負(fù)責(zé)設(shè)計(jì)規(guī)范整個(gè)軟件項(xiàng)目/產(chǎn)品/產(chǎn)品線的整體結(jié)構(gòu),他所擺弄的是各種相關(guān)的技術(shù)元素。雖然作為公司的技術(shù)利益的代表者,架構(gòu)師會(huì)在某種程度上參與到公司的商業(yè)活動(dòng)中(在某些巨型公司中,架構(gòu)師甚至可以通過標(biāo)準(zhǔn)規(guī)范對整個(gè)產(chǎn)業(yè)結(jié)構(gòu)施加影響),但是他更多的是接收商業(yè)需求將其轉(zhuǎn)化為技術(shù)約束,而很少是商業(yè)目標(biāo)的制定者。業(yè)務(wù)架構(gòu)方面的設(shè)計(jì)更理想的是由業(yè)務(wù)專家進(jìn)行,這個(gè)工作多半只需要技術(shù)的常識(shí),而不需要對于技術(shù)本身的深刻洞察。在另一方面,雖然架構(gòu)師對于技術(shù)實(shí)現(xiàn)所需的技術(shù)/人力等資源需求會(huì)提出自己的估算和建議,但是他一般并不具備相應(yīng)的手段和責(zé)任來具體管理整個(gè)實(shí)現(xiàn)過程。因此在我看來架構(gòu)師的管理職責(zé)并不是很大。當(dāng)然,有些架構(gòu)師會(huì)更加接近商業(yè)和管理而遠(yuǎn)離技術(shù),將他們稱之為"資深架構(gòu)師"可能更加合適。在某些大型系統(tǒng)的建設(shè)過程中,總體設(shè)計(jì)人員可以只負(fù)責(zé)收集各個(gè)子系統(tǒng)的技術(shù)要求,匯總后制定整體技術(shù)規(guī)范,所起的作用類似于協(xié)調(diào)人員,在這種情況下倒是對技術(shù)要求較低而對管理素質(zhì)要求較高了。
關(guān)于架構(gòu)的一個(gè)有趣的事實(shí)是,技術(shù)架構(gòu)本身其實(shí)很少存在設(shè)計(jì)問題。大部分問題只在于業(yè)務(wù)問題如何分解到既定的技術(shù)架構(gòu)上,一般的技術(shù)架構(gòu)也只是現(xiàn)有技術(shù)元素的簡單組合而已。所謂的架構(gòu)設(shè)計(jì)工作并不是在真正的系統(tǒng)全景下進(jìn)行,它往往是基于已有經(jīng)驗(yàn)所作的短暫延伸,是對業(yè)內(nèi)其他類似結(jié)構(gòu)的復(fù)制變形。我們所面臨的大量問題是選型問題,不是創(chuàng)造性問題,而是選擇性問題。架構(gòu)師最富技巧性的工作不是現(xiàn)在確定什么,做出選擇,而是確定現(xiàn)在可以不確定什么,可以將哪些選擇延遲。
在一般人看來,架構(gòu)師對于系統(tǒng)成敗必然起著關(guān)鍵性作用,否則他們憑什么屬于“活少錢多”的那伙人呢。但真實(shí)情況是,商業(yè)上的成敗很少是由技術(shù)架構(gòu)直接決定的。因?yàn)榧夹g(shù)開放和快速傳播等原因造成了技術(shù)的趨同性,在技術(shù)層面上,大多數(shù)公司很難依靠技術(shù)形成差異化優(yōu)勢。競爭優(yōu)勢主要來源于業(yè)務(wù)理解和與用戶的接觸性,來自于歷史形成的業(yè)務(wù)格局。而在中國這樣一個(gè)營銷制導(dǎo)的商業(yè)世界中,架構(gòu)師的工作更難說是在構(gòu)造某種與眾不同的東西。只有少數(shù)大公司依靠把握標(biāo)準(zhǔn)才形成技術(shù)的話語權(quán),大部分人不過是在技術(shù)的大潮中隨波逐流罷了。“不求有功,但求無過”應(yīng)該是架構(gòu)師基本的工作精神。技術(shù)失敗最常見的原因除了不夠?qū)I(yè)以外(在中國,“專業(yè)”的標(biāo)準(zhǔn)也許是不同的),就是過于自信,試圖去創(chuàng)造些新的結(jié)構(gòu),或者試圖全面應(yīng)用某種不熟悉的技術(shù)。架構(gòu)建設(shè)應(yīng)該是一個(gè)逐步改進(jìn)的過程,不要激進(jìn)盲動(dòng)。
國內(nèi)的架構(gòu)師多數(shù)是從高級(jí)程序員發(fā)展而來,在工作期間多半是學(xué)習(xí)掌握外部知識(shí),以掌握知識(shí)的細(xì)節(jié)程度和廣度為優(yōu)先。因?yàn)榭偸窃趧e人搭好的平臺(tái)上活動(dòng),即使是參與過眾多大型系統(tǒng)的建設(shè),對于系統(tǒng)整體結(jié)構(gòu)一般也沒有提煉出自己的認(rèn)識(shí)觀點(diǎn)。而有些大學(xué)設(shè)置了專業(yè),宣傳培養(yǎng)架構(gòu)師,但是實(shí)際上缺乏系統(tǒng)的實(shí)踐訓(xùn)練,學(xué)生所學(xué)到的多半是高舉高打的套路,在實(shí)戰(zhàn)中的表現(xiàn)往往更差。掌握技術(shù)細(xì)節(jié)和自主的整體性思考對于架構(gòu)師而言都是不可或缺的。
雖然創(chuàng)新的技術(shù)未必是商業(yè)中核心的元素,但是真正的創(chuàng)造性仍然是每一個(gè)設(shè)計(jì)師的希冀。作為一名實(shí)踐者,我們都在某種程度上期望超越所經(jīng)歷的偶然,達(dá)到某種普遍的真理,在外部的物質(zhì)世界中留下自己的精神烙印。在這種意義下,架構(gòu)師的工作便不是簡單的技術(shù)背景或者技術(shù)理解可以涵蓋的了。我相信,在業(yè)務(wù)層和基礎(chǔ)技術(shù)設(shè)施之間存在著物理性的厚重的通用技術(shù)層,其中存在著大量的結(jié)構(gòu)規(guī)律等待我們的探索,這也正是Witrix平臺(tái)一直努力的方向。