架構師,別再扯淡了!

2023-04-21 12:01:09

hi,我是熵減,見字如面。

對於從事軟體開發的工程們來說,都有一個成為架構師的夢想。

可以說,不想當架構師的程式設計師,不是好的工程師,人人都想成為架構師。

而為什麼要成為架構師,可能每一個人都有不一樣的理解和出發點。譬如,有的人覺得架構師是一個非常高大上的職位,或者架構師能夠獲得不錯的報酬,或者架構師在行業內更有聲譽等等,不一而足。

所以,我們對架構師的預期目的和理解認知,對程式設計師職業的發展來說,還是比較重要的。同時,對組織的成長,也是有一定的意義的。

今天,我來聊聊對架構師的一些想法和思考吧。

什麼是架構師

軟體架構師是在在軟體開發領域中非常重要的角色,其負責設計和管理軟體系統的整體架構。

作為軟體的架構師,需要綜合考慮軟體系統的各個方面,包括效能、安全、可維護性、可延伸性等,以及與其他系統的整合等方面,從而設計出滿足客戶需求、具有高質量和可維護性的軟體系統架構。

具體來說,在軟體設計和開發過程中,需要在軟體開發週期的早期階段就參與到專案中,與需求方溝通需求,分析需求,評估技術可行性,根據需求和技術可行性,設計軟體系統的整體結構和各個元件之間的互動關係,制定技術規範和標準,為開發人員提供技術指導和支援。

此外,架構師還需要關注軟體系統的整體效能、安全和可維護性等方面,提出優化建議,確保軟體系統的質量和可靠性。

可見,架構師是軟體開發團隊中至關重要角色,需要承擔至關重要的責任,他們的工作會直接影響軟體持續交付的質量和效能。

架構師的職責

作為一名架構師,在專案和團隊中,是要承擔責任,承擔解決問題的責任,規劃系統的目標,方案和迭代路徑等。

其具體的職責,可以總結為以下幾點:

  • 對系統的整體架構設計負責:架構師負責分析客戶需求和業務流程,根據技術可行性和可延伸性等方面的要求,設計出軟體系統的整體結構和各個元件之間的互動關係,制定技術規範和標準,並提供技術指導和支援。
  • 對系統的可靠性和質量負責:架構師需要關注軟體系統的整體效能、安全和可維護性等方面,提出優化建議,確保軟體系統的質量和可靠性。
  • 對系統的可延伸和適應性負責:架構師需要考慮軟體系統的未來發展和變化,確保軟體系統具有良好的可延伸性和適應性,能夠隨著業務的變化而進行擴充套件和修改。
  • 對團隊的共同作業和溝通負責:架構師需要與開發團隊和其他相關團隊進行溝通和共同作業,確保整個團隊在軟體開發週期中緊密共同作業,高效完成工作。

可見,在軟體團隊中,架構師是扮演著至關重要的角色,他們的職責和作用不僅是設計和管理軟體系統的整體架構,還包括確保軟體系統的可靠性和質量,維護軟體系統的可延伸性和適應性,促進團隊溝通和共同作業等方面。

常見的架構師型別

