Metadata are often used to model static facilities such as classes and schemas, in order to allow them to change dynamically. The effect is analogous to that seen with modular office furniture, which allows office workers to easily, quickly, and cheaply move partitions without having to enlist architects and contractors in the effort. Over time, our frameworks, abstract classes, and components come to embody what we've learned about the structure of the domains for which they are built. More enduring insights gravitate towards the primary structural elements of these systems. Things which find themselves in flux are spun out into the data, where users can interact with them.
Software evolution becomes like a centrifuge spun by change.
The layers that result, over time, can come to a much truer accommodation with the forces that shaped them than any top-down agenda could have devised. Things that are good have a certain kind of structure. You can't get that structure except dynamically. That's why they have the qualities we value. If it wasn't for the time dimension, it wouldn't happen.