架構(gòu)師是一個充滿挑戰(zhàn)的職業(yè),需要關(guān)注很多維度和技術(shù)。只專注于單一領(lǐng)域的架構(gòu)師并不是優(yōu)秀的架構(gòu)師。那么如何成為一個技術(shù)全面的架構(gòu)師呢?
一、作為技術(shù)領(lǐng)導(dǎo)者
一名好的軟件架構(gòu)師需要明白,作為領(lǐng)導(dǎo)者并不一定要告訴開發(fā)人員做什么。相反,好的架構(gòu)師就像一個導(dǎo)師,帶領(lǐng)開發(fā)團(tuán)隊向同一個技術(shù)愿景前進(jìn)。好的架構(gòu)師會借助于講故事、影響力、引導(dǎo)沖突、構(gòu)建信任等領(lǐng)導(dǎo)技能,將他們的架構(gòu)愿景變成現(xiàn)實。一個好的領(lǐng)導(dǎo)者,同時也是一個好的架構(gòu)師。他/她會仔細(xì)聽取每個參與者的意見,通過與團(tuán)隊的反饋互動調(diào)整他們的愿景。
二、作為開發(fā)人員
一個架構(gòu)師同時又是一個好的開發(fā)人員。通常,做出一個良好的架構(gòu)選擇需要權(quán)衡理想的架構(gòu)狀態(tài)與軟件系統(tǒng)的當(dāng)前狀態(tài)。例如,如果一個問題更適合采用關(guān)系型數(shù)據(jù)庫來解決,那么將文檔數(shù)據(jù)庫引入到系統(tǒng)中的做法是毫無道理的。一個架構(gòu)師如果不考慮技術(shù)選型與問題域之間的匹配度,那么會很容易受到各種技術(shù)的誘惑——這也就是常見的“象牙塔式架構(gòu)師”行為模式。
緩解這種情況的最佳方式是架構(gòu)師多與開發(fā)人員待在一起,花一些時間在代碼上。了解系統(tǒng)的構(gòu)建方式及系統(tǒng)的約束將幫助架構(gòu)師在當(dāng)下環(huán)境做出正確的選擇。
三、聚焦系統(tǒng)
經(jīng)驗豐富的開發(fā)人員明白代碼只是軟件的一個方面。為了讓代碼可運行,他們還需要了解代碼在生產(chǎn)環(huán)境中運行良好所需的其他重要質(zhì)量屬性。他們需要考慮部署過程、自動化測試、性能、安全和可支持性等方面。開發(fā)人員可能以臨時的方式來實現(xiàn)這些質(zhì)量屬性,而架構(gòu)師不僅需要專注于了解代碼,還要了解并滿足不同利益相關(guān)者(如支持、安全和運營人員)的需求。一個好的架構(gòu)師需要專注于尋找那些能夠滿足不同利益相關(guān)者需求的解決方案,而不是選擇針對某一個參與者的偏好或風(fēng)格進(jìn)行優(yōu)化的工具或方法。
四、企業(yè)家思維
所有的技術(shù)選型都有相關(guān)的成本和收益,一個好的架構(gòu)師需要從這兩個角度考慮新的技術(shù)選型。成功的企業(yè)家愿意承擔(dān)風(fēng)險,不過也會尋求快速學(xué)習(xí)和快速失敗的方法。架構(gòu)師也可以用類似的方式做出技術(shù)選型,收集真實世界中有關(guān)短期和長期成本的信息,以及他們可能意識到的好處。
這方面一個很好的例子是,架構(gòu)師避免承諾立即使用一個在閱讀新文章時看到的工具或某一會議上聽過的工具。相反,他們試圖通過架構(gòu)調(diào)研來了解工具在其環(huán)境中的相關(guān)性,以收集更多信息。他們對于工具的選擇不是基于銷售量,而是考慮他們需要什么以及這個工具所提供的價值。他們還會尋找這些工具背后的隱性成本,例如工具的支持情況(如文檔化程度、社區(qū)使用情況),工具可能帶來的約束或長期來看可能引入的額外風(fēng)險。
五、權(quán)衡策略思維與戰(zhàn)術(shù)思維
許多團(tuán)隊由一些獨立的開發(fā)人員一起構(gòu)建軟件,而每個人都傾向于選擇自己最舒適或最有經(jīng)驗的工具和技術(shù)。好的架構(gòu)師持續(xù)關(guān)注可能有用的新技術(shù)、工具或方法,但不一定立即采用它們。技術(shù)采用往往需要長期的考量。架構(gòu)師將在團(tuán)隊和組織層面尋求敏捷度(允許團(tuán)隊快速采取行動)和對齊(保持足夠的一致性)之間的良好平衡。建立自己的技術(shù)雷達(dá)這樣的練習(xí)是用戰(zhàn)略思維探索技術(shù)的一個有用工具。
六、良好的溝通
架構(gòu)師需要知道,有效溝通是建立信任和影響團(tuán)隊以外成員的關(guān)鍵技能。他們知道不同群體使用不同的詞匯,而使用技術(shù)術(shù)語和描述與業(yè)務(wù)人員溝通將會變得比較困難。與其談?wù)撃J?、工具和編程概念,架?gòu)師需要使用聽眾熟悉的詞匯與之交流,諸如風(fēng)險回報、成本和收益等。這比單純使用技術(shù)詞匯進(jìn)行溝通來得更好。架構(gòu)師還需要認(rèn)識到團(tuán)隊內(nèi)部溝通與外部溝通同樣重要,可以使用圖表和小組討論的方式來建立和完善技術(shù)愿景,并書面記錄之。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com