現在,在人才市場上,有各種各樣的架構師的職位需求,諸如:

  • 軟體架構師:軟體架構師負責軟體系統的整體設計和架構,需要對軟體系統的各個方面(如業務流程、資料儲存、系統安全等)有深入的理解和把握,能夠通過優化設計和提出技術方案等方式,提高軟體系統的質量和可靠性。
  • 技術架構師:主要負責技術選型和技術架構的設計,需要對新技術進行研究和評估,確保選用的技術能夠滿足系統的效能和可延伸性要求。
  • 資料架構師:主要負責資料架構的設計和優化,包括資料庫設計、資料模型設計、資料倉儲設計等方面的內容,需要對資料管理和資料安全有深入的瞭解。
  • 雲架構師:主要負責雲平臺的架構設計和實現,包括雲端計算、雲端儲存、雲安全等方面的內容,需要對雲技術和雲服務有深入的瞭解。
  • 安全架構師:負責設計、規劃和實施系統的安全架構,以保護系統和資料不受惡意攻擊、非法存取和資料洩漏等安全威脅。安全架構師需要了解安全策略、安全協定、安全標準和加密演演算法等相關知識,同時還需要具備風險評估、漏洞分析、安全審計和安全監控等方面的技能。
  • 業務架構師:負責分析、規劃和設計企業的業務架構,以支援企業戰略和業務發展。業務架構師需要了解業務流程、業務規則、業務需求和業務價值等相關知識,同時還需要具備業務建模、業務流程優化、業務資料分析和業務治理等方面的技能。
  • 企業級架構師:主要負責企業級軟體應用的整體架構規劃和設計,包括硬體、軟體、資料等方面的內容。
  • 解決方案架構師:主要負責客戶解決方案的架構設計和實現,需要深入瞭解客戶的業務需求和技術現狀,提供符合客戶需求的解決方案。

當然,這個清單還會無限的增加,AI架構師,演演算法架構師等等。

不同型別的架構師,需要具備不同的技能和專業知識,但會存在著共同點,都需要具備深入的技術知識和對整體系統架構有全面的瞭解和把握。

那些扯淡的架構師

上面我們瞭解了什麼是架構師,架構師的職責和架構師的一些型別這些內容,對架構師有了一個初步的瞭解。

接下來,我們就說說一下在軟體團隊中存在的一些反例:那些扯淡型的架構師。

扯淡的架構師,通常用來形容那些沒有實際能力和經驗,卻通過誇誇其談和空泛的理論來掩蓋自己的無能和不足的「架構師」。

首先,我們來看被人嚴重詬病的3個架構師的樣板:

  • PPT架構師:指那些只會用PPT畫圖,但實際上並沒有真正掌握技術和架構設計的人。他們通常會使用各種花哨的圖表和動畫來描述自己的「架構設計」,但缺乏實際的可行性和可操作性。
  • 框架架構師:指那些過分依賴於各種框架和工具,而不是根據具體的業務需求和技術特點來設計系統架構的人。他們可能會過度使用某個框架或者模式,導致系統過度複雜和難以維護,同時也限制了開發團隊的技術自由度和創造力。
  • 畫餅架構師:指那些只會在理論層面上討論架構設計,但沒有真正投入到實際的開發和運維工作中去的人。他們可能會熱衷於各種研究和學習,但缺乏實踐和驗證的經驗,導致其設計的架構無法落地和實現。

架構師對軟體系統的重要性不言而喻,而一個不合格的架構師可能會帶來一系列的問題。

架構師的本質是承擔解決問題的責任。 不合格的架構師卻無法解決問題,且自身也成為了一個問題。

在扯淡的那些表現形式

如何識別你的架構師是在承擔責任,還是僅僅在誇誇其談呢?

下面列出了一些常見的扯淡的表現形式:

  • 過度的設計:扯淡的架構師會為了設計一個完美的系統而過度設計,將關注點放在架構設計的完美性上,而忽略了實際專案的需求和成本。這種過度設計可能會導致系統複雜性增加,開發週期延長,以及對團隊資源的浪費。
  • 盲目追技術:扯淡的架構師會將技術的新穎性和潮流性視為優先考慮的因素,忽略了實際業務需求和團隊技術水平。他們會為了使用最新技術而盲目地採用一些不成熟的技術或者並不適合當前業務場景的技術,給團隊和專案帶來風險。
  • 缺乏業務理解:扯淡的架構師可能缺乏對業務的深入理解,只注重技術的實現,而忽略了業務的重要性。這種情況下,架構設計可能會與實際業務場景不相符,導致系統的效率低下,使用者體驗不佳,以及專案的失敗。
  • 缺乏實踐經驗:架構師需要具備豐富的實踐經驗,才能設計出穩定、高效、可延伸和可維護的系統架構。但是,有些架構師可能沒有足夠的實踐經驗,只是憑藉一些理論知識和工具使用經驗來設計系統架構。這樣往往會導致設計出來的架構不夠實際可行,缺乏實用性和可行性。
  • 缺乏溝通合作:扯淡的架構師可能會過於自我中心,不願意與團隊成員進行溝通和合作。他們會忽略團隊其他成員的建議和反饋,而單方面地做出決策,導致團隊合作效率降低,甚至出現衝突和摩擦。
  • 忽略可維護性:扯淡的架構師可能會忽略系統的可維護性,將注意力放在架構的設計和開發上,而忽略了系統的日常維護和後續升級的問題。這可能會導致系統難以維護,出現故障和漏洞,增加團隊的工作量和負擔。
  • 過度依賴工具框架:扯淡架構師可能會過度依賴工具和框架,忽略了技術背後的原理和本質。這樣會導致架構設計缺乏靈活性和可延伸性,對於一些特定的業務場景和需求無法滿足,以及對技術人員的技術素養提出了較高的要求。

