首先,架構師是技術領導,這意味著架構師除了擁有專門的技能外,還必須擁有領導才能。領導能力即體現在組織中的職位上,也體現在架構師展示的品質上。
在組織的職位上,架構師是專案中的技術領導,應該擁有技術決策的權威。另一方面,專案經理更關注於管理在資源、進度和成本方面的專案計畫。
架構師也應該參與到決定如何組建團隊中來,因為這種架構意味著需要特定的技能。架構元素之間的依賴會影響任務的先後順序及這些技術所需要的時間,所以,架構師應積極為編制活動計畫出力。由於架構師的成功與團隊的素質緊密相關,所以參與團隊新成員面試也是架構師必須要做的。
架構師展示品質方面,領導力也可以在與團隊成員的交流中展示出來。特別強調,架構師應該為他人樹立榜樣並在指定方向方面表示出自信成功的架構師是以人為嚮導的,所有的架構師都應花時間培訓他的團隊成員。這種方式有益於團隊成員處理問題、有益於專案、最終有益於組織本身,因為某些最有價值的資源(人)變的更有技能。
另外,架構師必須非常關注交付的實際結果並必須作為專案在技術方面的驅動力。架構師必須能夠進行決策並確保這些決策被傳達、理解並最終被執行。
2.架構師的角色可能由乙個團隊來擔當
角色和人是存在差異的。乙個人可能擔當多個角色,而乙個角色也可能有多人擔當。由於架構師需要非常廣泛的技能,所以,架構師角色通常由多個人擔當。這種方式允許技能分布於幾個人,每個人都充分運用它們的經驗。理解業務領域和各個方面技術所必須的技能,往往有幾個人才能很好的覆蓋。當然,架構師團隊必須平衡。
如果架構師團隊由乙個團隊擔當,那麼擁有乙個首席架構師就顯得很重要,他應具有先見之明,是團隊的單點協調人。如果缺乏這個協調人,架構團隊成員創造出內聚的架構,或者作出決策是有難度的。
優秀的架構師們了解自己的優缺點。無論架構師團隊是否有乙個團隊來擔當,架構師都有好幾個可信的顧問支援。這樣的架構師承認他們的弱點,並通過獲得必須的技能或通過與其他人一起工作來彌補他們知識的缺陷進而彌補這些弱點。最優秀的架構通常由乙個團隊來擔當而不是個人,因為當有多人參與進來時見識更廣更深。
架構團隊存在乙個缺陷是,它可能被理解成乙個象牙塔,它的產出僅僅是為了顯示智力而不是實用。通過確保和所用的利益相關者積極地商議、對架構及其價值進行討論,以及確保考慮任何有影響的組織政策,這個誤解可以從一開始就減到最小。
3.架構師理解軟體工程
大部分的架構師都擔任過開發人員,都非常了解定義並認可專案中使用的最佳實踐的必要性。最明確的是,架構師應該了解軟體工程流程,因為這個流程確保團隊能協調工作。
這種協調性可以通過定義涉及的角色、從事的任務、建立的工作產品、不同角色之間的移交點來獲得。在日常工作中架構師會影響許多團隊成員,理解團隊成員的角色和職責,理解他們正在生產使用的東西。這點對於架構師來說非常重要。實質上,團隊成員希望架構師能夠指導他們如何完成他們的職責,架構師必須能夠和團隊遵循的軟體工程流程一致的方式作出反應。
4.架構師掌握業務領域的知識
除了掌握軟體開發技術之外,還非常期望架構師理解業務領域,以便他們能夠擔任利益相關者和使用者及開發團隊之間的中間人。
業務領域也使得架構師更好得理解系統的需求,還能確保捕獲恰當的需求。此外,乙個特定領域通常與能應用到這個解決方案中的特定架構模型組相關,知道這個對照關係可以極大幫助架構師。
因此,乙個優秀的架構師通常需要平衡掌握軟體開發知識和業務領域知識。當架構師理解軟體開發知識但不理解業務模型時,可能會開發乙個不滿足需求但反應這種架構師所熟悉內容的解決方案,一般這種解決方案意義不大。
熟悉業務領域也使得架構師能夠預見他們的架構所需要作出的改變。既然架構受其部署環境影響大,對業務領域的正確認識是的架構師能夠在可能改變的區域和穩定性作出更全面的決策。
5.架構師掌握技術知識
架構設計的某些方面明確需要技術知識,所以,乙個架構師應該擁有一定程度的技術技能。然而架構師不必是乙個技術專家,但他必須關注技術的重要因素,不是細節。架構師需要理解一些技術框架,比如分布式技術、訊息控制項技術、大資料技術等,可以不深入其細節,但架構師需要了解其基本框架以及能解決的問題,這能幫助架構師作出更好的技術決策。
6.架構師掌握設計技能
雖然架構設計沒有侷限於設計,但是很明顯設計師架構設計的核心方面。架構使關鍵設計決策具體化,因此架構師應該擁有很強的設計能力。關鍵設計決策可以指關鍵結構設計決策、特定模型的選擇、指導規格說明書等。為了保證系統結構的完整性,這些元素被代表性地廣泛應用並對系統取得成功產生深遠的影響。因此,這樣的元素應該由擁有適當技能的人識別出來。
7.架構師具備程式設計能力
專案中的開發人員是架構師必須與其打交道的最重要的團隊成員。畢竟,他們的工作產品最終交付生產用的可執行軟體。只有當架構師承認開發人員的工作價值時,在架構師和開發人員之間的溝通才是有效的。因此,架構師應該具有一定的程式設計能力,即使他們在專案中不必寫**,也必須跟上技術更新的腳步。
大部分成功的架構師都是曾經的核心程式設計人員。在某種程度上,他們就是通過這段經歷了解到他們業務的某些情況。甚至當技術發展和引入新的程式語言時,優秀的架構師可以抽象出任何語言中的概念並應用這些知識對新的語言了解到必要的程度。如果沒有這些知識及對於實現過程中架構上的重要元素,架構師將不能進行決策,在架構師和開發人員之間的溝通將會存在障礙。
8.架構師是優秀的溝通人員
在架構師相關的軟技能中溝通最重要。有效的溝通設計到各個方面,架構師必須全面精通。尤其是架構師應該擁有有效的口頭、書面及表達技巧。同樣,溝通應是雙向的。架構師應是優秀的聆聽者和觀察者。
有效的溝通是專案成功的基礎。與利益相關者溝通對於理解他們的需求及與他們就架構達成一致來說非常重要。與專案團隊溝通尤其如此,因為架構師不是簡單地負責把資訊傳遞給團隊,還要激發團隊。架構師負責傳達系統的願景,以便這個願景為大家所共享,而不是只有架構師理解並相信。
9.架構師進行決策
在許多情況不清楚、沒有充足時間**所有的可能性,以及存在交付壓力的環境中不能決策的架構師不太可能工作下去。不幸的是這樣的環境還常見而不是例外,成功的架構師承認這個情形而不是設法改變。即使架構師在決策時諮詢其他人並營造其他人共同參與決策的乙個環境,進行適當決策仍然是架構師的職責,而這個決策不總是正確的,因此架構師必須是厚臉皮的,因為他們可能必須糾正他們的決策並原路返回。
沒有進行決策的能力將慢慢破壞專案,專案團隊將會對架構師失去信心,專案經理將會擔心,因為這些等待架構師決策的事項沒有進展,更有甚者,如果架構師沒有制定關於架構的決策及編寫成文件,團隊成員會制定他們自己的決策,使專案更加不可控。
10.架構師知道組織政策
成功的架構師不僅僅關心技術,他們還對政治敏感並知道在組織紅的權利。他們利用這些知識確保與人恰當溝通,確保在專案的週期中獲得支援。忽視組織政策是天真的。
組織中起作用的許多強制約束位於專案交付的系統之外,而這些約束必須考慮。
11.架構師是談判專家
對於架構設計的許多方面,架構師需要與許多利益相關者進行溝通交流。其中一些交流需要談判技巧。架構師特別關注的一點是在專案中盡可能早地把風險減到最小,因為把風險減到最小對穩定架構所花的時間有直接的影響。因為風險與需求有關,消除風險的乙個途徑是精煉需求以便這種需求不再出現,因此必須回退需求以便利益相關者和架構師達成。這種情形要求架構師是一位有效的談判專家,能夠清晰明白地表名不同折中的結果。
總結
以上就是作為一位架構師應具有的能力及素質,聰明的您可以逐一對照一下,哪些是缺失的哪些是需要加強的。好的,本次架構分享就到這裡,感謝關注。
架構師素養養成(二) Mysql索引無效
沈劍的 架構師 之路系列 color 58沈劍的 架構師之 路系列 第一類 列型別 與 where值型別 不符,不能命中索引,會導致值全表掃瞄。create table table1 cell varchar 3 primary key engine innodb default charset u...
架構師之路 架構師思維的培養
公司的cms 綜合賦碼管理系統 是winform的cs架構。這套系統的架構師換了3屆,到現在已經幾年沒有架構師了。本來入職時,崗位目標就是這個 自動化架構師 後來和領導達成共識先爭取成為儲備架構師,因為架構首先是為業務服務的,而工控行業有許多特別的地方,不是普通的軟體技術堆疊就能做出優秀的工控軟體的...
小白聊架構師 怎麼成為架構師
還有人說 我早就掌握了物件導向設計,也看了 企業應用架構模式 架構之美 大型 技術架構 等等架構的書,為啥還當不了架構師?是啊,這高階,大氣,上檔次的架構師是怎麼煉成的?這裡講乙個小王的故事吧。又到了畢業季,一批應屆生進了乙個軟體公司,小王也在其中。新人進入公司,基本上都是從最底層做起,做那些最髒最...