軟件架構(gòu)師的能力與特質(zhì)

軟件開發(fā)工程師的職業(yè)發(fā)展無非兩大類:一是做“官”,從事管理工作;二則繼續(xù)從事技術(shù)工作。對(duì)于后者,軟件架構(gòu)師(software architect)是很多軟件開發(fā)工程師追求的理想崗位。在這我想談一談軟件架構(gòu)師所需的幾大能力和一些特質(zhì),以便讀者能更好地規(guī)劃自己的職業(yè)發(fā)展。
 
1)需要很好的邏輯思維能力。對(duì)于軟件開發(fā)工程師來說,由于大多從事編程工作,所以很容易以為自己的邏輯思維沒有問題,足以滿足軟件架構(gòu)師一職所需。實(shí)則不然!就我的觀察,不少工作近十年的工程師仍存在思維不清的問題。主要表現(xiàn)在和他討論問題時(shí),你問他A,他回你B,且很容易跑題和抓不住重點(diǎn)。軟件架構(gòu)師在工作中需要“咬文嚼字”地理解文字和溝通,此時(shí)清晰的思維就是關(guān)鍵。
 
2)需要很強(qiáng)的概念(括)能力。軟件架構(gòu)師在很多情形下是管理層與工程師之間的橋梁,除了掌握技術(shù)細(xì)節(jié),還要對(duì)技術(shù)細(xì)節(jié)進(jìn)行一定的抽象概括使管理層理解問題所在,以便管理層恰當(dāng)?shù)貐⑴c決策。此外,軟件架構(gòu)師在日常工作中也會(huì)面臨各種各樣的技術(shù)問題,良好的概念能力有助于把握住問題的本質(zhì),從而有效率和效果地解決問題。
 
3)需要熟練運(yùn)用UML(Unified Modeling Language,統(tǒng)一建模語言)的能力。軟件架構(gòu)師由于需要從事大量文字描述性的技術(shù)工作,不可避免地需要借助圖,而UML就是一種較通用和接受程度較高的圖形化建模語言。軟件架構(gòu)師對(duì)于UML的掌握,不能只局限于明白各種圖型的意義,還得能熟練地查閱UML規(guī)范,以便精準(zhǔn)地了解各種術(shù)語和圖型的含義,從而實(shí)現(xiàn)對(duì)模型的精確表達(dá)。記住,“好圖勝過千言萬語”,圖要好就得追求表達(dá)的精確性,這就離不開對(duì)UML的精準(zhǔn)掌握。
 
4)需要很強(qiáng)的業(yè)務(wù)能力。對(duì)于系統(tǒng)架構(gòu)師(system architect),業(yè)務(wù)能力可能包括對(duì)行業(yè)規(guī)范的熟悉、對(duì)組織結(jié)構(gòu)和客戶關(guān)系的清晰了解和研發(fā)流程的深刻理解等。對(duì)于開發(fā)架構(gòu)師(development architect)業(yè)務(wù)能力則可能包含對(duì)行業(yè)規(guī)范的理解、對(duì)開發(fā)環(huán)境(編程語言、開發(fā)平臺(tái)與框架、開發(fā)流程等)的熟悉和很強(qiáng)的軟件查錯(cuò)能力等。
 
5)需要較強(qiáng)的組織能力(含溝通)。軟件架構(gòu)師在日常工作中需要做不少的協(xié)調(diào)工作,包括組織技術(shù)會(huì)議的召開和帶領(lǐng)團(tuán)隊(duì)攻堅(jiān),這些都需要一定的組織能力。拿組織會(huì)議來說,有些工程師不喜歡在會(huì)議之前進(jìn)行事先準(zhǔn)備和與相關(guān)人員進(jìn)行允分溝通,而是喜歡開會(huì)時(shí)事無巨細(xì)地討論,這勢(shì)必造成會(huì)議低效。面對(duì)這樣的會(huì)議,軟件架構(gòu)師需要很好地判斷是終止會(huì)議重新安排呢,還是繼續(xù)進(jìn)行。如果繼續(xù)進(jìn)行就得在會(huì)議中很好地掌控會(huì)議的話題和節(jié)奏,并依據(jù)自己的概念能力讓與會(huì)者更有效地達(dá)成共識(shí)。
 
