Software Design Principles of Software Design You've heard the terms before: YAGNI, SOLID, Tell Don't ASK, DRY... what are they and what do they mean?