What makes a software design “good”? If you desire a good design, then this question must be answered. Here are several points which define good software design. Note: too much of one point can corrupt the design, so it is vital that a balance be made between these points.
I kept seeing similar points mentioned in several different sources, so I created a concise list here of some core concepts in good design. This list is not complete, so feel free to add a point if you think it fits (but please read all other points first). Criticism is welcome. If it applies to a specific point, please add it to that page. – RyanBates