讀古今文學網 > 程序員必讀之軟件架構 > 象牙塔 >

象牙塔

如果這聽起來很熟悉,等一等,看看團隊過去是如何工作的7 :

7 http://www.moonshadow.co.uk/?p=66

每一個小石匠都遵循大師設定的方向和對主要結構或美學的所有決定,解決那些問題都是大師的工作。

顯然,容易看出很多軟件團隊的傳統運作方式與此相似,敏捷軟件開發團隊希望採用一種不同的方法也就不奇怪了。很多現代的軟件開發團隊試圖讓一群人分擔技術領導者的角色,而不是安排一個遠離細節的專門角色。當然,很多架構師遠離細節的主要原因之一是他們沒有時間。這通常導致架構師在現實的團隊日常工作中被移除,慢慢變得脫離實際。過去的石匠大師也被這個問題困擾8 :

8 http://www.moonshadow.co.uk/?p=66

看起來同時進行多個任務是很平常的事情,石匠大師很少參與體力工作(即使身體條件允許)也就不足為奇。1261年,尼古拉斯·德·比亞德(Nicholas de Biard)在布道中斥責「只靠言語就做判斷」的石匠大師的明顯懶惰,給出了這一假設的證詞。

下面這段話來自瑞秋·戴維斯和麗茲·賽德利所著的《敏捷教練:如何打造優秀的敏捷團隊》9 ,突出了這種現象在軟件行業中造成的一個常見後果:

9 http://pragprog.com/book/sdcoach/agile-coaching

如果你瞭解如何編程,往往會忍不住對開發者該如何編寫代碼提出建議。小心,因為你可能在浪費時間:如果你沒有參與項目的編程,開發者多半會無視你的編碼經驗。他們還會認為你越權,影響了他們的工作,所以盡量別在這方面指指點點。

為了掩蓋這種局面,很多人會把軟件架構的角色看作其組織內的一個高級職位或級別,從而加劇了開發者和架構師之間的脫節。看來,石匠大師也有相同的境遇10 :

10 http://www.moonshadow.co.uk/?p=66

為了避免這種爭鬥,文藝復興後期的藝術家們不再被視為只是普通的工匠,而石匠大師似乎被神話(在我看來)為貴族後裔。此外,由於對所掌握知識秘而不宣,他們製造了一種神秘感,讓自己有別於其他不那麼「神秘」或「高尚」的職業。