I love this article by Joel Spolsky which talks about the tendency of some architects to over abstract. I have spent many years as an architect, just as many as a systems integrator and quite a few as a developer, manager and project manager but I know what he’s talking about. I sometimes find myself doing the same thing. So every few months or so I make a point of reading his article just to remind myself not to fly too high!
Here are a few words from the introduction to tempt you into reading the whole thing:
When great thinkers think about problems, they start to see patterns. They look at the problem of people sending each other word-processor files, and then they look at the problem of people sending each other spreadsheets, and they realize that there’s a general pattern: sending files. That’s one level of abstraction already. Then they go up one more level: people send files, but web browsers also “send” requests for web pages. And when you think about it, calling a method on an object is like sending a message to an object! It’s the same thing again! Those are all sending operations, so our clever thinker invents a new, higher, broader abstraction called messaging, but now it’s getting really vague and nobody really knows what they’re talking about any more. Blah.