SOLID design principles make software designs more understandable, flexible, and maintainable. By following these design principles, code quality is greatly improved. Systems become more maintainable and hence cost-effective. SOLID principles overlap and in some cases are dependent on each other. Robert C Martin defined SOLID principles as we know them today.