COM, CORBA, EJB, Web Services and XPCOM.
The problem is not new. It’s even been known for ages. But every user community of a technology involving interfaces between (possibly remote) components has to go through the same trial and error cycle, finally reaching maturity when good design patterns combined with a little bit of real life experience and good sense compensate for the too fine grained usage that comes out from over-enthusiasm and inexperience of the first adopters.
It’s funny, but it looks like everytime a new technology appears, programmers forget the experience of their fathers. Stand up on the shoulder of giants as they say…
You want a tip? Wait for the next technology, and write an article/book on good design patterns involving that technology. You won’t need to be the best designer ever (although you still need to be good at it), just make sure you have the right writing skills.