I just stumbled across this great top ten software lessons learned list. I was happy to see the first one on this list: Object orientation is much harder than you think. I would probably state this as, "Software design is much harder than you think".