情境
----建筑师设计了二层的欧洲式住家。根据建筑师的设计图,在客厅的左右墙壁,各有一支空气管子,大小相同。其中,一支管子当作壁炉的烟囱之用,另一支管子用来促进空气的对流。根据设计图,住家建造完成了。
----两年后,屋主聘请工人,将壁炉移到对面的墙壁。将原来壁炉的烟囱当作空气对流之用;而原来的空气对流的管子則当作壁炉的烟囱。
----再三年之后,这个住家突然起了火灾,烧掉了。之后,法院展开调查。发现到:电线围绕着烟囱,从一楼绕升到二楼,烟囱的热度使得电线表皮融化了,导致电线短路,引发火灾。
观察
----从住家设计图里,能清晰地看到壁炉的位置,烟囱的周围没有电线。电线是从一楼绕着空气对流管而升到二楼。以此而观之,问题的来源就很清晰了。壁炉工人移动住家的组件(component)时,没有参照住家设计图,导致住家实际架构(architecture)与设计图产生差异。这种现象通称为架构漂移(architectural drift)。
阐述
----架构维持组件之间的和谐,避免互相冲突。一旦出现了架构漂移之后,组件之间常常会发生冲突,导致整个系统的毁灭。例如,住家原来有美好的架构,壁炉与电线之间很和谐。后来,架构漂移发生了,美好的架构不再产生作用了,壁炉与电线就互相冲突了,也毁灭了整体(the whole)。
----反之,当移动壁炉时,如果工人有参照住家设计图,就会移开电线,让壁炉与电线之间很和谐,然后也修改设计图,让住家的实际架构与设计图具有一致性。如此,就不会发生架构漂移了。
----架构漂移的发生,通常不会产生即刻的破坏,而是对某些组件的伤害会逐渐加大,直到一些组件毁坏了,而导致整体系统的毁灭。例如,壁炉的热度逐渐损坏电线表皮,直到两条电线互相接触时,就烧掉整座住家了。