I've always felt that the SOLID rules are very difficult to comprehend, yet pretty basic to apply. A junior dev that I recently coached, who had grown up on modern OO languages (Python, C#, etc), understood all these rules in his underbelly but would never be able to explain them.
I believe that we should be able to come up with a set of (slightly different) rules that are simpler to explain and yield the same good designs.