> It happens because engineers are too lazy or scared to try to
> understand the code they are modifying, and a layer seems safer. My
> case was 3 years of 2 code teams. Imagine 10 years of open-source-
> like distributed development :-(
your experience tallies with slide 24 from jerome saltzer's "coping
with complexity":
Why aren't abstraction, modularity, hierarchy, and layers enough?
- First, you must understand what you are doing.
- It is easy to create abstractions; it is hard to discover the
*right* abstraction.
- It is hard to change the abstractions later.
(ditto for modularity, hierarchy, and layers)