IBM軟件集團(tuán)大中華區(qū)合作伙伴技術(shù)支持總經(jīng)理王小虎

作為全球最大的IT服務(wù)商,IBM有著全世界最系統(tǒng)、最完整的方法論,不是單單的面向硬件或者中間件方面的架構(gòu),而是涵蓋從企業(yè)架構(gòu)、業(yè)務(wù)架構(gòu)、應(yīng)用架構(gòu)、信息架構(gòu)、基礎(chǔ)架構(gòu)乃至集成架構(gòu)等都有詳細(xì)的方法論。他山之石,可以攻玉。日前,就架構(gòu)方法論的重要性以及在國內(nèi)的現(xiàn)狀以及國內(nèi)企業(yè)應(yīng)該如何實(shí)踐,《程序員》雜志記者跟IBM軟件集團(tuán)大中華區(qū)合作伙伴技術(shù)支持總經(jīng)理王小虎進(jìn)行了一次對話。

盡早營造出重視架構(gòu)方法論的氛圍

據(jù)王小虎觀察,國內(nèi)經(jīng)過實(shí)戰(zhàn)鍛煉出來的技術(shù)英雄高手眾多,不管名片或職稱上是否印了架構(gòu)師的頭銜,實(shí)際上都已經(jīng)在做大量架構(gòu)師的工作了。很多時候,中國工程師能憑借個人天賦和經(jīng)驗(yàn)將項(xiàng)目帶向成功,。雖然一將功成萬骨枯,其經(jīng)驗(yàn)往往帶著血的教訓(xùn)。不過隨著項(xiàng)目環(huán)境的變化過去成功的經(jīng)驗(yàn)往往并不適用,這時候往往但會給項(xiàng)目帶來巨大的風(fēng)險,更為可怕的是和因缺乏架構(gòu)方法論指導(dǎo)難以將經(jīng)驗(yàn)系統(tǒng)積累并傳承的困境將長期存在。隨著英雄的離去,項(xiàng)目就進(jìn)展不下去或公司一條線倒下的情形比比皆是。,究其原因都是因?yàn)槿狈y(tǒng)一的標(biāo)準(zhǔn)和方法論來指導(dǎo),難以將經(jīng)驗(yàn)系統(tǒng)化的積累起來并科學(xué)的使用。

與此不同,國外同行已經(jīng)通過大規(guī)模普及架構(gòu)方法論應(yīng)用,批量生產(chǎn)出一批批的架構(gòu)師。這些架構(gòu)師未必每個人都有天賦,但通過系統(tǒng)培訓(xùn),一步步按照標(biāo)準(zhǔn)的方法論走下來。最后設(shè)計(jì)出來的架構(gòu)文檔形式貌似都差不多,但考慮都比較周詳和全面,絕大多數(shù)項(xiàng)目都能保證成功,起碼,很難因?yàn)榧夹g(shù)問題而失敗。而且,更重要的是這些寶貴的精神資產(chǎn)和標(biāo)準(zhǔn)的代碼模塊可以很好的在公司傳承下去。

王小虎建議,任何將軟件視為核心資產(chǎn)的公司都應(yīng)該盡可能早地營造出重視架構(gòu)方法論的氛圍,以及建立穩(wěn)定的架構(gòu)師團(tuán)隊(duì)和架構(gòu)師培養(yǎng)計(jì)劃。優(yōu)秀的架構(gòu)方法論從單個點(diǎn)上來說不僅可以讓架構(gòu)師更合理的設(shè)計(jì)方案,幫助項(xiàng)目成功,對于公司來說還可以讓不同的團(tuán)隊(duì)用一種語言和方法辦事,傳承公司一體化的思維產(chǎn)品思維。從反面來看,他所見過的因缺乏架構(gòu)方法論指導(dǎo)而導(dǎo)致項(xiàng)目后期陷入困境,甚至公司因此破產(chǎn)的情況讓人觸目驚心。

