SOLID

Hollywood PrincipleThe SOLID principles of Object Oriented Design include these five principles:

SRP - Single Responsibility Principle

OCP - Open/Closed Principle

LSP - Liskov Substitution Principle

ISP - Interface Segregation Principle

DIP - Dependency Inversion Principle

Generally, software should be written as simply as possible in order to produce the desired result.  However, once updating the software becomes painful, the software's design should be adjusted to eliminate the pain.  Often, these principles, in addition to the more general Don't Repeat Yourself principle, can be used as a guide while refactoring the software into a better design.

References

Agile Principles, Patterns, and Practices in C# - Hardcover, Amazon.com - Robert C. Martin, Micah Martin

SOLID Principles of Object Oriented Design - Pluralsight Online Training - Steve Smith

2013 Software Craftsmanship Wall Calendar