I've been practicing SOLID in my code-base (PHP) as best as I could as of late and the progress is clear.

Code is more readable, more maintainable and everything in-between.

The problem is that I find myself in a situation where, because of SOLID, I can no longer come up with anything new (and) good around my code. Before SOLID, I'd constantly innovate and find better ways to do things.

As in "SOLID everything. Proven to work. Shouldn't change" and I find this to be dangerous: I'm comfortable and this stagnates progress.

Errors and problems make you think. SOLID takes a lot of the thinking off the table.

I'm looking for a few points to make me think:

  1. Arguments against SOLID.
  2. Where does it fall short.

  3. What are alternatives to SOLID.

closed as too broad by gnat, JacquesB, Telastyn, Jules, Philip Kendall Apr 2 '18 at 13:00

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 3
  • 1
    @gnat But I did ask a concise question which can be answered simply by showing unbiased / unopiniated performance results. Any way I can edit the question? For example: softwareengineering.stackexchange.com/questions/155852/… This question is even more broad than mine, yet it's still popular. – Jonathan Guerin Apr 2 '18 at 12:32
  • 1
    So what is stopping you from just cowboying away again, like you used to, letting those great ideas flow in an unobstructed manner? – Martin Maat Apr 2 '18 at 13:54
  • 3
    The biggest problem with SOLID is that it is applied by people who do not have enough experience with object-oriented programming to apply it sensibly. – Robert Harvey Apr 2 '18 at 15:04
  • 2
    I did ask a concise question which can be answered simply by showing unbiased / unopiniated performance results. This is a wrong assumption. SOLID is not aiming for better (or worse) performance. The whole point of SOLID and other principles is resilience. To make software easy and cheaper to evolve and maintain in the mid-long run. SOLID are, somehow, like healthy living tips. You still can get injured doing sport if you don't know what are you doing. Or get ill by not understaing the basics of a well-balanced diet. – Laiv Apr 2 '18 at 18:09