很多架構師都是從好的開發人員逐步過渡而來的,但並非每個好的開發人員都希望成為架構師,而且他們並不是都適合做架構師。無論您是打算進行職業轉型的開發
人員,還是尋找能承擔體系結構設計責任的合適人選的經理,都務必對此轉型過程有個清楚的了解。本文將討論從實現專家到架構師的過渡過程。
在尋找優秀的指揮的時候,您首先要找的是一名優秀的**演奏家。但並非每個**演奏家都能成為優秀的指揮。架構師的專業發展方面也與此類似。越來越多的 it 組織開始認識到良好軟體體系結構的重要性,架構師職業正迅速發展為 it 內乙個獨立的門類。由於要從相當小的候選範圍內招募架構師,因此這就給管理帶來了一些新挑戰。即使人力資源部
門找到了候選者,針對經驗進行的篩選也比其他門類更為嚴格。跨越這些障礙的最快方式是要認識到,大部分好的架構師同時也是好的開發人員,因此尋找架構師人
才時可能首先應該從普通開發人員中找起。招聘人員在對候選者(內部或外部)進行詳細審查時,應該考慮這個觀點。不過,對此資源進行挑選可能比較麻煩,因為
只有極少的優秀開發人員具有成為架構師的特徵或願望。
本文列出了開發人員成為架構師要進行的工作。我將從可能考慮進行此轉型的開發人員和評估進行此轉型的開發人員的經理這兩個方面來**這一問題。我還將提供一系列在做出這些決策時要考慮的因素。
個人特徵
軟體開發團隊和管理層之間的聯絡始終是 it 中的乙個關鍵所在。二者都傾向於以完全不同的方式考慮給定的問題。大部分相關技術都是討論專案經理應如何跟蹤和解釋開發人員的進度和問題。但溝通不足的情況仍然非常普遍,而且這是專案失敗的首要原因。好的架構師是解決這個問題的最有效辦法。架構師的主要責任是提供開發人員和專案經理之間的共用溝通**。他們負責讓業務規則及需求與工程實踐及限制相適應,以確保成功。以下是成功架構師的一些主要特徵。
願意並有能力進行溝通:
在開發人員中發現架構師的最有價值標準是有效的溝通。您需要技術嫻熟、經驗豐富的開發人員,這樣的人員需要有就專案中的業務相關問題進行溝通的經歷。架構師
經常必須對理解方面的差距進行預計,然後才能有所貢獻。他們必須願意克服困難來確保技術和業務觀點的融合。他們並不必對意見交換工作進行計畫和協調;這仍
然主要是專案經理的工作。他們的任務是確定表述系統設計時的最佳工具和構件,以促進有效的意見交換。他們必須能夠判斷當前方法顯得不足而需要採用新方法的
情況。寫作技能也非常重要,還需要具有製作草圖的技能或使用製圖軟體的能力。
具有處理談判細節方面的經驗:架構師經常需要負責討論系統開發的技術折衷方案。優先順序的衝突可能會帶來實踐
限制、風險規避或可能導致在各個不同業務組之間需求不同。優秀的架構師能夠有效地評估技術可能性,並能在不損失專案的主要價值的前提下制訂開發計畫來處理
各種利害關係和限制。這與前面討論的溝通技能緊密相關,但同時也要體現架構師的技術能力。好的架構師候選者應該是經常幫助對有爭議的討論進行引導的人,能
夠使討論得出新的想法,而不會使其在乙個位置停滯不前。
清單。架構師通常則是向這些開發人員提供所需結構的人員,以便盡可能提高工作效率。好的候選者不僅進行溝通方面的工作,而且也會預計各種設計問題並加以解
決——通常在沒有任何具體指示的情況下自覺進行。無論所分配的職責如何,積極參與專案的開發人員都有機會從一起工作的人員中脫穎而出。
抽象思維和分析:架構師必須能夠理解表述模糊的概念並將其變成相關各方能夠理解的專案構件。他們必須能夠理解抽象概念,並以具體的語言對其進行溝通。開發人員中好的候選者經常要求或自己主動解釋開發生命週期中容易混淆的問題。他們能迅速評估各種想法並將其納入後續工作的操作建議中。
開發人員經常具有很強的數學能力,而好的架構師則傾向於表現出更強的口頭表達能力。管理人員經常說開發人員具有「工程意識」,而這是乙個用於評
估架構師的非常有意義的方面。架構師應該具有很強的解決技術問題的能力,但還必須能夠準確獲知更為全面的人員如何與技術互動的資訊。這要求具有某種形式的
抽象思維(而不再是**的細節),這種思維能力可能較難形成。
有些人認為,某種級別的正式教育是成為優秀開發人員的必備條件之一,我並不同意這種精英論。我遇到了很多高中就輟學的優秀開發人員。不過,對於體系結構設計工作,我的個人經驗以及我對所需能力的認識都讓我相信,好的架構師通常至少獲得了乙個有挑戰性的學士學位。
跟蹤生命週期
好的架構師通常有在具備定義良好的軟體開發生命週期(software development life
cycle,sdlc)的組織工作的經驗。架構師必須理解在其所屬專業內最重要的操作過程。這並不意味著需要有其他前提,例如,並不需要高能力成熟度模型
(capability maturity model,cmm)級別的工作經驗。好的架構師可能來自使用 sdlc
的多個小型迭代的極限程式設計(extreme programming,xp)方法的組織。務必注意各種傳統軟體開發操作,如 michael a.
jackson 的方法:jackson 結構程式設計(jackson structured programming,jsp)和 jackson
系統開發(jackson system development,jsd)。jackson 的研究對架構師職業發展的意義就像 donald
knuth 的研究對程式設計師一樣重要。架構師可以偏愛任何經典的、經過時間考驗的軟體系統開發方法。
sdlc 也可以成為評估架構師合適人選的有用機制。每個 sdlc 階段都具有能提供相關線索的特徵。sdlc
包含很多小的變體,但在此部分,我將使用幾乎所有方法的公共基礎部分。下面的列表詳細說明了 sdlc
的各個階段,並列出了好的架構師候選者在每個階段表現出來的特徵。
架構師培養建議
有些組織能比其他組織更有效地進行架構師培養。如果充分考慮到招聘此類新專業人才的困難,努力促成能鼓勵開發人員發展為架構師的環境是非常明智
的策略。但務必避免對不願意或不適合走這條路的開發人員進行處罰。組織應該為開發人員制訂多條發展路線,包括那些願意繼續擔任開發人員的人。對架構師而
言,資深開發人員不可或缺。他們可以實現系統中最關鍵的模組。通過對其他開發人員進行**檢查和測試支援,他們可幫助確保總體軟體質量,而如果質量不能保
證,即使最好的體系結構也毫無用處。
組織應制訂個人評估程式,以鼓勵開發人員考慮其職業目標,其中要包含體系結構設計的選項。應該鼓勵經理在其下屬中尋找體系結構設計人才。應該實
現指導計畫,讓架構師與希望成為架構師的開發人員協作工作。應該鼓勵開發人員通過參加各種協會、撰寫文章和參加會議,從而參與到專業領域中來。通過這樣參
與進來,可幫助開發人員從新的角度理解系統,並幫助他們更好地就其認識進行溝通。這樣還能培養可提高效率的重要創新想法。
結束語
開發人員一旦邁出了通向體系結構設計專業方向的第一步,就可以利用很多資源來獲得幫助,其中包括很多來自 ibm 的資源。有時候,此過程的最困難的部分就是第一步,而本文提供了一些線索和提示,經理和開發人員可以利用其來評估應該鼓勵哪些人努力成為架構師。
架構師首先是開發人員
你聽說過誰是法官但是沒有當過律師,或者誰是外科主任但沒當過外科醫生的事情嗎?人們認為法官和外科主任是律師和外科醫生職業生涯的頂峰。但即使在己經達到職業頂峰之後,這些身居要位者仍然需要繼續跟進各自領域內的最新發展。對軟體架構師,應該也秉持同樣的標準。不管解決方案設計得如何優秀,決定實現能否成功的最重要...
程式設計成就 開發人員如何公升級
成功到底是什麼樣子的?當我有乙個清晰的目標以及乙個可以衡量的成功標準的時候,我做的最好。比如,我想5分鐘跑一英里,這很好衡量,而且成功是明確定義了的。我知道現在我一英里我可以跑多快,而且網上到處都是如何跑快的建議和訓練專案。我可以選擇一種訓練專案,努力訓練,我非常自信最後能夠達到我所期待的目標。而且...
如何成為出色的開發人員
前言 之所以有此一文,不是空穴來風,也不是故意的譁眾取寵,而是最近的一些所見,所感。在本文中總結出來,希望對大家有幫助。因為一些工作原因,其他的系列文章沒有接著寫下去,還望大家見諒。本篇的議題如下 不要成為 的機器 如何有效的專案評估 不要成為 的機器 開發人員的事情就是coding 沒日沒夜的co...