Just went to see Tom Kyte's keynote titled "The best way...". It once again made me realize that trying to aim for simple solutions is the best way to do things. He had one slide in his presentation stating: "you don't need 14 tiers in every solution to get things working!".
It all comes down to K.I.S.S. (Keep IT Simple, Stupid!)
To my opinion that goes for a lot of aspects of software engineering; In his case it's Database design and query / data retrieval optimization (Tom Kyte is thé Guru on Oracle Database technology) in other cases it's Software design and Software implementation or Software Configuration Management. Another one is Architecture... Just take that 14 tier example into account...
So why is it that in Software development, and typically in the Java world, people tend to over complicate things? Is it to prove own knowledge? Or to impress other people? Or does it have to do with the Software development industry, especially Java, being rather young and thus not so detailed out?
Well I'm not sure what the answer is. What I do know is that keeping things simple can make it a lot better to understand for people and in the end get more appreciation.
I think there is a lot of analogy with music, where some of the greatest hits in history consist of a very simple chord scheme and very easy tunes.
So let's Keep things simple!