But would you say that such bad designs are really unusual for the Java/J2EE culture? I would say that the kind of bad design you see is typical, and not only that, is encouraged. For example, if Entity Beans were not suited to this project, for what would they be suited? I think the answer is that J2EE itself encourages bad design. Yes, you may be able to create a somewhat fast and efficient system using J2EE, but only by violating most of the "community norms".