大多數敏捷開發團隊沒有明確定義軟件架構師的角色,而是使用非常民主的模型來工作。整個團隊將討論每個重要的技術決策,并以最多的選票贏得解決方案。如果這種團隊最終決定在一個人的T恤上貼上“軟件架構師”的標記,那么最受尊敬的程序員將獲得該標記。那么到底軟件架構師是干什么的?軟件架構師的需要具備哪些技能?
軟件架構師是干什么的?
架構師首先必須要了解需求和業務,架構師必須接地氣。不了解需求的架構師,就去設計架構,指揮大家干活,純粹是耍流氓。架構雖然不是產品經理,但是產品最終都是服務客戶的。如果架構師只懂技術,不考慮需求,做出的系統可能是高大上,但是用戶不一定買賬,那就是一個失敗的產品了。
其次,架構師需要定義架構。搞清楚需求后,下一步就是思考,如何解決這些需求并定義它的架構。架構定義過程讓你想清楚你打算怎么在兼顧需求和限制的情況下把問題解決好。架構定義是將結構,方針,原則和領導力引入軟件項目的技術層面。
第三,架構師還需要進行技術選型,選擇哪種技術來支持業務的實現。這里注意的是,不一定要選擇那些潮流技術,選擇什么技術,要看自己的場景。有時候,選擇一些最原始的技術,沒準更適合自己的業務場景。技術選型是很重要的,選擇正確的技術,就能事半功倍。如果選擇不好,那么就會欠技術債務,不僅影響產品的開發周期,還會影響產品的穩定性。
第四,架構師需要進行架構協作。這里的架構協作,不僅僅指技術方面了。一個好的產品,牽涉到很多人即“項目干系人”,要想讓一個軟件項目成功,需要所有的系統干系人緊密協作來保證架構和所在的環境很好的集成。
第五,架構師還可以參與一些設計,開發,測試的工作。還是那句話,架構師要接地氣。真正去使用自己的產品,不僅能對產品進度很好地把握,還能在使用中發現產品架構存在的問題,及時修補和調整。另外,這樣做的另外一個好處,就是架構師能夠真正融入團隊,并不是高高在上的。這不僅不會削弱你的權威,相反,能夠讓下屬更尊重你,這也是領導力養成的一個重要途徑。
軟件架構師的需要具備哪些技能?
1. 熟悉分布式、高性能架構和開發技術,如分布式應用開發、數據分布式管理和同步等;
2. 精通J2EE系統架構,深刻理解J2EE架構的優缺點,具有大型基于J2EE體系結構的項目規劃、系統架構設計、開發經驗,精通j2ee設計模式;
3. 深刻理解軟件系統架構,精通面向對象分析設計方法,邏輯能力佳,具有豐富的OOA、OOD、OOP、UML及SOA經驗,精通RationalRose、PowerDesigner等設計工具;
4. 技術視野廣闊,具有良好的前瞻性,思路清晰、邏輯性強,對移動支付和互聯網支付的相關技術具有優秀的領悟力和前瞻性,有較強的業務分析能力;
5. 良好的溝通能力、團隊合作精神和服務意識;認真負責、具有高度責任感和敬業精神;
6. 對于性能瓶頸可以給出最優的切片,集群和分布式服務器搭建解決方案;
7. 理解面向對象分析和設計的基本原則,熟悉常用的設計模式,熟悉UML;
8. 熟悉Java的多線程,線程與線程,進程與進程的通信機制;
9. 精通系統優化,對系統優化原理有深入的理解。對系統端到端性能優化有豐富的實踐經驗,熟悉各種遠程本地Cache組件,對Cache服務器集群架構有豐富的經驗。
上述就是關于軟件架構師是干什么的,以及軟件架構師的需要具備哪些技能的全部內容介紹,想了解更多關于軟件架構師的信息,請繼續關注中培偉業。