軟體架構師需要具備的技能 - Abeysinghe

banq發表於2022-01-21

在過去的二十年中,技術和軟體開發方法迅速變化。儘管如此,軟體架構師的重要性卻越來越高。即使在當今的敏捷文化中,架構師在自治團隊中也起著至關重要的作用。
這篇文章是關於架構師的特徵和開發所需的技能。當然,成為一名成功的架構師可能還需要許多額外的技能,但我會從我的優先順序列表中強調一些。
大多數架構圖和規範在設計上都很複雜。架構師透過認為複雜性證明了他們的能力來透過設計來做到這一點。然而,情況恰恰相反——複雜的架構無助於軟體開發。架構必須逐步構建,以便讓剛接觸問題空間的人能夠輕鬆理解。

我使用一種叫做levels的技術,從level 0開始逐步構建系統。在大多數情況下,L0 是箱形圖,L1 是解決方案圖,L2 是技術和供應商產品。這種方法有助於解釋複雜的問題並將它們分解為模組。閱讀的人確實容易理解,因為架構層層構建。

視覺思維:
架構師是視覺的,因此交流和分享想法的最佳方式是使用圖形模型。為此,架構師必須是視覺思考者。例如,每當架構師聚集時,他們都會使用白板、記事本,更糟糕的是,他們會使用餐巾紙。視覺思維必須使用架構友好的符號來對映和交付,範圍從塊、流程圖、序列、UML 到非標準。

我十幾歲的時候就開始畫漫畫,我最喜歡的角色是 Fido dido。在我的大學生活中,我曾經使用視覺效果做簡短的筆記來記憶課程。當我作為一名軟體專業人士進入這個行業後,我開始用塗鴉來表達我的想法。

 

技術繪圖:
為了表現視覺思維,建築師必須繪製——不是藝術,而是技術圖表。因此建築師必須掌握技術繪圖。技術繪圖技能可幫助建築師繪製幾何圖、利用間距並提高可讀性。此外,建立包含配色方案和圖示庫的媒體工具包對於一致性和真實性至關重要。

我在高中時學習了技術製圖,作為金屬製品學科的一部分——使用技術(手工)製圖製作各種物品的許多模型。然後,作為一名軟體架構師,我掌握了技術繪圖來呈現架構圖。根據我的圖表質量,許多同事問我使用的是什麼工具。(這不是工具;這是思維模式)。我使用OmniGraffle已有十多年了,我喜歡 Omni 作為技術繪圖工具。
 

系統思維:
架構涉及解決複雜問題;因此,架構師必須掌握系統思維。此外,架構師應該對系統有一個整體的看法,以設計和實現結果和目標。系統思維是這方面的基礎。架構師必須著眼於全域性,同時檢視組裝系統的每個元件的細節。

我著眼於系統架構師如何幫助改善人類生活,這讓我能夠看到整體觀點並開始應用系統思維。將企業視為一個複雜的自適應系統 (CAS) 有助於我瞭解超越技術的架構。
 

市場前景:
架構師必須密切關注行業中正在發生的事情——技術進步、模式和實踐的引入。這樣,他們可以應用相同的方法並構建最準確的架構藍圖,可以立即產生價值和未來的證明。

跟上科技行業的快速發展具有挑戰性,但成功的架構師無法逃脫的。我關注 Twitter 和 LinkedIn 中的大多數思想領袖,訂閱好的新聞通訊,活躍於技術論壇,參加技術活動並觀看點播影片,儘可能多地閱讀書籍和文章。最後但並非最不重要的一點是,嘗試透過在我的領域中選擇科目來進行教學。
 

溝通:
架構師將業務和技術團隊聯絡起來,並與技術人員交談——架構師是策展人。Gregor Hohpe將其解釋為架構師乘坐組織的電梯並連線頂層公寓和機房。架構師應該簡化複雜的系統並向其他人解釋它們。溝通包括口頭、書面和視覺渠道。

在擔任核心架構角色近二十年後,掌握溝通使我成為一名技術佈道者。指導和教授他人、參與各種營銷活動以及擔任解決方案架構和分析師關係等面向外部的技術角色等活動幫助我培養了所需的溝通技巧。
 

實施:
一些架構師如只關注溝通這一點。結果,他們成為了理論或 PowerPoint 架構師。因此,關注實現細節並致力於相同的工作有助於克服這種情況。敏捷開發和自治團隊為架構師提供了一個很好的框架,可以讓他們參與開發人員併為軟體開發做出貢獻。架構師必須透過編碼和使用支援技術處理各種配置來弄髒自己的手。

擁有架構師的頭銜,我參與了許多編碼活動。愛立信的第一個 MMS 應用程式、移動支付、具有核心銀行系統的 ATM 自動化、模組化中介軟體平臺的事件處理以及 FIX 和 HL7 等業務通訊協議都是一些例子。然而,在轉向面向外部的技術角色之後,我並沒有放棄編碼。我透過新增更多演示所需的產品示例、擴充套件點和用例來做出貢獻。我在晚上預訂了一個小時的編碼(程式碼小時),我用它來破解這些編碼任務,同時教我的孩子 編碼。




 

相關文章