可見,架構師扯淡的表現形式有很多,其中涉及到技術能力、思維方式、責任心、全面性、實踐經驗以及溝通和共同作業能力等方面。

造成架構師扯淡的原因

造成架構師扯淡的原因主要有兩個方面:架構師自身和組織團隊。具體如下:

個人原因

以下是一些架構師自身上的一些不足,導致無法落到實處的原因:

  • 缺乏技術深度和廣度:架構師需要具備廣泛的技術知識和深入的技術理解,如果缺乏這些,就難以對系統進行有效的架構設計和決策。

  • 缺乏對業務的深入理解:架構師需要深入瞭解業務需求和業務流程,以便能夠設計出符合業務需求的系統架構。如果缺乏業務理解,就很難做到這一點。

  • 缺乏團隊合作精神:架構師需要和其他團隊成員合作,包括開發人員、測試人員、運維人員等等。如果缺乏團隊合作精神,就難以與其他團隊成員有效溝通和共同作業,影響到系統的整體質量。

  • 缺乏責任心:架構師需要對系統的整體設計和決策承擔責任。如果缺乏責任心,就可能會出現推卸責任、不負責任等不良行為。

  • 缺乏更新迭代意識:技術在不斷更新迭代,架構師需要保持對技術的關注和學習,以便及時應對技術變化和提高自身技能水平。如果缺乏更新迭代意識,就容易過時和被淘汰。

  • 缺乏全域性視野:架構師需要具備全域性視野,能夠將整個系統作為一個整體來考慮,而不是侷限於某個模組或部分。如果缺乏全域性視野,就難以設計出高質量的系統架構。

組織原因

除了架構師自身的原因,在組織設計和團隊管理上的一些問題,也很容導致架構師成為扯淡的角色,具體如下:

  • 沒有明確的職責和權利:如果組織對架構師的職責和權利沒有明確的定義,或者架構師沒有足夠的權利來影響專案和決策,那麼他們可能會感到無助和無控制感,從而扯淡化自己的角色。

  • 缺乏有效的溝通和合作:如果團隊成員之間缺乏有效的溝通和合作,那麼架構師可能會感到難以與其他團隊成員共同作業,從而扯淡化自己的角色。此外,如果架構師沒有足夠的時間和機會與其他團隊成員交流,也會導致扯淡化。

  • 管理層的不支援:如果管理層不重視架構師的角色,或者沒有給予足夠的支援,那麼架構師可能會感到自己的工作被忽視和低估,從而扯淡化自己的角色。

  • 團隊缺乏目標和方向:如果組織沒有明確的目標和方向,那麼架構師可能會感到自己的工作沒有明確的目標,從而扯淡化自己的角色。此外,如果組織對架構師的期望不明確,也會導致扯淡化。

  • 組織架構設計不合理:如果組織將架構師崗位化,設定為專職的架構師和架構師部門,那他們就會和具體的研發工程團隊之間缺乏有效的溝通和共同作業,或者他們被視為高高在上的存在,這樣可能會導致扯淡架構師的產生。

