務實的軟件架構師是什么樣?(tpierrain)
軟件架構師是一種pragmatic務實的架構師, 是在考慮解決方案之前收集用例和約束的人。更在乎'我們為什么要這樣做?”(即基本的業務目標,但往往沒有明確地闡明和共享)。他審查并面對了這個初始業務目標的任何選擇或行動。他試圖交付將產生影響的項目,而不僅僅是交付軟件。
軟件架構師知道沒有絕對的真理或解決方案。他 了解每種選擇或權衡取決于上下文 (包括人為因素)。
軟件架構師也是 一個務實的程序員和軟件工匠。他真的很喜歡編碼并在此方面有所進步。如果他在工作時間內無法編寫代碼(即幻燈片和圖表王國),那么他可能會為自己的開源項目做出貢獻。
作為每個務實的程序員,他喜歡盡可能地編寫腳本并自動執行每一個經常發生的痛苦的事情。他顯然是持續交付的忠實粉絲。
務實的軟件架構師能夠與其他伙伴討論面向對象編程或函數式編程的優缺點。他喜歡站在一邊,對事物有觀點,從根本上需要理解每種選擇的原因。
他了解模式和反模式,他重視GRASP,GOF和POSA模式,但也關心容量和穩定性。作為每個軟件工匠,他還接受SOLID原則。但他最喜歡的是,事情要保持盡可能簡單。
他喜歡抽象,但是知道泄漏抽象的規律。他還知道,“教條主義的陷阱是任何抽象努力所固有的”。
他有很多想法,但他只喜歡與他人分享和辯論。但是主要是為了與現實世界對抗他的思想。還有他不怕嘗試。他知道失敗是成功之母。而且 他通常不會把所有的雞蛋都放在一個籃子里。他不懼怕風險,他寧愿減輕風險。
務實的架構師仍然是一個樂于了解業務風險的人。總是 根據它帶給項目的價值優先考慮工作。這就是為什么她通常會推遲選擇要使用的框架或工具(例如db)的決定。
他總是問 五次“為什么?”,以便她可以找到對話者話語背后的真正根源,意圖或需求。(保安靈魂三拷問:你是誰?你從哪里來?你去哪里?)
他喜歡揭示各種隱式。使每個人都在同一頁面上。她甚至能夠提出 已經知道答案的幼稚和愚蠢的問題,只是為了讓房間里害羞的人聽到。她通常要求人們重新措辭,以檢查他們是否理解了所講的內容。
他是一個熱心的團隊合作者。她非常喜歡與人和團隊合作。他理解:行為驅動設計(BDD)并不是工具問題,而是協作問題以及各個參與者之間的溝通(商務/ BA,運營,質量保證和開發)。
務實的軟件架構師很敏捷,但是并不需要將它重復給所有人。現在,她更加關注如何在組織內部擴展敏捷性,以及如何改進當前的實踐。
務實的軟件架構師能夠利用領域驅動設計(DDD)將項目的主要重點放在核心領域,了解所有技術堆棧的技術挑戰。她會說多種語言(業務,經理,開發人員,運營人員...)。
務實的軟件架構師了解事件溯源不僅是應對諸如高可用性之類的技術挑戰的技術,而且還可能帶來真正的業務增值。
他不喜歡早期的優化。一個務實的建筑師不會猜測,他會去衡量。
他具有網絡和硬件技能。他不僅了解HTTP,而且還精通IP,TCP,UDP...。
他是多線程專家,這就是為什么他試圖幫助人們不要玩線程。
他了解面向恢復的計算(ROC),并構建可用于 生產的系統。他 嘗試使錯誤在發生時對系統的影響最小化,而不是相信沒有錯誤的世界(ha,ha,ha ;-)的想法。因此,他希望在投入生產之前設置一些“如果...會怎樣”研討會,并在他構建的系統中的系統集成點處處理異常。
知道并且關心 機械的同情心。由于CAP定理,他還知道您也不能自己有蛋糕(HA)并也自己去吃它(Utter Consistency)!
喜歡“易進,易出”技術。這是合乎邏輯的,因為她自然不喜歡強大的依賴性和耦合性。這就是為什么她經常提倡六角形架構的原因。
思想開闊,好奇。他喜歡打破筒倉,因此喜歡閱讀其他各種學科的知識(不僅限于IT)。
樂于后退,揚起頭來。由于他有系統的心態,他通常對工作有益 。
會參加各種IT會議或“極客” 聚會。他的社交能力很強,并且總是樂于與無法參加比賽的隊友分享他所學到的知識。然后,他通過Twitter,博客,郵件,演示文稿,茶歇等方式傳播這些單詞。
他關心人們如何接收和理解他的言語和信息。因此,當對話者出現分歧時,他可以使用技巧將對話者重新集中于核心目標。
喜歡簡單。
沒有IT信仰,也不是教條主義。他不在乎諸如Java與NET之類的愚蠢辯論。他能夠開箱即用地思考,并適應于將要實現系統的上下文和人員。
在乎別人的觀點。
他能夠用清晰的講話說服他人。