I must confess to sometimes becoming snowblind in the face of Compiere and Java.
By snowblind, I mean too close to the problem to provide an efficient solution. Mostly the best solution is provided by taking a step back, doing a diagram, doing some research, figuring out how to do it best in Compiere , instead of just sitting and writing code.
Once the diagram has been written/spec been written/etc the solution is clearer easier and much more elegant.