Decades ago, I attended a presentation of an interactive knowledge based system produced by several academic and industry teams working together. It ran on what was a very very expensive workstation for the time (Apollo or Sun I think) and it ran very slowly, most of the dialog being shown on slides rather than waiting for the software. As the presentation progressed it looked very much that they had solved the problem of getting several distant and disparate teams to work together by allowing each to create their own level of abstraction, a neat solution to a managerial problem, but technically rather too many layers in the cake.