Object-Relational Mappers (ORMs)

For 95% of software projects that the average developer works on in a business setting they provide ZERO value and in fact they cause far more problems than you might realize.

They complicate, obfuscate and hinder the performance of the application. In addition, they are frequently misused by developers who now think they can be sloppy in their database modeling and "fix" any problems higher up the chain. It flies in the face of good object-oriented programming (encapsulation) by moving knowledge of a class's data out of the class and into an ORM and it ends up costing significantly more to maintain this type of complexity.

The only benefit derived is that the original programmer gets to add Entity Framework, LLBLGen, NHibernate or any one of a dozen other ORM software packages somewhere on his or her resume while you get to pay for the experience.

Well, that and the huge headache you will have when they leave, because now you need to find someone to maintain that design and the first sentence you will hear from your new programmer will be "Um, well actually I think it would be easier to rewrite the software..."

Remember, only add design complexity when it actualy solves a real problem and when the benefit outweighs the cost.

0 comments: