如果这听起来很熟悉,等一等,看看团队过去是如何工作的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
为了避免这种争斗,文艺复兴后期的艺术家们不再被视为只是普通的工匠,而石匠大师似乎被神话(在我看来)为贵族后裔。此外,由于对所掌握知识秘而不宣,他们制造了一种神秘感,让自己有别于其他不那么“神秘”或“高尚”的职业。