6)敢于承擔(dān)責(zé)任。軟件架構(gòu)師在不少情形下是技術(shù)層面的決策者,他必須敢于“拍板”,這就要求他承擔(dān)起相應(yīng)的責(zé)任。當(dāng)然,責(zé)任的承擔(dān)不能“人有多大膽,地有多大產(chǎn)”那樣,而應(yīng)建立在自己的職業(yè)素養(yǎng)和能力之上。軟件架構(gòu)師如果不勇于承擔(dān)責(zé)任,那就容易造成開發(fā)工作開展不下去的局面。
 
7)面對(duì)挑戰(zhàn)的勇氣。其實(shí),這一點(diǎn)對(duì)于每一個(gè)職場(chǎng)人士都很重要,但對(duì)于軟件架構(gòu)師尤為重要。與軟件開發(fā)工程師相比,軟件架構(gòu)師所面臨問題的復(fù)雜度更高,既會(huì)有技術(shù)因素,也會(huì)有人為因素。解決這些問題有時(shí)是很大的挑戰(zhàn),也讓人覺得痛苦。有挑戰(zhàn)就意味著其中一定蘊(yùn)涵著其中存在可收獲的內(nèi)容,每克服一次我們的能力就獲得了提高。在面對(duì)挑戰(zhàn)時(shí),我喜歡對(duì)自己說“沒有痛苦就沒有成長(zhǎng)”;也會(huì)設(shè)想自己在面對(duì)挑戰(zhàn)的環(huán)境中工作了一年、幾年后將會(huì)有多大的收獲??!這種設(shè)想會(huì)給我們的職業(yè)發(fā)展帶來更大的想象空間,使得自己面對(duì)挑戰(zhàn)時(shí)更具耐心、信心和勇氣。
 
如何獲得前面所提及的一些能力相信是讀者比較關(guān)心的,我的回答是“需要時(shí)間和堅(jiān)持”。有些能力的獲得不是簡(jiǎn)單地掌握技術(shù)知識(shí)就行了,而是需要一定的人生閱歷,比如概念能力就是這樣的。對(duì)于開發(fā)軟件架構(gòu)師,如果要設(shè)計(jì)出一個(gè)好的軟件架構(gòu),除了接觸和學(xué)習(xí)已有的出色設(shè)計(jì)外,還得需要一定的行業(yè)積累和很好的概念能力。對(duì)于概念能力,我認(rèn)為它是依托于生活的,這就需要時(shí)間。這種理解也解釋了為什么業(yè)內(nèi)流傳著成為軟件架構(gòu)師得30歲以后才更可能。
 
至于堅(jiān)持,它同樣很重要。一個(gè)人的能力是有限的,很難做到這個(gè)也懂那個(gè)也會(huì)。某種程度上,所掌握知識(shí)的廣度對(duì)于我們的職業(yè)發(fā)展是有益的,但這是基于我們?cè)谀骋环矫婧芫@一前提的。要精于某一方面,就一定離不開在同一領(lǐng)域的不斷堅(jiān)持。堅(jiān)持意味著我們?cè)谀莻€(gè)領(lǐng)域會(huì)碰到更多的問題和做更多的思考,這是成為領(lǐng)域?qū)<业奈ㄒ煌緩健?/div>
 
或許有讀者會(huì)問,在這些能力中為什么沒有談及文檔編寫能力呢?原因不是因?yàn)樗恢匾喾?,這是軟件架構(gòu)師所需具備的最基本能力之一。其實(shí),文檔編寫能力考驗(yàn)的是前面提到的邏輯思維、概念和運(yùn)用UML的能力。一個(gè)說話沒有障礙的人,只要具備這三大能力就一定能寫出好的技術(shù)文檔。在日常工作中,如果某人不喜歡寫文檔、或認(rèn)為寫文檔不重要,那是因?yàn)檫@三大能力還不過關(guān)的緣故。也正因如此,我建議工程師不要想當(dāng)然地以為“只要會(huì)寫代碼,文檔編寫能力并不重要”。如果這樣想,那么軟件架構(gòu)師一職也就離我們遠(yuǎn)去了。
 
軟件架構(gòu)師的能力與特質(zhì)
推薦閱讀
軟件系統(tǒng)架構(gòu)師成長(zhǎng)之路(一)
軟件開發(fā)架構(gòu)師的職責(zé)》
 

分享標(biāo)題:軟件架構(gòu)師的能力與特質(zhì)
URL標(biāo)題:http://www.muchs.cn/article4/pdhpie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站建設(shè)做網(wǎng)站、虛擬主機(jī)、微信小程序自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)