Anything that is done for the convenience of the programmer at the expense of the user. * Extensibility, Modularity, Structured Programming, Reusable code, Top-Down Design, Standards of all kinds, and Object-Oriented “METHODOLOGIES”.