所以,在組織的設計和團隊的管理上,也需要考慮如何上架構的角色和職責落到實處,避免成為團隊的擺設和瓶頸,讓架構師的能力,正真的為團隊提供持續的價值。

扯淡架構師的危害

不接地氣,不承擔責任的扯淡型架構師,其危害性表現在兩個方面:一是對團隊的危害,二是對自身職業的危害。

具體如下:

對團隊的危害

不能躬身入局的架構師,對團隊的危害有如下的5個方面,具體如下:

  • 技術決策的混亂:扯淡的架構師會導致技術決策的混亂,造成整個團隊的技術方向偏離原有的目標,導致開發效率低下、專案延期、質量下降等問題。

  • 缺乏技術領導力:扯淡的架構師會導致團隊缺乏技術領導力,無法對技術方向和開發流程進行有效的引導和管理,從而無法發揮團隊的最大潛力。

  • 建立不良的技術文化:架構師扯淡化還會導致不良的技術文化在團隊中蔓延,包括程式碼隨意、缺乏規範、無法進行有效的程式碼審查等問題,這些問題會直接影響到團隊的開發效率和質量。

  • 影響員工的工作積極性:扯淡的架構師化會影響到員工的工作積極性,因為員工可能會感到困惑和迷茫,不知道應該如何進行開發工作,從而降低工作的效率和積極性。

  • 損害團隊的聲譽和信譽:扯淡的架構師會損害團隊的聲譽和信譽,因為專案延期、質量不佳等問題會影響到團隊的口碑和形象,從而影響到未來的發展和業務拓展。

對自身的危害

一個誇誇其談的架構師,不但會給團隊帶來傷害,對其自身也由不小的負面影響,具體如下:

  • 技能退化:架構師扯淡化通常表現為對技術的忽視或者片面理解,導致架構師的技能難以得到提高和提升,無法跟上行業的發展和變化。

  • 影響聲譽:只扯淡的架構師,通常不會受到同行和業內人士的認可和尊重,從而影響自己在行業中的聲譽和職業發展。

  • 沒有成就感:扯淡的架構師往往會走在錯誤的道路上,無法為團隊和公司做出有意義的貢獻,導致自己缺乏成就感和自我價值感。

  • 職業前景受限:架構師的職業發展需要具備全面的技能和能力,扯淡的架構師缺乏這些基礎條件,因此職業前景會受到限制,無法實現個人職業目標。

總之,只會扯淡的架構師,會對個人職業發展產生非常嚴重的影響,因此架構師必須時刻保持對技術的敬畏和對工作的熱愛,不斷學習和提高自己的技能和能力。

如何成為一個優秀架構師

工程師如何才能成為一名不扯淡的架構師呢?

我認為主要有兩個方面:一是對架構師有一個清晰的認知,而是要有一些有效的方法。

下面具體來說說我的理解:

架構是一項工程技能

首先,要理解的一點是:架構是軟體工程中的一項核心技能。

架構設計,因為涵蓋了軟體系統設計和開發中最關鍵的方面,諸如:

  • 系統的可靠性:架構師需要確保系統在執行時是可靠的,即能夠滿足使用者需求,穩定執行,不會出現崩潰、死迴圈等問題。

  • 系統的可延伸性:架構師需要考慮系統未來的發展和擴充套件,設計出具備良好擴充套件性的架構,以應對未來的業務需求變化。

  • 系統的效能:架構師需要確保系統在執行時能夠保持良好的效能,以提高使用者的使用體驗。

  • 系統的安全性:架構師需要確保系統在執行時能夠保持良好的安全性,以保護使用者的資料和隱私。

  • 系統的可維護性:架構師需要確保系統在執行時能夠保持良好的可維護性,即能夠方便地進行維護和更新,以降低維護成本。

可見,架構師是不能脫離技術,也不能脫離實際業務,更不能脫離具體的團隊。架構師在設計和開發軟體系統的過程中,需要考慮到這些多個方面的因素,才能設計出一個既能夠滿足業務需求,又具備良好效能、可延伸性、安全性和可維護性的架構。