單純從技術(shù)角度上看,即使在理論上,都很難通過架構(gòu)重構(gòu)等增量技術(shù)來將一個糟糕的架構(gòu)改良為一個優(yōu)秀的架構(gòu),在實(shí)踐中就更難了。后期重構(gòu)架構(gòu)的成本將非常高昂,以至于超出了絕大多數(shù)管理者所能接受的程度,所以往往不得不推倒重來。如果早期就重視方法論,并將其運(yùn)用到工作中,以此為基礎(chǔ),一個好的架構(gòu)可以在成本很小甚至零成本的時候就建立起來,由此減少的項(xiàng)目執(zhí)行過程中的重新設(shè)計(jì)和返工將帶來良好的投資回報(bào)。從開發(fā)者的角度看,由于架構(gòu)的各個層次和元素設(shè)計(jì)底層封裝得更好,應(yīng)用開發(fā)人員不需要了解那么多底層其他層次和元素的技術(shù)細(xì)節(jié),可以更關(guān)注所構(gòu)建模塊的業(yè)務(wù)解決方案,開發(fā)出的軟件質(zhì)量也更高。如果已經(jīng)建立了一個良好的軟件系統(tǒng)架構(gòu),就可以持續(xù)地重新評估,并作出必要的完善和重構(gòu)。

IBM所提倡的架構(gòu)方法論所遵循的基本原則,包含了四個關(guān)鍵詞:預(yù)定義、前后連貫邏輯嚴(yán)謹(jǐn)、迭代式、多重視角。具體說來,就是要以活動來驅(qū)動設(shè)計(jì)流程,而不是工作件(Work Product)。每個工作件都需要多項(xiàng)輸入,同時自身也是其他工作件的輸入,一旦獲得工作件信息要立即記錄。工作件都處于迭代過程中,常常會經(jīng)歷若干次的修改和優(yōu)化。不同的部分工作件會有多重不同的視圖,部分工作件只針對特定的和讀者。每一個技術(shù)決策都可以被回溯到需求分析中的某一部分。王小虎強(qiáng)調(diào),所有這一切的最終目的都只有一個,就是設(shè)計(jì)優(yōu)良的架構(gòu)并勵盡可能的進(jìn)行資產(chǎn)重用,這是架構(gòu)方法論所追求的軟件系統(tǒng)價值最大化的最重要的原則。

分階段推進(jìn)架構(gòu)方法論落地

從國內(nèi)多數(shù)公司現(xiàn)狀來說,雖然從老板的角度都想將架構(gòu)方法論推行起來,但現(xiàn)實(shí)問題是,迫于財(cái)務(wù)壓力和人才短缺,公司里真正有能力去做這些研究的技術(shù)精英都已經(jīng)被抽去做業(yè)務(wù)項(xiàng)目,導(dǎo)致架構(gòu)方法論的推進(jìn)有限。對此,王小虎認(rèn)為,任何公司都不應(yīng)該僅依賴一兩個能獨(dú)當(dāng)一面的高手來解決所有問題。推廣方法論的時候不要操之過急,首先可以成立一個架構(gòu)方法論研究的團(tuán)隊(duì),可以是實(shí)體部門也可以是虛擬的團(tuán)隊(duì),此外從公司業(yè)務(wù)和組織架構(gòu)上作出調(diào)整以適應(yīng)知識積累及共享機(jī)制。王小虎建議將眼光放得長遠(yuǎn)一點(diǎn),其次分階段性的實(shí)現(xiàn)架構(gòu)方法論,可以在部分團(tuán)隊(duì)中挑一些重要的方法環(huán)節(jié)進(jìn)行統(tǒng)一的實(shí)施,通過階段性成績?nèi)フf服上級和業(yè)務(wù)部門主管,讓他們看到好處,以獲得進(jìn)一步的支持。可喜的是,國內(nèi)很多有一定規(guī)模的公司都開始重視和應(yīng)用架構(gòu)方法論了。(付江/)

分享到

aming

相關(guān)推薦