Adam Bien has written a list of 12 reasons why some web projects may be inefficient. Does your curent web project have a case of ineffciency because of these?You can read Adam's 12 reasons over at his blog, but one that rang particularly true to me was this:
Everything is configurable, replaceable and mockable. The XML overhead is huge. The question is: When did you really needed to replace something in your past projects?
I've seen this pattern more and more lately with the insertion of Spring and other "modern" frameworks. If you're not careful, you end up with more XML than code! He's right, when did you actually need to replace the persistence layer in one of your projects? Aside from testing (which most people don't do formally with unit tests, I believe), have you ever replaced the entire persistence layer? For most people this would be a major, costly operation.
Another of Adam's things that rang true was his comment about layers. I see a lot of webapps trying to artificially insert layers. I'm guilty of it too, but there are times where simpler may actually be better :)
Do you agree with Adam's observations? Are there other reasons your webapp might suck? Share them here.