架構師是一個角色,不是一個職位

正如本文一開始所說,架構師是軟體開發中的一個責任角色,而不是一個高大上的職位頭銜。如果我們將架構師職位化,就很容造成誤解和誤用,讓架構師陷入扯淡的危局之中。

架構師的職位化,有以下3個方面的危害:

  • 限制了架構師的角色:將架構師職位化可能會限制架構師的角色,使其只關注與職位相對應的任務和職責,而忽略了跨職能團隊合作和領導能力的重要性。架構師可能會陷入「職位」的框架中,而忘記了其臨時性和靈活性。

  • 對職位要求的過度強調:將架構師職位化可能會導致過度強調職位要求,如學歷、工作年限等,而忽略了架構師的實際能力和經驗。這可能會造成人才浪費,使一些有實際經驗但沒有符合職位要求的人才無法發揮其潛力。

  • 市場對職位的誤解:將架構師職位化可能會導致市場對職位的誤解,使架構師的角色被視為一種固定的職業。這可能會降低架構師的靈活性和創造力,使其無法適應不斷變化的技術和業務需求。

在軟體開發過程中,如果將架構師視為一種責任角色,會讓架構師本人更注重其跨職能團隊合作和領導能力的培養,同時也會讓團隊能夠培養人才梯隊。

成為優秀架構師的方法

作為工程師個體來說,如何成為真正的優秀的具有架構思維和能力的高階別技術型人才呢?

下面我總結一些可行的方法和建議:

  • 系統化學習:成為一名優秀的架構師需要系統化的學習,涵蓋技術、領域知識、方法論等多個方面。可以通過參加培訓、讀書、做專案等方式來學習。

  • 多做實踐:架構師不僅要學習理論知識,還需要在實踐中不斷提高自己。可以通過參加專案、寫程式碼等方式來提升自己的實踐能力。

  • 不斷反思:作為一名架構師,需要不斷反思自己的設計方案和決策是否合理,並進行總結和改進。

  • 注重團隊合作:架構師不僅僅是技術專家,還需要具備領導能力和團隊合作能力,能夠與其他團隊成員合作,推動專案的順利進行。

  • 保持技術敏感度:架構師需要關注技術的新動態,保持敏感度,及時瞭解新技術的優劣,並在實踐中進行驗證。

  • 提高業務素養:架構師需要具備一定的業務素養,能夠了解業務需求和業務流程,從而設計出更符合業務需求的系統架構。

  • 持續學習:技術的發展是日新月異的,作為一名優秀的架構師需要保持持續學習的態度,不斷更新自己的知識和技能。

成為一名具有架構思維和能力的工程師和領域專家,需要具備系統化的學習、多實踐、不斷反思、注重團隊合作、保持技術敏感度、提高業務素養和持續學習等多方面的能力和素質。

寫在最後

隨著軟體行業的不斷髮展,軟體架構師這一角色,也越來越受到企業和從業者們所熱捧。

作為工程團隊中的核心角色之一,架構師需要具備多方面的技能和素質,以保證系統的穩定性、可延伸性和安全性等方面的需求。

然而,一些對架構師的不夠全面的理解和預期,也很容易造成諸如PPT架構師、框架架構師等扯談性的崗位大量的存在,這會對整個團隊和系統造成不良影響,甚至會導致專案的失敗。

造成架構師扯淡的原因很多,其中既有個人原因,也有組織管理和設計上的原因。為了避免這種情況的發生,我們需要共同努力:一方面工程師們要提升工程的架構能力,人人都能成為架構師;另一方面,也需要工程在組織設計和團隊管理上,讓架構師能夠真正的落到實處去解決問題。

架構是一項重要的工程能力,架構師是一個責任角色。

架構師,只有躬身入局,才能超越扯淡的困局。


閱讀,思考,練習,分享,日日不斷之功。

嗯,寫完了。

新的一天,加油哦 (ง •̀_•́)ง