The best practices used by experienced object-oriented software developers.