現在有一個新的概念在構架師小組中被提出:為了使成員之間達到共同的目的和目標,團隊為構架師小組建立并發布了一個章程。 3
好的構架師知道自己的強項和弱點在哪里。無論構架師的角色被一個人還是一個小組擔當,他們背后都有"值得信賴的顧問"的支持。他們可以通過和其他構架師協同工作來彌補自身在某些技術方面的不足。最好的構架通常是被一個構架師小組建立的,而不是一個人。原因很簡單,一個小組的力量總要比一個人的知識豐富的多。
構架師小組的概念有一個缺陷,他們有時被團隊中的其他人認為是在"象牙塔"里工作,因為他們的產品經常是很有智慧的但卻沒有使用價值。這種誤解可以從開始就把它減到最。1)確保所有的涉眾都能積極地協商,2)不斷的交流構架和它的價值,3)在執行過程中要有組織策略的意識。
構架師應該理解軟件開發過程
構架師應該對軟件開發過程有正確的估計,因為這個過程確保小組中的所有成員使用同等的方式工作。一個好的過程需要定義各個角色的工作承擔責任, 產品的建立,不同角色之間的協同工作等等。由于構架師每天的工作都需要和很多小組成員打交道,所以對于他們來說了解工作的職責是非常重要的。在每天的工作中,開發小組經常要找到構架師,了解該做什么工作以及怎么去做。這就是軟件構架師和項目經理之間的細微差別。
軟件構架師需要有商業領域的知識
盡管擁有了豐富的軟件開發經驗,但是我們還期望(或者是要求)構架師擁有一定商業領域的知識。
[一個領域]是在一個范圍內工作的從業人員使用一系列特定的概念和術語來表達這個領域內的知識。 4
這種知識將會使構架師更好的理解系統的需求,并把精力投身于其中,確保系統的需求是合適的——例如,從構架師領域的角度出發,需求是要被準確捕獲的。經常會出現這樣的情況,一個特定系列的構架樣式可以被應用到與它相聯系的一個特定的領域中。如果構架師知道這種映射關系,那么對他的工作將是很大的幫助。
因此,一個好的構架師將會在軟件開發和商業領域的知識上面做出權衡。如果一個構架師具有很好的軟件開發經驗但是不了解商業領域,那么他的解決方案可能不會解決實際的問題,而僅僅只能反映出構架師是多么精通他的專業。
另外一個構架師需要精通商業領域知識的原因是,構架師要能夠預見軟件構架隨時可能出現的變化。由于軟件構架受它被配置的環境的影響非常大,所以對商業領域有正確理解的構架師,可以從軟件構架的角度,對不斷變化的情況做出更有遠見的決策。例如,如果構架師發覺哪種新的標準在未來很可能成為主流,那么他將會使自己的軟件構架在可用壽命內符合這種標準。
軟件構架師應該擁有技術知識
軟件構架的一個特定方面需要有一定的專業知識,因此一個構架師必須具備這個水平的知識才能夠勝任他的工作?墒菢嫾軒煵槐爻蔀榧夹g專家,這體現了這篇文章第一部分的思想——構架師宏觀上的決策。因此,構架師只需要了解宏觀上的問題,而不必關心細節化的事情。由于技術的變化過于頻繁,所以構架師要隨時與這些變化保持同步。
文章來源于領測軟件測試網 http://www.kjueaiud.com/