起來。因此,要確保架構(gòu)師參與到每天的實(shí)現(xiàn)過程中來。
架構(gòu)是抽象的活動,但是架構(gòu)需要具體的實(shí)現(xiàn)。如果架構(gòu)與系統(tǒng)的具體實(shí)現(xiàn)方面脫節(jié)的話,架構(gòu)是不容易被實(shí)現(xiàn)的。而這些會使架構(gòu)師的所有好的工作失效。因此,架構(gòu)師的觀點(diǎn)必須與實(shí)現(xiàn)融合。最簡單、最好的方式是讓架構(gòu)師寫代碼。不應(yīng)該很多 – 畢竟,架構(gòu)師有很多其它的責(zé)任 – 但是必須足以讓架構(gòu)師明白自己的實(shí)現(xiàn)環(huán)境。
架構(gòu)和實(shí)現(xiàn)模式包括:
軟件項(xiàng)目必須是在不犧牲實(shí)用的深度和對實(shí)用性的注意的前提下放寬領(lǐng)導(dǎo)范圍。
雖然開發(fā)人員在單獨(dú)的設(shè)計(jì)和實(shí)現(xiàn)決定方面很在行,但是一個(gè)項(xiàng)目需要總體的、指導(dǎo)性的、策略性的、技術(shù)性的指引。指引通常來自架構(gòu)師。然而,很多軟件架構(gòu)師限于思考和對抽象概念的說明,而抽象是忽略無知的正式形式之一。
因此,除了建議、指導(dǎo)和與開發(fā)人員溝通外,架構(gòu)師還應(yīng)該參與到實(shí)現(xiàn)中來。
架構(gòu)師應(yīng)該有組織地參與到開發(fā)中來并編寫代碼。架構(gòu)師可能與一個(gè)開發(fā)人員一起實(shí)現(xiàn)某個(gè)模塊,通過結(jié)對編程的開發(fā)方式。
(7)代碼擁有者模式
如果你需要在角色中內(nèi)建對代碼的責(zé)任以及領(lǐng)域知識,那么給大家以代碼的整體質(zhì)量的責(zé)任。
以所擁有的為驕傲?xí)?dǎo)致更高的質(zhì)量。這在軟件開發(fā)中也是成立的。在專注于質(zhì)量的組織,人們對所負(fù)責(zé)的系統(tǒng)而自豪。實(shí)際上,大部分軟件對于一個(gè)專家來說太大了,因此對代碼的擁有分布于員工之間。作為代碼的擁有者,你對代碼非常了解,能幫助別人理解它,并最終對它的質(zhì)量負(fù)責(zé)。當(dāng)然,你不需要管理所有附加的代碼或?qū)Υa的修改;事實(shí)上,這通常是大家不愿意的。但是你是確保這些代碼不會引起重大系統(tǒng)問題的人。
代碼責(zé)任制與其它領(lǐng)域的責(zé)任制是一樣的。在我們搬家的時(shí)候,我的妻子緊緊地盯著搬運(yùn)工打包她的精致的瓷器。為了緩解她的神經(jīng),搬運(yùn)工對她承諾她的瓷器會完好無損地到達(dá)新家。為了證明他對安全打包的責(zé)任,他封好箱子后,清楚地在上面簽上他的名字以保證不會損壞。就像你能想象到的,那些瓷器完好無損地到達(dá)了新家。
代碼擁有模式可以解讀為:
如果那是每個(gè)人的責(zé)任,那么結(jié)果是每個(gè)人都不會負(fù)責(zé)。
不是每個(gè)人在任何時(shí)候都知道所有的東西。即使是架構(gòu)師也不能熟練地清楚項(xiàng)目的所有方方面面。
因此,系統(tǒng)的每一個(gè)模塊都由其中一位開發(fā)人員擁有。
注意擁有意味著對質(zhì)量的責(zé)任以及對這個(gè)模塊的整體架構(gòu)設(shè)計(jì),從而鼓勵擁有者要獲得對模塊的深入理解。
(8)質(zhì)量:在于意識的改變
這些是我們在組織中看到的一些能產(chǎn)生高質(zhì)量軟件的模式。還有其他的模式。
也許你已經(jīng)在你的組織中看到這些模式的核心價(jià)值。希望你的組織僅僅擁戴質(zhì)量而不僅僅是口頭上贊成。文化的元素 – 組織中的角色、溝通、儀式、傳統(tǒng)、語言 – 會給你一些線索。
大部分組織支持改進(jìn)和改變,而改進(jìn)是健康組織的組成部分。但是重大的、動搖核心價(jià)值的改變通常是不成功的。大部分核心文化的改變包括艱難的價(jià)值轉(zhuǎn)移。這通常需要長期的或者遇到危機(jī)導(dǎo)致對價(jià)值的深深反省才能成功。如果你的組織是這樣的,那么要做好失敗的準(zhǔn)備。
但是不要失望。有些企業(yè)使用有組織性的模式和有組織的學(xué)習(xí)來形成文化的轉(zhuǎn)變。從小的開始;不要嘗試一下子改變太多東西。所有這些價(jià)值之間的影響可以是豐富的和復(fù)雜的。經(jīng)過一段時(shí)間,你會學(xué)到什么是有效的什么是無效的。當(dāng)面對價(jià)值和文化時(shí),質(zhì)量只是很多價(jià)值驅(qū)動因素之一。如果你改變你自己的角色、溝通或儀式,改變會在其他的價(jià)值方面得到反映。畢竟,沒有什么價(jià)值是孤立的。